レスポンス オブジェクト

このリファレンスでは、ウェブサイトで使用する Google Pay API レスポンス オブジェクトのオプションについて説明します。レスポンス オブジェクトは、Google Pay API クライアント メソッドによって返されるオブジェクトです。

IsReadyToPayResponse

このオブジェクトは、リクエスト側のサイトに支払い情報を提供するウェブサイト訪問者の能力に関する情報を提供します。

プロパティ タイプ 常に存在 説明
result ブール値 ○ 現在の訪問者は、支払い情報をサイトに提供できます。訪問者が支払い可能かどうかは、訪問者が使用しているウェブブラウザに、指定されたお支払い方法に必要なコンポーネントを表示する機能があるかどうかに関係している場合があります。これには、Google アカウントにログインしてお支払い方法を提供する場合が含まれます。
paymentMethodPresent ブール値 いいえ

true の場合、訪問者は、提供された IsReadyToPayRequest の allowedPaymentMethods プロパティで指定されたお支払い方法のうち 1 つ以上を保有しています。

existingPaymentMethodRequired が true に設定されている場合にのみ存在します (IsReadyToPayRequest)。

PaymentsClient が TEST の environment プロパティで初期化された場合、お支払い方法は常に存在するとみなされます。

例

以下の例は、現在の訪問者がリクエスト側のサイトに支払い情報を提供できる場合を示しています。

{
  "result": true
}

PaymentData

これは、支払人が支払いを承認した後に返されるレスポンス オブジェクトです。

PaymentDataRequest。PaymentDataRequest。PaymentDataRequest。
プロパティ タイプ 常に存在 説明
apiVersion 数値 ○ メジャー API バージョン。レスポンスの値は PaymentDataRequest で提供された値と一致します。
apiVersionMinor 数値 ○ マイナー API バージョン。レスポンスの値は PaymentDataRequest で提供された値と一致します。
paymentMethodData PaymentMethodData ○ 選択したお支払い方法に関するデータ。
email 文字列 いいえ emailRequired が true に設定されている場合のメールアドレス (PaymentDataRequest)。 これ以外のリクエストでこのプロパティが true に設定されていても、効果はありません。
shippingAddress 住所 いいえ shippingAddressRequired が true に設定されていた場合の配送先住所 (PaymentDataRequest)。

例

この Google Pay API バージョン 2.0 のレスポンスの例は、Google Pay の支払いシートで CARD のお支払い方法が選択された場合を示しています。example ゲートウェイのお支払い方法トークンが生成されました。

{
  "apiVersion": 2,
  "apiVersionMinor": 0,
  "paymentMethodData": {
    "type": "CARD",
    "description": "Visa •••• 1234",
    "info": {
      "cardNetwork": "VISA",
      "cardDetails": "1234",
      "cardFundingSource": "CREDIT"
    },
    "tokenizationData": {
      "type": "PAYMENT_GATEWAY",
      "token": "examplePaymentMethodToken"
    }
  }
}

IntermediatePaymentData

これは、支払いシートで配送先住所または配送オプションが変更されたときに、Google Pay API の onPaymentDataChanged() への入力によって返されるオブジェクトです。

プロパティ タイプ 必要性 説明
callbackTrigger 文字列 省略可

支払いデータのコールバックが呼び出された理由を示します。

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData 省略可 ユーザーが指定したプロモーション コード。
shippingAddress IntermediateAddress 省略可 支払いシートで選択された住所。
shippingOptionData SelectionOptionData 省略可 支払いシートで選択された配送オプション。

例

この例は、Google Pay API から返された中間ペイロードを示しています。

{
  "callbackTrigger": "SHIPPING_ADDRESS",
  "offerData": {
    "redemptionCode": "exampleCode"
  },
  "shippingAddress": {
    "administrativeArea": "NY",
    "countryCode": "US",
    "locality": "New York",
    "postalCode": "10011"
  },
  "shippingOptionData": {
    "id": "shipping-001"
  }
}

PaymentMethodData

このオブジェクトは、選択したお支払い方法のデータを提供します。

プロパティ タイプ 常に存在 説明
type 文字列 ○ Google Pay 支払いシートで選択された PaymentMethod type。
description 文字列 ○

この取引のお支払い方法を説明するユーザー向けメッセージ。

