複数通貨のインテグレーション

デフォルトでは、Amazon Payからの支払いを受け取る通貨を使用してのみ購入者できます。別のサポートされている通貨を使用して購入者に請求するには、複数通貨機能を有効にする必要があります。

前提条件:

  • EUまたはUKでAmazon Payアカウントを登録している必要があります。
  • 購入者が請求するために使用する通貨を決定できる必要があります(presentationCurrency)。
  • Amazon Payは通貨換算機能を提供していません。購入者に請求される通貨で、注文合計を計算できる必要があります。

インテグレーション手順

複数通貨の決済を有効にするには、次の3つの手順があります。

  1. 決済の開始時にpresentmentCurrencyを設定する
  2. 支払いcurrencyCodeコードを設定する
  3. 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 ChargeCaptureおよび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 ChargeRefundsを実行しなければなりません。別の通貨で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
Amazon Developer Assistant