複数通貨のインテグレーション
デフォルトでは、Amazon Payからの支払いを受け取る通貨を使用してのみ購入者できます。別のサポートされている通貨を使用して購入者に請求するには、複数通貨機能を有効にする必要があります。
前提条件:
- EUまたはUKでAmazon Payアカウントを登録している必要があります。
- 購入者が請求するために使用する通貨を決定できる必要があります(presentationCurrency)。
- Amazon Payは通貨換算機能を提供していません。購入者に請求される通貨で、注文合計を計算できる必要があります。
インテグレーション手順
複数通貨の決済を有効にするには、次の3つの手順があります。
- 決済の開始時に
presentmentCurrency
を設定する - 支払い
currencyCode
コードを設定する - Create Charge、Capture、およびRefundに
currencyCode
を設定する
1. 決済の開始時にpresentmentCurrencyを設定する
createCheckoutSessionConfig
パラメータにpresentmentCurrency
を設定します。これにより、購入者はVisaまたはMastercardのいずれからも発行されていないお支払い方法を選択できなくなります。詳細については、購入者の決済体験:シナリオ#1を参照してください。
ペイロードの例
{
"webCheckoutDetails": {
"checkoutReviewReturnUrl":"https://a.com/merchant-review-page"
},
"storeId":"amzn1.application-oa2-client.8b5e45312b5248b69eeaStoreId",
"paymentDetails": {
"presentmentCurrency":"CHF"
}
}
2. 支払いcurrencyCodeを設定する
支払い詳細にUpdate Checkout SessionするときにchargeAmount.currencyCode
パラメータを設定してください。このパラメータは、顧客への請求に使用される通貨を決定します。通貨の値が以前に設定されたpresentmentCurrency
と異なる場合、 Create Checkout Sessionの呼び出し中に渡したpresentmentCurrency
パラメータも自動的に更新され、購入者がサポートされていないお支払い方法で決済を完了できないようにします。詳細については、購入者の決済体験:シナリオ#2を参照してください。 presentmentCurrency
パラメータを直接更新しようとしないでください。更新すると、エラーが発生します。
リクエスト
curl "https://pay-api.amazon.eu/:environment/:version/checkoutSessions/:checkoutSessionId" \
-X PATCH
-H "authorization:Px2e5oHhQZ88vVhc0DO%2FsShHj8MDDg%3DEXAMPLESIGNATURE"
-H "x-amz-pay-date:20201012T235046Z"
-d @request_body
リクエストボディ
{
"webCheckoutDetails": {
"checkoutResultReturnUrl":"https://a.com/merchant-confirm-page"
},
"paymentDetails": {
"paymentIntent":"Authorize",
"canHandlePendingAuthorization":false,
"chargeAmount": {
"amount":"1",
"currencyCode":"CHF"
}
},
"merchantMetadata": {
"merchantReferenceId":"Merchant reference ID",
"merchantStoreName":"Merchant store name",
"noteToBuyer":"Note to buyer",
"customInformation":"Custom information"
},
"platformId":"SPId"
}
3. Create Charge、Capture、およびRefundにcurrencyCodeを設定する
Create Charge、CaptureおよびRefundsを実行するときに、chargeAmount.currencyCode
と一致するようにcurrencyCode
パラメータに設定してください。別の通貨で売上請求または返金することはできません。
よくあるインテグレーションエラー
次のエラーは、HTTP 400(Bad Request)ステータスコードを返し、インテグレーションエラーがあることを示します。
presentmentCurrencyをサポートされていない値に設定する
サポートされている通貨の表を確認してください。Create Checkout SessionをサポートされていないpresentmentCurrency
で実行したり、サポートされていないchargeAmount.currencyCode
でUpdate Checkout Sessionを実行した場合、次のエラーとなります。
{
"reasonCode": "InvalidParameterValue",
"message": "The value 'RMB' provided for 'presentmentCurrency' is invalid. It is not supported."
}
Update Checkout SessionでpresentmentCurrencyを更新しようとする
Checkout Sessionオブジェクトが作成されたら、 chargeAmount.currencyCode
パラメータを使用してpresentmentCurrency
を更新する必要があります。presentmentCurrency
パラメータを直接更新しようとすると、次のエラーが発生します。
{
"reasonCode": "InvalidParameterValue",
"message": "presentmentCurrency cannot be updated in updateCheckoutSession request, please update ChargeAmount instead."
}
間違った通貨での売上請求または返金の実行
チェックアウトの時と同じchargeAmount.currencyCode
値を使用して、Create ChargeやRefundsを実行しなければなりません。別の通貨でCreate Charge、CaptureまたはRefundを実行しようとすると、次のエラーが発生します。
{
"reasonCode": "CurrencyMismatch",
"message": "Currency code provided in [Charge/Refund] does not match the currency set during checkout"
}
購入者の決済体験
デフォルト以外の決済通貨がpresentmentCurrency
として指定されている場合、購入者はVisaまたはMastercardのいずれかによって発行されたお支払い方法を使用してのみ正常に決済できます。 Amazon Payは、サポートされていない支払い手段が関係するシナリオを次の方法で処理します。
- シナリオ#1: 場所に基づいて購入者の通貨設定を自動検出するか、購入者が決済を開始する前に優先通貨を選択できるようにします。このシナリオでは、購入者がお支払い方法を選択する前に、決済の開始時にデフォルト以外の通貨が設定されます。購入者は、Amazon支払い方法からVisaまたはMastercardのいずれかを選択することしかできません。
- シナリオ#2: 注文を完了する直前に、購入者が希望する通貨を選択できるようにします。このシナリオでは、デフォルト以外の通貨は、購入者がサポートされていないお支払い方法をすでに選択した後にのみ設定されます。 Amazon Payは、決済を完了する前に、Amazon支払い方法からVisaまたはMasterのいずれかを選択するように購入者に促します。
- シナリオ#3: デフォルト以外の通貨が設定されていて、購入者がAmazon支払い方法にVisaまたはMastercardを持っていない場合、Amazon PayがホストするページにVisaまたはMastercardを追加するオプションが提供されます。
サポートされている通貨
以下は、サポートされている通貨とそれに対応する通貨コードの表です。
通貨
|
通貨コード
|
オーストラリアドル
|
AUD
|
英国ポンド
|
GBP
|
デンマーククローネ
|
DKK
|
ユーロ
|
EUR
|
香港ドル
|
HKD
|
日本円
|
JPY
|
ニュージーランドドル
|
NZD
|
ノルウェークローネ
|
NOK
|
南アフリカランド
|
ZAR
|
スウェーデンクローナ
|
SEK
|
スイスフラン
|
CHF
|
米ドル
|
USD
|