Develop with pleasure!

福岡でCloudとかBlockchainとか。

PayPalで定期課金

日本ではそんなに流行ってないけど、アメリカでメジャーな決済代行サービスPayPal

PayPalによる決済代行の仕組みを導入するには、4つの方法がある。

  • ショッピングカートとの連動
  • 今すぐ購入ボタン
  • 購読と定期支払い
  • SOAP APIを利用した連携


↓のWikipediaに分かりやすく説明されてる。(Paypal本家のページは何か直訳っぽい感じであまり分かりやすくない…。)
PayPal - Wikipedia

このPayPalを利用して月額課金のような定期課金を行いたい場合は、「購読と定期支払い」という機能を利用することになる。システムに組み込むには、

1.自分のアプリケーション内に購読ボタンを配置

2.ユーザは購読ボタンを押下するとPayPalのサイトに遷移しログインし支払いを行う。

3.支払が終わると元のアプリケーションに戻るためのボタンが用意されており、これを押下することで、自分のアプリケーションへ再度戻ってくる。

プロセスとしてはシンプル。ただ、2で登録した内容は3で自分のアプリケーションに遷移してきた際にHTTPリクエストのパラメータとしてわたって来る(そういった設定を予めしておけば)。
そのため2と3の間でサイト間の移動が発生してしまい、「支払い」という処理とその結果の「取り込み」が別のトランザクションとなってしまう…。

例えばユーザが支払まで終わった段階でアプリケーションに戻るボタンを押さなければ、支払情報は入手できない。(まぁ正確にはメールで送られてくるんだけど)

となると「支払い」と「取り込み」の処理は別トランザクションで実施しても問題無いように(後で取り込み内容を登録できるような仕組みを用意するなど)アプリケーションを作る必要が出てくる…。

SOAP API使えば同じトランザクションで処理できるか?と思いきや、定期購読処理を行うようなAPIは公開されてない。


んー、微妙に不便さを感じる。みんなどーやってるんだろ?

一応、こういう不便さの解消のためなのか、開発者向けにもっと細かく操作可能なAPIを今年の冬にPayPalが提供するみたい。でも今欲しいのよね…。

【訂正】
IPNを使えば同期できるみたい。