支払いDeclineと処理エラー



支払いDeclineと処理エラー

このセクションの内容

Alexaエラー

connections.Responseのstatus属性は戻りステータスを返します。これはHTTPステータスとメッセージを含むオブジェクトです。

返されるエラーの応答のサンプルを次に示します。



{
"type":"Connections.Response",
"status":{"code":"403",
"message":"UnsupportedClientPlatform"},
"name":"Charge",
"payload":object,
"token":"TestToken"
}

Alexaスキル向けAmazon Payエラー

Setup APIエラー

次の表に、Amazon Payによって処理されるSetupエラーの一覧を示します。

エラータイプとステータスコード エラーコード ユーザー向け音声プロンプト エラーメッセージと是正措置
ランタイムエラー
403
UnsupportedClientPlatform すみません。問題が発生しました。 ユーザーのAlexaデバイスはサポートされていません。続行するには、ユーザーがデバイスソフトウェアを更新してからリクエストをやり直す必要があります。
ランタイムエラー
400
InvalidShippingAddress Amazonアカウントのお届け先の住所に問題があります。Amazonアカウントのお届け先の住所を更新してください。 ユーザーのアカウントで指定されている配送先住所が有効ではないため、Billing Agreementをセットアップできませんでした。ユーザーは、アカウントの配送先住所の設定を更新してからやり直す必要があります。
ランタイムエラー
403
InvalidMerchantAccountStatus すみません。現在、{merchantName}には注文できません。 販売事業者のアカウントが、このリクエストを実行するのに適切な状態ではありません。たとえば、販売事業者のアカウントが停止されている場合や登録が完了していない場合にこのエラーが発生します。この問題の解決方法については、販売事業者向けサポートに問い合わせてください。
ランタイムエラー
429
RequestThrottled すみません。問題が発生しました。後でもう一度試してください。 リクエストレートがこのサービスに割り当てられているスロットリング制限を超えているため、リクエストが拒否されました。後でもう一度試してみてください。

次の表に、販売事業者によって処理されるSetupエラーの一覧を示します。これらのエラーは、Amazon Payのインテグレーション段階で解決する必要があります。

エラータイプとステータスコード エラーコード エラーメッセージと是正措置
インテグレーションエラー
400
InvalidSellerId 出品者IDが有効ではありません。出品者IDフィールドで有効な出品者ID(マーチャントIDとも呼ばれます)を指定してください。出品者IDは、セラーセントラルのインテグレーション>MWS Access Keyページで確認できます。
インテグレーションエラー
400
UnsupportedCurrency 指定した元帳通貨はサポートされていません。ledgerCurrencyCodeフィールドで有効な通貨を指定してください。
ISO 4217形式の通貨コード(たとえば、日本はJPY)を使用してください。
インテグレーションエラー
400
UnsupportedCountryOfEstablishment 指定した設立国はサポートされていません。countryOfEstablishmentフィールドで有効な国を指定してください。
ISO 3166-2形式の国コードを使用してください。入力する国は、Amazon Payへの登録時に選択した国と同じである必要があります。
インテグレーションエラー
400
InvalidParameterValue <数値>のパラメーター検証エラーが検出されました。<パラメーター名>で指定された値<'指定された値'>が制約を満たしていません:<制約の詳細>。
リクエストを解析するために必要な1つ以上のパラメーターが見つからないか、または正しくありません。(エラーメッセージに示されているように)エラーを修正してから、もう一度試してください。
インテグレーションエラー
400
BuyerEqualsSeller 指定したアカウントはこのトランザクションに使用できません。ユーザーフローのテストに使用したアカウントが販売事業者アカウントです。ユーザーフローをテストするときは、別のアカウントを使用する必要があります。ユーザーテストアカウントを作成してから、もう一度試してください。
インテグレーションエラー
403
UnauthorizedAccess 指定された販売事業者アカウントにはこのリクエストを行う権限がありません。
Sandboxモードエラー
400
InvalidSandboxCustomerEmail SandboxCustomerEmailIdパラメーター値が有効ではありません。指定されたSandboxCustomerEmailIdに関連付けられたサンドボックスユーザーがありません。セラーセントラルのインテグレーション>テストアカウントページで作成したテストアカウントに指定されているメールアドレスを使用してください。
ランタイムエラー
500
InternalServerError 内部サーバーエラーが発生しました。エラーにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。追加しない場合、ユーザーが再試行する必要があります。
ランタイムエラー
500
ServiceUnavailable サービスが一時的に使用できません。これにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。

アクセス権限エラー

次の表に、アクセス権限エラーの一覧を示します。これらはすべて販売事業者によって処理されます。

