ちょっと興味があってPayPalのAdaptive Payments API について調べたのでメモです。
今後、ちょこちょこ付け足していくかもしれませんが、間違いなどあったら指摘してくださるとありがたいです。
Adaptive Payments APIとは
これまでのExpress Checkout APIなどでは、API使用者のPayPal口座に入金させることしか出来なかったのですが、Adaptive Payments API ではもっと多様なことが出来るようになっています。具体的には
・お客さんの支払いを自分のじゃなくて他人の口座に入金させることができたり
・自分の口座から他人の口座への送金ができたり
・一回の支払いで複数の口座への支払いができたり(Parallel Payments)
・複数の口座への支払いをいったん自サービスが受け取ってから処理する事ができたり(Chainned Payments)
とまあ、API使用者のウェブサイトが、ちょっとした銀行みたいに振舞えてしまうという、なんだか凄いAPIです。
使用上の注意
そんな凄いAPIなのですが、APIの使用条件はやはり少しだけ厳しくて
・ビジネスアカウント必須(パーソナルでもプレミアでも駄目)
・本番環境で運用するには、アプリケーションID をX.comから取得する必要がある
・Chainned Payments のような処理(Advanced Serviceと呼ばれている)をするには、PayPalの事前審査が必要
ということです。ただ単一の入金や送金と、Parallel Paymentsなどは審査なしですぐに使えるそうです。
もちろんSandBoxでテストするぶんには、誰でも全ての機能を利用して使用感を確かめることは出来ます。
認証について
これまでのAPI(Express Checkout)ではユーザーID、パスワード、署名の3つで認証できたのですが、Adaptive Payments では更に「アプリケーションID」と「IPアドレス」の2つを加え、合計5つの認証データをHTTP HEADERに乗っける必要があります。
APIのパスワード、署名などはPayPalの管理画面から申請できますが、アプリケーションIDは、X.comというサイトに登録し「マイアプリ」→「Submit New App」と進んで取得しなければなりません。
余談ですが、X.comの公開プロフィール画面は、デフォルトで実名が出るようになってます。気になる人は表示しないように設定することをお勧めします。
APIを使う
まず必読っぽいドキュメントはこちら。
サンプルはこちらからいっぱい見つかります。
ちなみに僕の場合はGoogle App Engineで使いたかったので、以下の記事が非常に参考になりました。
使ってみた感じとしては、データ形式にJSONが選べたりして、より扱いやすくなった印象です。
データも構造化されていてわかりやすいし、ドキュメントをちゃんと読めば大して迷うこともないと思います。
ちなみに、認証で使うアプリケーションIDはSandBox環境では固定で
APP-80W284485P519543T
です。
これは、なんかちょっと見つけにくかった記憶があるので、メモっておきます。