AdditionalPaymentButton(APB)機能について知りたいです。
AdditionalPaymentButton(APB)機能をご利用いただくと、決済手段の一つとしてAmazon Payをご利用頂けます。APB機能では通常のAmazon Pay機能とは異なり、注文確認画面を挟まずに Amazon Pay で管理する画面からスムーズに支払い完了のフローを構築することができます。
この機能は Onetime(都度支払い)およびRecurring(継続支払い)でご利用頂くことができ、配送の伴う商材・デジタル商材ともにご利用頂くことが可能です。
注意:配送の伴う商材で当機能を用いた場合は、Amazonアカウントの住所をご利用頂くことができません。事業者様のサイトに入力された住所情報を決済時にAmazon Payにご連携いただく形となります。
処理フロー
※HTTPステータスコード 2xx 正常系 ベースの処理フローでの記載です。
Amazon Pay APIのレスポンス受信後、HTTPステータスコードが正常系であることを確認後に、処理フローへ進むよう実装してください。
ご利用方法
ボタン描画時のPayloadに下記サンプルのように"checkoutMode": "ProcessOrder"、金額、住所情報(配送を伴う商材の場合)、継続支払い情報(Recurringの場合)を設定頂くことで、ご利用頂けます。設定項目についてはの詳細はインテグレーションガイドを参照してください。
{
"storeId": "xxx",
"webCheckoutDetails": {
"checkoutResultReturnUrl": "https://merchant1/xxxxxxxx",
"checkoutMode": "ProcessOrder"
},
"paymentDetails": {
"paymentIntent": "Confirm",
"chargeAmount": {
"amount": "1",
"currencyCode": "JPY"
}
},
//recurring case
"chargePermissionType": "Recurring",
"recurringMetadata": {
"frequency": {
"unit": "Month",
"value": "1"
},
"amount": {
"amount": "10",
"currencyCode": "JPY"
}
},
"addressDetails": {
"stateOrRegion":"%E6%9D%B1%E4%BA%AC%E9%83%BD",
"addressLine1": "%E7%9B%AE%E9%BB%92%E5%8C%BA%E4%B8%8B%E7%9B%AE%E9%BB%92",
"addressLine2": "%EF%BC%91%EF%BC%8D%EF%BC%94%EF%BC%8D%EF%BC%91",
"addressLine3": "%E3%82%A2%E3%83%89%E3%83%AC%E3%82%B9%E3%83%A9%E3%82%A4%E3%83%B3%EF%BC%93",
"name": "%E5%90%8D%E5%89%8D%E3%80%80%E3%83%86%E3%82%B9%E3%83%88%EF%BC%91%EF%BC%92%EF%BC%93",
"countryCode": "JP",
"postalCode": "1560064",
"phoneNumber": "0333333333"
}
}
住所情報(addressDetails)に関する補足
・住所情報の設定必須項目については、インテグレーションガイドをご参照ください。
・各項目の最大桁については、下部インテグレーションガイドをご参照ください。
・マルチバイト文字列を設定する場合は、UTF-8のURLエンコードを行い、設定する必要があります。(全角数字、全角アルファベットもご利用頂けます。)
・マルチバイト文字列ご利用時の留意点は以下のとおりです。
1.郵便番号に6文字以上のマルチバイト文字を設定した場合、自動的にシングルバイトに変換されます。
2.住所1、2、3に20文字以上のマルチバイト文字を設定した場合、自動的にシングルバイトに変換されます。
3.氏名に16文字以上のマルチバイト文字を設定した場合、自動的にシングルバイトに変換されます。
4.電話番号にマルチバイト文字を設定した場合、自動的にシングルバイトに変換されます。
PlatformIdをご利用の場合
APBのフローにはUpdateCheckoutSessionを実行しないため、
2 step checkoutと同じくUpdateCheckoutSession時にPlatformIdを設定することができません。
ただし、Payloadの一部としてご設定いただけます。(設定後、GetCheckoutSessionに設定結果の確認ができます。)
Payloadの例:
{
"storeId":"xxx",
"webCheckoutDetails":{
"checkoutResultReturnUrl":"https://merchant1/xxxxxxxx",
"checkoutMode": "ProcessOrder"
},
"paymentDetails":{
"paymentIntent":"Authorize",
"chargeAmount":{
"amount":"1000",
"currencyCode":"JPY"
}
},
"platformId":"XXXXX"
};