info オブジェクト ○ このプロパティの値は、返されるお支払い方法の type によって異なります。CARD については、CardInfo をご覧ください。
tokenizationData PaymentMethodTokenizationData いいえ 選択したお支払い方法の支払いトークン化データ。

例

このレスポンスの例は、Google Pay 支払いシートで CARD のお支払い方法が選択され、example ゲートウェイの支払い方法トークンが生成された場合を示しています。

{
  "type": "CARD",
  "description": "Visa •••• 1234",
  "info": {
    "cardNetwork": "VISA",
    "cardDetails": "1234"
  },
  "tokenizationData": {
    "type": "PAYMENT_GATEWAY",
    "token": "examplePaymentMethodToken"
  }
}

CardInfo

このオブジェクトは、選択された支払いカードに関する情報を提供します。

プロパティ タイプ 常に存在 説明
cardDetails 文字列 ○ カードの詳細。通常、この値は選択したお支払い口座番号の最後の 4 桁です。
assuranceDetails AssuranceDetailsSpecifications ○ CardParameters で assuranceDetailsRequired が true に設定されている場合、このオブジェクトは、返された支払いデータに対して行われた検証に関する情報を提供します。
cardNetwork 文字列 ○

選択されたお支払い方法の支払いカード ネットワーク。戻り値は、allowedCardNetworks の形式に一致します (CardParameters)。

このカード ネットワークの値は購入者に表示しないでください。購入者のカードの詳細が必要な場合に使用します。たとえば、カスタマー サポートにおいて購入者が取引に使用したカードを識別しなければならない場合がこれに該当します。購入者に説明を表示する場合は、代わりに PaymentMethodData の description プロパティを使用してください。

billingAddress 住所 いいえ billingAddressRequired が true に設定されていた場合の、提供されたお支払い方法に関連付けられた請求先住所 (CardParameters)。
cardFundingSource 文字列 ○

選択したお支払い方法のカードの入金元。

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

例

この例は、Visa ネットワーク上のカードを示しています。

{
  "cardNetwork": "VISA",
  "cardDetails": "1234",
  "cardFundingSource": "CREDIT",
  "assuranceDetails": {
    "cardHolderAuthenticated": false,
    "accountVerified": true
  }
}

AssuranceDetailsSpecifications

このオブジェクトは、返された支払い認証情報で実行された検証に関する情報を提供します。これにより、適切なインストルメンテーションのリスクチェックを適用できます。

名前 タイプ 説明
accountVerified ブール値 true の場合、返された支払い認証情報に対して Cardholder 所有検証が行われたことを示します。
cardHolderAuthenticated ブール値

true の場合、返された支払い認証情報で識別と検証(ID&V)が行われたことを示します。

false の場合、カード取引と同じリスクベースの認証を実行できます。このリスクベースの認証には、必要に応じて 3D セキュア プロトコルによるステップアップを含めることができますが、これに限定されません。

assuranceDetails フィールドを使用しない場合でも、レスポンス オブジェクトを受信して処理できます。このオブジェクトを受け取るには、リクエスト オブジェクトの CardParameters に assuranceDetailsRequired: true を含めます。

PaymentMethodTokenizationData

このオブジェクトは、お支払い方法のトークン化データを提供します。

プロパティ タイプ 常に存在 説明
type 文字列 ○ 選択されたお支払い方法に適用されるトークン化のタイプ。この値は、 (PaymentMethodTokenizationSpecification で設定)で設定された type と一致します。
token 文字列 いいえ

生成された支払い方法トークン。

例

これは、example ゲートウェイのトークン化データのレスポンスの例です。

{
  "type": "PAYMENT_GATEWAY",
  "token": "examplePaymentMethodToken"
}

PaymentAuthorizationResult

このオブジェクトは、支払い承認の結果に関する情報を提供します。

プロパティ タイプ 必要性 説明
transactionState 文字列 必須 取引の状態は、次のいずれかの販売者の結果によって解決されます。
  • SUCCESS
  • ERROR
error PaymentDataError 省略可 支払いを再試行する必要がある場合に、ユーザーに向けて支払いシートに表示されるエラー。

例

次の例は、支払いが処理された後に返される支払い結果を示しています。