エラータイプとステータスコード エラーコード 販売事業者へのエラーメッセージ 是正措置
インテグレーションエラー
403
FORBIDDEN このリソースへのアクセスをリクエストできません。 販売事業者のスキルが、リクエストされているアクセス権限を宣言していません。このエラーを解決するには、開発者ポータルでスキルに対してAmazon Payのアクセス権限をリクエストします。
ランタイムエラー
403
ACCESS_NOT_REQUESTED このリソースへのアクセスはまだリクエストされていません。 ユーザーにアクセス権限の管理ページが表示されていません。ユーザーにアクセス権限の管理ページが表示されるようにスキルを設定する必要があります。このエラーを解決するには、スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼するを参照してください。
ランタイムエラー
403
ACCESS_DENIED このリソースへのアクセスが拒否されました。 ユーザーにアクセス権限の管理ページが表示されていません。ユーザーにアクセス権限の管理ページが表示されるようにスキルを設定する必要があります。このエラーを解決するには、スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼するを参照してください。

Amazon Payからの応答の例:



{
"type":"Connections.Response",
"status":{"code":"403",
"message":"InvalidAccountStatus"},
"name":"Charge",
"payload": { "errorCode": "InvalidAccountStatus",
"errorMessage": "Merchant account is not in an appropriate state to execute this request"
    }
}

スキルでAmazon Payのアクセス権限を有効にするようにユーザーに依頼する

ユーザーがスキルでAmazon Payのアクセス権限を有効にしていない場合は、有効にするように依頼できます。次のコードサンプルは、Amazon Payのアクセス権限を有効にするようにユーザーに指示する方法を示しています。

