Web決済サービスであるYahoo!ウォレット FastPayを触ってみたので備忘として残しておきます!
サービスの利用(開発者側)にはYahoo!IDが必要になります。

課金・決済方法には都度の決済と、継続課金の2つの方式があります。

都度の決済

都度の決済は以下のフローになります。

  1. 申込みページに指定のコードを埋め込む。
  2. ユーザが申し込みページで、1のコードで自動生成されたボタンをクリックする。
  3. FastPay側の申込ページに遷移するので、ユーザが支払情報を入力して「お支払い」ボタンをクリックする。
  4. ブラウザが画面遷移し、URLパラメータにtokenが付与される。遷移先URLは1で設定する。
  5. 4のtokenを使って決済処理を行う。

アプリ開発者は1のコードの埋め込みと、5の遷移先のURLパラメータとして付与されたtokenを使ってAPIを叩くだけで決済処理をすることが出来ます。
また、決済をするユーザはYahoo!ウォレット会員でなくてもOKです。

1のスクリプトは具体的には以下のようなコードになります。

data-keyはアプリケーションID、data-amountは請求額、formのactionはtokenを処理するURL(「支払う」ボタン押下後の遷移先)を入力します。

ywfp-payment-popup

token取得後は以下のHTTPリクエスト(新規決済作成)を送信します。

オーソリ取得のみをする場合はパラメータにcapture=falseを付与してください。
その場合は、以下の決済確定処理をする必要があります。

{Charge ID}には新規決済作成APIのレスポンスのid属性値をセットします。

また、都度の決済においては、テスト用のクレジットカードが用意されています。

継続課金

フローは都度の決済とほとんど同じです

  1. ダッシュボードからプラン(名前、金額、締めのタイミングを設定)を作成する。
  2. 申込ページに指定のコードを埋め込む(1のプランコードも設定)
  3. ユーザが申し込みページで2のコードによって自動生成されたボタンをクリックする。
  4. FastPay側の申込ページに遷移するので、ユーザが支払情報を入力して「申し込む」ボタンをクリックする。
  5. ブラウザが2で指定した遷移先にfastpayTokenのURLパラメータ付きで画面遷移する。
  6. fastPayTokenのURLパラメータ値を使って確定処理を行う。

決済をするユーザはYahoo!ウォレット会員である必要があります。また、あらかじめ登録されてあるカード情報を元に継続課金処理を行うため、利用するユーザはYahoo!ウォレットでカード情報を登録しておく必要があります。

1のプランはダッシュボードのPlansから新規作成ボタンを押下して作成します。

ywfp-create-plan1

ywfp-create-plan2

作成するとプランIDが払い出されます。

ywfp-create-plan3

また、あらかじめサイト名も設定しておく必要があります。

ywfp-edit-account

2のコードは以下のようになります。払いだされたプランID等をセットします。

上記のactionのURLにfastPayTokenがPOSTされます。

6は確定処理は、以下のHTTPリクエストを行います。

解約も以下のリクエストで可能です。

また、継続課金の処理結果の通知の仕組みとしてWebhookを利用することが出来ます。
あらかじめダッシュボードでWebhookのエンドポイントを指定して、月次の継続課金の処理結果がJSON形式で指定のエンドポイントに送信される、という仕組みです。

請求先住所情報の取得

Yahoo!ウォレットに登録しているユーザの請求先住所情報を参照できるAPIがあります。
こちらの手順に従って有効化した後、Yahoo!ID連携で取得できるaccess_tokenを使って、以下のHTTPリクエストを行うことで利用することができます。

まとめ

フローやAPIが超シンプルでカード情報もFastPay側で管理されるので、とても使いやすいです。
ただ、現時点では申し込みボタンのデザインを弄ったり、継続課金のリストを抽出したりするのが出来ないようなので、利用には少し注意が必要です。継続課金用のテストカードも用意されていないようなので、Yahooウォレット側で実カードを登録してテストしないといけなかったり…。