コールバック/Webhook
リダイレクトとコールバック
リダイレクト
3Dセキュア認証処理やPay払いは、外部のサイトにリダイレクトします。
OpenAPIタイプでは全てのリダイレクト処理をHTTPメソッドGETで実現します。
当サービスから返る遷移先URLにリダイレクトする処理のサンプルです。
HTTPヘッダーを使って302リダイレクト
HTTP/1.1 302 Found
Location: {redirectUrl}
meta refreshでリダイレクト
<html>
<head>
<meta http-equiv="refresh" content="0; URL={redirectUrl}" />
</head>
</html>
コールバック
リダイレクト後は、お客様と遷移先のサイトの間で処理が行われます。
処理が終わると取引リクエスト時に設定した加盟店様のコールバックURLcallbackUrlに遷移します。
加盟店様のシステムで処理の結果を受け取れるようコールバックのエンドポイントをご用意ください。
お客様がブラウザを閉じるなど処理を中断した場合、コールバックはしません。
コールバックの呼び出し時のHTTPメソッドはGETです。
元の取引を特定するために、以下のパラメーターを送信します。
パラーメーターはJSON形式の文字列をBase64URLエンコードし、コールバックURLのクエリパラメーターpに設定します。
Base64URLデコードしてご利用ください。
| パラメーター | 説明 |
|---|---|
| accessId | 取引リクエスト時に返る取引ID |
| event | このコールバックのイベントタイプTDS_CHARGE_FINISHED3Dセキュアの支払いにてautoAuthorization=trueの場合に返ります。 取引照会( /order/inquiry)APIにて状態を確認し決済成否を判断してください。TDS_VERIFICATION_FINISHED3Dセキュアの有効性確認にてautoAuthorization=trueの場合に返ります。 取引照会( /order/inquiry)APIにて状態を確認し決済成否を判断してください。TDS_FINISHED3Dセキュアの支払い・有効性確認にてautoAuthorization=falseの場合に返ります。 3Dセキュア後の支払い( /tds2/finalizeCharge)API、3Dセキュア後の有効性確認( /tds2/finalizeVerification)APIを実施してくださいWALLET_CHARGE_FINISHEDPay払いの都度支払い( wallet/charge)APIにて返ります。取引照会( /order/inquiry)APIにて状態を確認し決済成否を判断してください。WALLET_APPROVAL_FINISHEDPay払いの利用承諾( /wallet/authorizeAccount)APIにて返ります。取引照会( /order/inquiry)APIにて状態を確認し決済成否を判断してください。VERIFICATION_FINISHED本人確認の認証開始( /verification/start)APIにて返ります。照会( /verification/inquiry)APIにて状態を確認し認証成否を判断してください。 |
| csrfToken | 取引リクエスト時に加盟店様が設定した任意の値 ※加盟店様システムにてコールバック受け取り後にCSRF対策として 正当性を確認することを想定しています。文字数は最大36桁です。 |
例を以下に示します。
取引リクエスト時に加盟店様が設定したコールバックURL
https://merchant.example.com/callback
コールバック時に当サービスにてBase64URLエンコードした値をクエリパラメーターに追加
https://merchant.example.com/callback?p=eyJhY2Nlc3NJZCI6ImFjZGM3ZDUzZjdhNzhmNDg4ZDhkMDk5N2VmZjk5YzZmIiwiZXZlbnQiOiJURFNfQ0hBUkdFX0ZJTklTSEVEIiwiY3NyZlRva2VuIjoiYmRiMDRjNWYtNDJmMC0yOWUyLTA5NzktZWRhZTNlNzc2MGJmIn0=
上記pパラメーターの値をBase64URLデコードした結果
{
"accessId":"acdc7d53f7a78f488d8d0997eff99c6f",
"event":"TDS_CHARGE_FINISHED",
"csrfToken":"bdb04c5f-42f0-29e2-0979-edae3e7760bf"
}
Webhook通知
処理された取引の結果を非同期で加盟店様に通知する機能です。
リクエスト時に設定した加盟店様のWebhook URLwebhookUrlにHTTPで送信されます。
加盟店様のシステムで通知を受け取れるようWebhookエンドポイントをご用意ください。
通知の対象
通知対象の処理は以下です。
通常は数秒から2時間程度以内に通知します。
通知内容は各リンク先を参照してください。
- 現金払いの支払い完了
- 支払い完了済みのAmazon Pay V2をキャンセルした結果
- Pay払いの決済結果通知
- Pay払いの利用承諾結果通知
- 都度支払い(フロントエンド方式)の決済結果通知
- アトカラ与信結果通知
通知APIの仕様
Webhook通知APIの接続仕様です。
| 項目 | 仕様 |
|---|---|
| HTTPメソッド | POST |
HTTPリクエストヘッダーのContent-Type | application/json |
| リクエストボディー | JSON形式 |
以下のIPアドレスから送信されます。
加盟店様システムにて接続制限をしている場合は、許可設定をお願いします。
| 環境 | 送信元IPアドレス |
|---|---|
| テスト環境 | 210.197.108.196 |
| 本番環境 | 210.175.7.20 |
受信する加盟店様システムのSSLサーバー証明書によっては通信エラーになる可能性があります。
動作確認済みのSSLサーバー証明書は結果通知(Webhook)開発ガイドを参照してください。
通知への応答
Webhookを受信して正常に処理をした後は、HTTPステータス200番台を返してください。
レスポンスのボディは不要です。
200番台以外が返る場合は通知失敗と扱われ、リトライの対象になります。
リトライは一定間隔で正常応答をするまで最大5回送信されます。
間隔の初期設定は60分で、後述のとおり変更できます。
通知の設定
Webhookの通知を受けるためには、APIリクエスト時に加盟店様のWebhook URLをパラメーターmerchant.webhookUrlに設定します。
従来の「結果通知」とは異なり、事前にショップ管理画面から有効化する必要はありません。
ショップ管理画面にて以下の設定を変更可能です。
- リトライ間隔: デフォルト60分である通知失敗時のリトライ間隔を変更
- 結果通知停止時間: 加盟店様システムのメンテナンスにより結果通知を受け取れない時間帯を設定し、終了時刻後にまとめて通知
変更の方法は結果通知(Webhook)管理画面を参照してください。
「基本設定」、「SNI設定」など、上記以外の設定はOpenAPIタイプのWebhookには適用されません。