1. TOPTOP
  2. Webサービス
  3. PayPal

PayPal Payment APIに保存されているPayPal.Meの販売情報をcurlコマンドで取得する方法

|

paypal_payment_api_get_sales_info_1

冒頭の画像はPayPalのPayPal.Meで実際に商品を販売したときの取引の詳細です。購入者の氏名・Email、商品の購買金額など取引に関する情報はPayPalが用意しているPayment APIで保存されています。

今回の記事では、curlコマンドを使って、Payment APIで保存されている実際の販売情報をJSON形式でmacOSのターミナル画面に表示させる方法を紹介します。

作業の流れ

Payment APIで販売情報を取得させるためには、大きく分けて4つの作業が必要となります。

1. アプリケーションの作成
↓
2. 本番環境で使うClient IDとSecretの取得
↓
3. curlコマンドでAccess-Tokenの取得
↓
4. curlコマンドで販売情報を取得

以下の文章で順を追って説明いたします。

1. アプリケーションの作成

あらかじめ取得したPayPalのビジネスアカウントでPayPal developer(新しいタブで開く)にログインしたところから説明します。

paypal_payment_api_get_sales_info_2

REST API appsの箇所までスクロールして、[Create App]をクリックします。

paypal_payment_api_get_sales_info_3

[App Name]に任意のアプリケーション名を入力します。[Sandbox developer account]に作成済みのSandBoxアカウントを選択して、[Create App]をクリックします。

完了すると「SANDBOX API CREDENTIALS」という画面が表示されます。

2. 本番環境で使うClient IDとSecretの取得

Payment APIに保存されている実際の販売情報を取得するためには、Access_Tokenが必要です。そのAccess_Tokenはアプリケーション作成時に表示されるClient IDとSecretに基づいて取得します。

Sandbox画面からLive画面に切り替え

paypal_payment_api_get_sales_info_5_2

まず「SANDBOX API CREDENTIALS」の画面を「Live」に切り替えます。[PayPal account]や[Client ID]の表示が変わります。ただしこのままでは[Client ID]や[Secret]は使うことはできません。これらの文字列を有効化する作業が必要です。

Client IDとSecretの有効化

paypal_payment_api_get_sales_info_6_2

下にスクロールすると「LIVE APP SETTINGS」という見出しが表示されます。

- PayPal Here
- Log In with PayPal
- Transaction Search

デフォルトでは上記の3つのチェックボックスにはチェックが入っていません。これらすべてにチェックを入れて[Save]を押します。[Save]ボタンを押すと、コールバックURLを入力するように促されます。コールバックURL(”localhost”以外なら何でもOK)を入力して再度、[Save]ボタンを押します。

paypal_payment_api_get_sales_info_7

「Application was saved successfully」が表示されて、アプリケーションのClient IDとSecretが有効化されました。

Client IDとSecretのコピペ

paypal_payment_api_get_sales_info_8

画像を上部にスクロールしてClient IDとSecretを表示させます。扱いやすいようにするために、エディタソフトなどにそれぞれコピペしておきましょう。

3. curlコマンドでAccess-Tokenの取得

curlコマンドに有効化されたClient IDとSecretのオプションをつけて実行してAccess-Tokenを取得します。コマンドの詳細は、Qiitaの記事(新しいタブで開く)に基づき以下の通りとなります。

curl -v https://api.paypal.com/v1/oauth2/token \
-H "Accept: application/json" \
-H "Accept-Language: ja_JP" \
-u "<Client ID>:<secret>" \
-d "grant_type=client_credentials"

上記のコマンドを実行すると、

{
"scope":"https://api.paypal.com/v1/payments/.* https://api.paypal.com/v1/vault/credit-card https://api.paypal.com/v1/vault/credit-card/.*",
"access_token":"<Access-Token>",
"token_type":"Bearer",
"app_id":"APP-6XR95014SS315863X",
"expires_in":28800
}

上記のレスポンスがターミナル画面上に表示されます。Access-Tokenは扱いやすいよう、エディタソフトなどにコピペしておきましょう。

コマンド入力時の注意点

実際にコマンド入力をするときは、<Client ID>と<secret>の不等号記号は外してください。

またQiitaの記事はSandBoxの販売情報を取得するためのコマンドです。実際の取引情報を取得するためには、vオプションの引数である、URLを”https://api.paypal.com/v1/oauth2/token“にします(”sandobox”という文字列を削除する)。URLに関する詳細はPayPal Developerの公式ドキュメント(新しいタブで開く)を参考にしてください。

4. curlコマンドで販売情報を取得

Access_Tokenの取得ができたら、PayPal developerの公式ドキュメント(新しいタブで開く)を参考にしてJSON形式で取引情報を参照します。

curl -v -X GET https://api.paypal.com/v1/payments/sale/sales_id \
-H "Content-Type: application/json" \
-H "Authorization: Bearer <Access-Token>"

上記のコマンドを実行すると、

paypal_payment_api_get_sales_info_9

このようなレスポンスがPayPal.Meによる取引情報としてターミナル画面上に表示されます。