この処理は、ユーザーが請求フローに入った直後か、スキルの起動時に使用します。



  function handleErrors(statusCode, handlerInput ) {
    let errorCode = handlerInput.requestEnvelope.request.payload.errorCode;
    let errorMessage = handlerInput.requestEnvelope.request.payload.errorMessage;

    switch ( errorCode ) {
      case "ACCESS_NOT_REQUESTED":
      case 'ACCESS_DENIED':
        return handlerInput.responseBuilder
                  .speak('Amazon Payの権限が有効になっておりません。Alexaアプリにカードを送りましたのでAlexaアプリからAmazon Payを有効にしてください。’)
                  .withAskForPermissionsConsentCard([ 'payments:autopay_consent' ])
                  .getResponse();
        break;
      default:
      // for debug
      //return handlerInput.responseBuilder
      //      .speak(’エラーが発生しました。エラーコード ' + errorCode + '。エラーペイロードメッセージ ' + errorMessage’)
      //      .getResponse();
        return handlerInput.responseBuilder
                .speak('申し訳ございません、エラーが発生しました。しばらくたってからもう一度お試しください。')
                .getResponse();

    }
  }

Charge APIエラー

次の表に、Amazon Payによって処理されるChargeエラーの一覧を示します。

エラータイプとステータスコード エラーコード ユーザー向け音声プロンプト エラーメッセージと是正措置
ランタイムエラー
403
UnsupportedClientPlatform すみません。問題が発生しました。 ユーザーのAlexaデバイスはサポートされていません。続行するには、ユーザーがデバイスソフトウェアを更新してからリクエストをやり直す必要があります。
ランタイムエラー
400
InvalidPaymentMethod Amazonアカウントの支払方法に問題があります。Amazonアカウントのお支払情報を修正してください。 ユーザーのアカウントで指定されている支払方法が有効ではないため、支払いを処理できませんでした。ユーザーは、アカウントの支払方法の設定を更新してからやり直す必要があります。
ランタイムエラー
403
InvalidMerchantAccountStatus すみません。現在、${merchantName}には注文できません。 販売事業者のアカウントが、このリクエストを実行するのに適切な状態ではありません。たとえば、販売事業者のアカウントが停止されている場合や登録が完了していない場合にこのエラーが発生します。この問題の解決方法については、販売事業者向けサポートに問い合わせてください。
ランタイムエラー
429
RequestThrottled すみません。問題が発生しました。後でもう一度試してください。 リクエストレートがこのサービスに割り当てられているスロットリング制限を超えているため、リクエストが拒否されました。後でもう一度試してください。

次の表に、販売事業者によって処理されるChargeエラーの一覧を示します。これらのエラーは、Amazon Payのインテグレーション段階で解決する必要があります。

エラータイプとステータスコード エラーコード エラーメッセージと是正措置
インテグレーションエラー
400
InvalidSellerId 出品者IDが有効ではありません。出品者IDフィールドで有効な出品者ID(マーチャントIDとも呼ばれます)を指定してください。出品者IDは、セラーセントラルのインテグレーション>MWS Access Keyページで確認できます。
インテグレーションエラー
400
InvalidParameterValue <数値>のパラメーター検証エラーが検出されました。<パラメーター名>で指定された値<'指定された値'>が制約を満たしていません:<制約の詳細>。
リクエストを解析するために必要な1つ以上のパラメーターが見つからないか、または正しくありません。(エラーメッセージに示されているように)エラーを修正してから、もう一度試してください。
インテグレーションエラー
403
UnauthorizedAccess 指定された販売事業者アカウントにはこのリクエストを行う権限がありません。
ランタイムエラー
400
InvalidBillingAgreementId このリクエストで送信したBilling Agreement IDが有効ではありません。有効なIDを指定してください。ユーザーの有効なIDを取得するには、Setup APIをもう一度呼び出します。
ランタイムエラー
400
InvalidBillingAgreementStatus Billing Agreementオブジェクトの操作を、その操作が許可されていない状態のオブジェクトに対して試みました。ユーザーに請求するためには、ユーザーがAmazonにアクセスして有効な支払方法を更新または入力することによって、Billing Agreementの状態をOpenに戻す必要があります。Billing AgreementがOpenでない場合は、ユーザーの住所を受け取れない可能性があります。
ランタイムエラー
400
InvalidPaymentAction 指定された支払いアクションは有効ではありません。
有効な支払いアクションは次のとおりです。
  • Authorize
  • AuthorizeAndCapture
ランタイムエラー
400
InvalidAuthorizationAmount 指定されたオーソリ金額または通貨が有効ではありません。有効なオーソリ金額または通貨を指定してからやり直してください。
ランタイムエラー
400
PeriodicAmountExceeded このリクエストで要求されたBilling Agreementオブジェクトは、指定期間内で設定金額に対して既にオーソリされています。指定されたオーソリ金額以上のオーソリを受け付けることはできません。
ランタイムエラー
403
ProviderNotAuthorized 指定されたプロバイダーIDは、このトランザクションを処理することを認可されていません。
ランタイムエラー
400
DuplicateRequest 指定されたAuthorizationReferenceIdのリクエストは、別のパラメーターで既に処理されています。
ランタイムエラー
500
InternalServerError 内部サーバーエラーが発生しました。エラーにより、サービスがユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。追加しない場合、ユーザーが再試行する必要があります。
ランタイムエラー
500
ServiceUnavailable サービスが一時的に使用できないため、ユーザーのリクエストに正しく応答できませんでした。ユーザーエクスペリエンスの低下を防ぐために、このエラーが発生した場合の再試行ロジックを追加することをお勧めします。

PINエラー

次の図に、PINエラーの一覧を示します。これらはすべてAmazon Payによって処理されます。

エラータイプとステータスコード エラーコード ユーザー向け音声プロンプト エラーメッセージと是正措置
ランタイムエラー
403
CustomerApprovalFailure すみません、まだ問題が解決しません。{active user}さんのAlexaアプリで、音声ショッピング用の確認コードを確認するか、リセットしてください。 ユーザーが承認を確認するための音声PINを設定していません。ユーザーにやり直しを求めるようにスキルを設定する必要があります。
ランタイムエラー
403
VoicePurchaseNotEnabled お支払いを進めるには、{active user}さんのAlexaアプリの「設定」タブで、音声ショッピングを有効にしてください。 ユーザーが音声ショッピング機能を有効にしていません。販売事業者からのアクションは必要ありません。Alexaのプロンプトにより、アクションが必要であることがユーザーに通知されます。

Amazon PayサーバーAPIエラー

Amazon Pay APIエラーコードについては、Amazon Pay APIの仕様を参照してください。

オーソリDeclineの処理

次の表に、Declineのコード、音声プロンプト、および求められる対応の一覧を示します。厳密にはDeclineエラーでないものも含まれますが、正しく処理する必要があります。

Declineタイプ 応答 ユーザー向け音声プロンプト
InvalidPayment AuthorizationStatus.state= Declined;
AuthorizationStatus.reasonCode= InvalidPaymentMethod;
Amazonアカウントのお支払い方法に問題があります。Amazonアカウントのお支払い情報を修正してください。
TransactionTimedOut AuthorizationStatus.state= Declined;
AuthorizationStatus.reasonCode= TransactionTimedOut;
支払いを完了できませんでした。Amazonアカウントのお支払い情報を修正してください。
AmazonRejected AuthorizationStatus.state= Declined;
AuthorizationStatus.reasonCode= AmazonRejected;
支払いを完了できませんでした。Amazonアカウントのお支払い情報を修正してください。
ProcessingFailure AuthorizationStatus.state= Declined;
AuthorizationStatus.reasonCode= ProcessingFailure;
すみません。問題が発生しました。後でもう一度試してください。

</table>

Billing Agreementの状態と理由コード

The following table lists the Billing Agreement states and reason codes.

状態 説明 理由コード
Open Billing Agreementオブジェクトが有効で、Charge APIを制約なく呼び出せている状態 N/A
Suspended Billing Agreementオブジェクトは、Amazonがオーソリ処理にて支払方法に問題があった場合は、Suspendedに遷移します。 InvalidPaymentMethod—
支払い方法に問題があります。事業者はSetup APIで受け取ったBilling Agreementの状態に関係なく、Charge APIを呼び出す必要があります。ステータスは単なるBilling Agreementの現在の状態を示すものであり、Charge APIには、購入者のアカウント設定の更新(支払い方法の更新など)を処理し、購入者に請求する前にBilling AgreementをOpenの状態に遷移させる機能があります。