このフローが適しているケース
Waffo Checkout をすでに導入しており、初回決済後に同じユーザーへ次の請求を行う場合に使用します。- 合意済みの固定スケジュールで行う scheduled MIT
- ユーザーがオフラインのときに行う unscheduled MIT
- 加盟店が課金スケジュールを管理し、
ONE_TIME_PAYMENTで行う継続請求
エンドツーエンドのシーケンス
加盟店側のカード登録との違い
前提条件
- Checkout 連携が完了していること。
- 注文で
ONE_TIME_PAYMENTを使用すること。 - 加盟店アカウントで MIT 対応のカード支払方法が有効であること。
setupFutureUsage: trueを指定すると、Waffo は MIT 対応の支払方法だけを提示します。 - 加盟店が Waffo の MIT ホワイトリストで承認されていること。承認前は MIT を開始できません。
- 同じユーザーには安定した
userInfo.userIdを使用すること。以降に Token を使用するときも同じユーザー ID を指定します。
連携手順
1
決済を作成し、将来利用することを宣言する
決済作成を呼び出し、
paymentInfo に setupFutureUsage: true を設定します。paymentInfo.setupFutureUsage と paymentInfo.userPaymentAccessToken を同時に指定しないでください。前者は新しい Token を作成し、後者は既存の Token を使用します。2
ユーザーを Checkout へ遷移させる
通常の Checkout 決済と同様にレスポンスの
orderAction を解析し、ユーザーを Waffo Checkout へリダイレクトします。ユーザーは新しいカードを入力して決済を完了します。ユーザーが既存の保存済みカードを選択した場合、Waffo は同じカードを再登録せずに既存のカードを再利用します。3
決済通知から Token を取得する
Waffo Checkout でのカード登録では 決済成功後に
TOKENIZATION_NOTIFICATION は送信されません。決済成功後、Waffo は注文の notifyUrl に PAYMENT_NOTIFICATION を送信します。生成された Token は result.paymentInfo.userPaymentAccessToken から取得します。このフローで使用するフィールドに絞った決済通知の例:result.paymentInfo.userPaymentAccessToken を保存します。決済通知が届かない場合は POST /api/v1/order/inquiry を呼び出し、paymentRequestId または acquiringOrderId を指定して、レスポンスの同じフィールドを参照してください。例:TOKENIZATION_NOTIFICATION を待つ必要はありません。4
Token を使用して MIT を開始する
以降の請求では、決済通知で取得した Token を
paymentInfo.userPaymentAccessToken として渡し、merchantInitiatedMode を設定します。merchantInitiatedMode では次の値を使用できます。scheduled:事前に合意した固定スケジュールで請求unscheduled:固定周期のない加盟店起点の請求
トラブルシューティング
利用可能な支払方法がない
setupFutureUsage: true を指定すると、Waffo は MIT 非対応の支払方法を除外します。加盟店アカウントに MIT 対応のカード契約があることを確認してください。対象が残らない場合は、Waffo テクニカルサポートへお問い合わせください。
決済は成功したが Token が届かない
PAYMENT_NOTIFICATION を受信しているか確認し、result.paymentInfo.userPaymentAccessToken を参照してください。通知が届かない場合は Order Inquiry で同じフィールドを取得します。Waffo Checkout でのカード登録では TOKENIZATION_NOTIFICATION は送信されません。