Amazon Pay FAQ

OneTimeからRecurringへアップグレードするにはどうしたらよいですか?

アップセルのユースケースなど向けに、OneTimeからRecurringへ決済の途中および終了後にOneTimeで作成したCheckoutSessionおよびChargePermissionオブジェクトをRecurringに更新することが可能です。

決済の途中での更新

処理フロー

image

※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"
        }
    }
}

決済の終了後からの更新

image

※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>
  

参考