OneTimeからRecurringへアップグレードするにはどうしたらよいですか?
アップセルのユースケースなど向けに、OneTimeからRecurringへ決済の途中および終了後にOneTimeで作成したCheckoutSessionおよびChargePermissionオブジェクトをRecurringに更新することが可能です。
決済の途中での更新
処理フロー
※HTTPステータスコード 2xx 正常系 ベースの処理フローでの記載です。
Amazon Pay APIのレスポンス受信後、HTTPステータスコードが正常系であることを確認後に、処理フローへ進むよう実装してください。
※checkoutResultReturnUrl後に表示されるAmazon Hosted Page上では住所情報は表示されません。
ご利用方法
UpdateCheckoutSessionのリクエスに以下のようにchargePermissionType、recurringMetadataを追加してコールし、取得したcheckoutResultReturnUrlへリダイレクトしてください。設定項目についての詳細はインテグレーションガイドを参照してください。
{
"chargePermissionType": "Recurring",
"recurringMetadata": {
"frequency": {
"unit": "Month",
"value": "1"
},
"amount": {
"amount": "30",
"currencyCode": "USD"
}
}
}
決済の終了後からの更新
※HTTPステータスコード 2xx 正常系 ベースの処理フローでの記載です。
Amazon Pay APIのレスポンス受信後、HTTPステータスコードが正常系であることを確認後に、処理フローへ進むよう実装してください。
※checkoutResultReturnUrl後に表示されるAmazon Hosted Page上では住所情報は表示されません。
※指定されたOneTimeのChargePermissionは当処理を経ても、何も影響はございません。
ご利用方法
以下のようなPayloadを作成し、そのSignatgure。そしてbindUpgradeActionを呼び出し、Amazon Hosted Pageへ遷移させます。設定項目についての詳細はインテグレーションガイドを参照してください。
{
"merchantId":"merchant_id",
"storeId":"amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
"ledgerCurrency": "JPY",
"chargePermissionType": "Recurring",
"chargePermissionId":"charge_permission_id",
"webCheckoutDetails": {
"checkoutResultReturnUrl":"https://a.com/merchant-result-page"
},
"productType": "PayAndShip",
"paymentDetails": {
"paymentIntent": "Confirm",
"chargeAmount": {
"amount": "10",
"currencyCode": "JPY"
}
},
"recurringMetadata": {
"frequency": {
"unit": "Month",
"value": "1"
},
"amount": {
"amount": "10",
"currencyCode": "JPY"
}
},
"scopes": ["name", "email", "phoneNumber", "billingAddress"]
}
<script type="text/javascript" charset="utf-8">
amazon.Pay.bindUpgradeAction('#changeButton1', {
payloadJSON: 'payload', // string generated in step 2
signature: 'xxxx', // signature generated in step 3
publicKeyId: 'xxxxxxxxxx',
upgradeAction: 'recurringUpgrade'
});
</script>