{
  "transactionState": "ERROR",
  "error": {
    "reason": "PAYMENT_DATA_INVALID",
    "message": "Cannot pay with payment credentials",
    "intent": "PAYMENT_AUTHORIZATION"
  }
}

PaymentDataError

プロパティ タイプ 必要性 説明
reason 文字列 必須

事前定義済みのエラーの理由のリスト:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message 文字列 必須 ダイアログに表示されるユーザーへのエラー メッセージ。
intent 文字列 必須

エラーの意図。 これは、フローの開始時に PaymentDataRequest で登録されていたものである必要があります。

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

例

この例は、支払いシートに表示されるエラーの意図とメッセージを示しています。

{
  "error": {
    "reason": "SHIPPING_OPTION_INVALID",
    "message": "This shipping option is invalid for the given address",
    "intent": "SHIPPING_OPTION"
  }
}

住所

このオブジェクトは、リクエストされた住所に関する情報を提供します。すべてのプロパティは文字列です。

住所は MIN、FULL、FULL-ISO3166 の形式で返されます。各形式に属するプロパティは、次の表で確認できます。

プロパティ 住所の形式 説明
name MIN、FULL、FULL-ISO3166 受取人の氏名。
postalCode MIN、FULL、FULL-ISO3166 郵便番号。
countryCode MIN、FULL、FULL-ISO3166 ISO 3166-1 alpha-2 の国コード。
phoneNumber MIN、FULL、FULL-ISO3166 phoneNumberRequired が true に設定されていた場合の電話番号 (PaymentDataRequest)。
address1 FULL、FULL-ISO3166 住所の 1 行目。
address2 FULL、FULL-ISO3166 住所の 2 行目。
address3 FULL、FULL-ISO3166 住所の 3 行目。
locality FULL、FULL-ISO3166 市、町、地区、または郊外。
administrativeArea FULL、FULL-ISO3166 地方行政区画(州や都道府県など)。
sortingCode FULL、FULL-ISO3166 ソートコード。
iso3166AdministrativeArea FULL-ISO3166 administrativeArea に対応する ISO 3166-2 の行政区域コード。

例

これは、複数行の番地データを持つ米国の FULL-ISO3166 形式の住所の例です。

{
  "name": "John Doe",
  "address1": "c/o Google LLC",
  "address2": "1600 Amphitheatre Pkwy",
  "address3": "Building 40",
  "locality": "Mountain View",
  "administrativeArea": "CA",
  "countryCode": "US",
  "postalCode": "94043",
  "sortingCode": ""
  "iso3166AdministrativeArea": "US-CA"
}

IntermediateAddress

中間アドレスには、ユーザーが支払いを承認する前に該当する税金と配送オプションを計算できるように、配送先住所(番地や受取人の名前を除く)が編集された状態で含まれています。

プロパティ タイプ 必要性 説明
administrativeArea 文字列 必須 地方行政区画(州や都道府県など)。
countryCode 文字列 必須 ISO 3166-1 alpha-2 の国コード。
locality 文字列 必須 市、町、地区、または郊外。
postalCode 文字列 必須 国に基づいて編集された郵便番号。カナダと英国の場合は、最初の 3 文字しか含まれません。米国の場合は、最初の 5 桁が含まれます。
iso3166AdministrativeArea 文字列 省略可 administrativeArea に対応する ISO 3166-2 の行政区域コード。配送先住所の形式が FULL-ISO3166 の場合にのみ存在します。

例

この例は、支払いシートで選択された住所を示しています。

{
  "administrativeArea": "NY",
  "countryCode": "US",
  "locality": "New York",
  "postalCode": "10011"
  "iso3166AdministrativeArea": "US-NY"
}

SelectionOptionData

プロパティ タイプ 必要性 説明
id 文字列 必須 SelectionOption.id と一致します。

例

この例は、支払いシートで選択された配送オプションを示しています。

{
  "id": "shipping-001"
}

OfferData

このオブジェクトは、支払いシートに入力された特典コードに関する情報を提供します。

プロパティ タイプ 必要性 説明
redemptionCodes 配列 常に存在 支払いシートに入力されたプロモーション コードのセット。すでに承認されているコードが含まれます。

例

次の例は、redemptionCodes 配列を含む OfferData オブジェクトを示しています。

"offerData": {
    "redemptionCodes": ["PROMOTIONALCODE"]
}