Obiekty odpowiedzi

W tym artykule znajdziesz opis opcji związanych z obiektami odpowiedzi Google Pay API do wykorzystania w witrynie. Obiekty odpowiedzi są obiektami zwracanymi przez metody klienta Google Pay API.

IsReadyToPayResponse

Ten obiekt zawiera informacje o możliwości podania przez użytkownika danych karty w witrynie, która wysłała żądanie.

Właściwość Typ Zawsze istnieje Opis
result Wartość logiczna Tak Bieżący użytkownik może podać dane karty w witrynie, która wysłała żądanie. Zdolność użytkownika do dokonania płatności może zależeć od tego, czy przeglądarka wyświetla wymagane elementy form płatności. Obejmuje to logowanie się na konto Google i wybór formy płatności.
paymentMethodPresent Wartość logiczna Nie

Jeśli jest ustawiona wartość true, użytkownik ma co najmniej jedną formę płatności podaną we właściwości allowedPaymentMethods w IsReadyToPayRequest.

Istnieje tylko wtedy, gdy existingPaymentMethodRequired ma wartość true w IsReadyToPayRequest.

Jeśli PaymentsClient zostanie zainicjowany z właściwością environment o wartości TEST, forma płatności będzie zawsze uznawana za obecną.

Przykład

Poniższy przykład wskazuje, kiedy bieżący użytkownik może podać dane karty w witrynie, która wysłała żądanie.

{
  "result": true
}

PaymentData

To jest obiekt odpowiedzi zwracany przez Google po tym, jak płatnik zatwierdzi płatność.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Właściwość Typ Zawsze istnieje Opis
apiVersion Liczba Tak Główny numer wersji interfejsu API. Wartość w odpowiedzi jest zgodna z wartością w PaymentDataRequest.
apiVersionMinor liczba Tak Pomocniczy numer wersji interfejsu API. Wartość w odpowiedzi jest zgodna z wartością w PaymentDataRequest.
paymentMethodData PaymentMethodData Tak Informacje o wybranej formie płatności.
email Ciąg znaków Nie Adres e-mail, jeśli właściwość emailRequired jest ustawiona jako true w PaymentDataRequest. Jeśli inne żądanie ma właściwość ustawioną jako true, nic się nie dzieje.
shippingAddress Adres Nie Adres dostawy, jeśli właściwość shippingAddressRequired jest ustawiona jako true w PaymentDataRequest.

Przykład

Ta przykładowa odpowiedź wykorzystująca Google Pay API w wersji 2.0 wskazuje formę płatności CARD wybraną w arkuszu płatności Google Pay. Dla bramy example został wygenerowany token formy płatności.

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

IntermediatePaymentData

To jest obiekt zwracany przez parametr onPaymentDataChanged() Google Pay API, gdy zmienią się adres dostawy lub opcje dostawy w arkuszu płatności.

Właściwość Typ Czy jest wymagana Opis
callbackTrigger Ciąg znaków Opcjonalna

Opisuje powód wywołania zwrotnego danych płatności.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData Opcjonalna Kod promocyjny podany przez użytkownika.
shippingAddress IntermediateAddress Opcjonalna Adres wybrany w arkuszu płatności.
shippingOptionData SelectionOptionData Opcjonalna Opcja dostawy wybrana w arkuszu płatności.

Przykład

Ten przykład zawiera pośredni ładunek zwracany z Google Pay API.

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

PaymentMethodData

Ten obiekt dostarcza dane dla wybranej formy płatności.

Właściwość Typ Zawsze istnieje Opis
type Ciąg znaków Tak PaymentMethod type wybrany w arkuszu płatności Google Pay.
description ciąg tekstowy Tak

Wiadomość dla użytkownika, która opisuje formę płatności wybraną dla tej transakcji.

info Obiekt Tak Wartość tej właściwości zależy od zwróconej wartości type danej formy płatności. Informacje dotyczące CARD znajdziesz w opisie właściwości CardInfo.
tokenizationData PaymentMethodTokenizationData Nie Dane tokenizacji płatności, które są używane przez wybraną formę płatności.

Przykład

Ta przykładowa odpowiedź ilustruje, jak forma płatności CARD wybrana w arkuszu płatności Google Pay generuje token formy płatności dla bramy example.

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

CardInfo

Ten obiekt dostarcza informacji o wybranej karcie płatniczej.

Właściwość Typ Zawsze istnieje Opis
cardDetails Ciąg znaków Tak Informacje o karcie. Są to zwykle ostatnie 4 cyfry wybranego numeru konta płatności.
assuranceDetails AssuranceDetailsSpecifications Tak Ten obiekt dostarcza informacje o weryfikacji przeprowadzonej na zwróconych danych płatności, jeśli właściwość assuranceDetailsRequired została ustawiona jako true w CardParameters.
cardNetwork ciąg tekstowy Tak

Sieć karty płatniczej wybranej płatności. Zwracane wartości mają format jak allowedCardNetworks w CardParameters.

Ta wartość sieci karty nie powinna wyświetlać się u kupującego. Jest używana, gdy są potrzebne informacje o jego karcie. Przykładem może być sytuacja, w której pracownik obsługi klienta potrzebuje tej wartości, aby zidentyfikować kartę użytą przez kupującego do transakcji. Aby wyświetlić opis widoczny dla użytkowników, użyj właściwości description z PaymentMethodData.

billingAddress Adres Nie Adres rozliczeniowy powiązany z podaną formą płatności, jeżeli właściwość billingAddressRequired została ustawiona jako true w CardParameters.
cardFundingSource ciąg tekstowy Tak

Źródło finansowania karty dla wybranej formy płatności.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Przykład

Ten przykład dotyczy karty w sieci Visa.

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

AssuranceDetailsSpecifications

Ten obiekt dostarcza informacji o tym, jaka weryfikacja została przeprowadzona na zwróconych danych uwierzytelniających płatność, aby można było zastosować odpowiednie kontrole ryzyka instrumentu.

Imię i nazwisko Typ Opis
accountVerified Wartość logiczna Jeśli true, oznacza to, że na zwróconych danych uwierzytelniających płatności przeprowadzona została weryfikacja posiadania Cardholder.
cardHolderAuthenticated Wartość logiczna

Jeśli true, oznacza to, że na zwróconych danych uwierzytelniających płatności przeprowadzona została identyfikacja i weryfikacja.

Jeśli false, można przeprowadzić to samo uwierzytelnianie oparte na ryzyku, co w przypadku transakcji kartą. Uwierzytelnianie oparte na ryzyku może obejmować m.in. uwierzytelnianie stopniowe z protokołem 3D Secure, jeśli ma to zastosowanie.

Możesz otrzymywać i przetwarzać obiekt odpowiedzi, nawet jeśli nie używasz pola assuranceDetails. Aby otrzymać ten obiekt, w obiekcie żądania uwzględnij assuranceDetailsRequired: true CardParameters.

PaymentMethodTokenizationData

Ten obiekt dostarcza dane tokenizacji formy płatności.

Właściwość Typ Zawsze istnieje Opis
type Ciąg znaków Tak Typ tokenizacji, który ma zostać użyty z wybraną formą płatności. Ta wartość jest zgodna z wartością type w PaymentMethodTokenizationSpecification.
token ciąg tekstowy Nie

Wygenerowany token formy płatności.

  • PAYMENT_GATEWAY: ciąg znaków obiektu JSON, który zawiera możliwy do obciążenia token wydany przez Twoją bramę.
  • DIRECT: protocolVersion, signature oraz signedMessage potrzebne do odszyfrowania. Więcej informacji znajdziesz w sekcji o strukturze tokena formy płatności .

Przykład

Oto przykład tokenizowanej odpowiedzi przygotowanej dla bramy example.

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

PaymentAuthorizationResult

Ten obiekt udostępnia informacje o wyniku autoryzacji płatności.

Właściwość Typ Czy jest wymagana Opis
transactionState Ciąg znaków Wymagana Stan transakcji jest rozstrzygany przez jeden z tych wyników sprzedawcy:
  • SUCCESS
  • ERROR
error PaymentDataError Opcjonalna Błąd do wyświetlenia w arkuszu płatności użytkownika, gdy konieczne jest powtórzenie płatności.

Przykład

Ten przykład ilustruje zwracany wynik płatności po przetworzeniu płatności:

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

PaymentDataError

Właściwość Typ Czy jest wymagana Opis
reason Ciąg znaków Wymagana

Lista zdefiniowanych przyczyn błędów:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message Ciąg znaków Wymagana Komunikat o błędzie wyświetlany użytkownikowi w oknie.
intent Ciąg znaków Wymagana

Intencja błędu. Musi być jedną z intencji zarejestrowanych w PaymentDataRequest od chwili rozpoczęcia procesu płatności.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Przykład

Ten przykład pokazuje intencję błędu i komunikat, który wyświetli się w arkuszu płatności.

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

Address

Ten obiekt dostarcza informacji o wymaganym adresie pocztowym. Wszystkie właściwości mają formę ciągu znaków.

Adresy mogą być zwracane w formatach MIN, FULLFULL-ISO3166. Właściwości należące do poszczególnych formatów znajdziesz w tej tabeli.

Właściwość Format adresu Opis
name MIN, FULL, FULL-ISO3166 Imię i nazwisko adresata.
postalCode MIN, FULL, FULL-ISO3166 Kod pocztowy.
countryCode MIN, FULL, FULL-ISO3166 Kod kraju zgodny ze standardem ISO 3166-1 alpha-2.
phoneNumber MIN, FULL, FULL-ISO3166 Numer telefonu, jeśli właściwość phoneNumberRequired została ustawiona jako true w PaymentDataRequest.
address1 FULL, FULL-ISO3166 Pierwszy wiersz adresu.
address2 FULL, FULL-ISO3166 Drugi wiersz adresu.
address3 FULL, FULL-ISO3166 Trzeci wiersz adresu.
locality FULL, FULL-ISO3166 Miasto, dzielnica lub przedmieście.
administrativeArea FULL, FULL-ISO3166 Jednostka administracyjna w danym kraju, np. stan lub prowincja.
sortingCode FULL, FULL-ISO3166 Kod banku.
iso3166AdministrativeArea FULL-ISO3166 Kod regionu administracyjnego zgodny ze standardem ISO 3166-2 odpowiadający wartości administrativeArea.

Przykład

Oto przykładowy adres w Stanach Zjednoczonych w formacie FULL-ISO3166 z danymi o ulicy i numerze umieszczonymi w kilku wierszach.

{
  "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"
}

IntermediateAddres

Właściwość Typ Czy jest wymagana Opis
administrativeArea Ciąg znaków Wymagana Jednostka administracyjna w danym kraju, np. stan lub prowincja.
countryCode Ciąg znaków Wymagana Kod kraju zgodny ze standardem ISO 3166-1 alpha-2.
locality Ciąg znaków Wymagana Miasto, miejscowość, dzielnica lub przedmieście.
postalCode Ciąg znaków Wymagana Usunięty kod pocztowy na podstawie kraju. W przypadku Kanady i Wielkiej Brytanii obejmuje tylko pierwsze 3 cyfry. W przypadku Stanów Zjednoczonych jest to pięć pierwszych cyfr.
iso3166AdministrativeArea Ciąg znaków Opcjonalna Kod regionu administracyjnego zgodny ze standardem ISO 3166-2 odpowiadający wartości administrativeArea. Występuje tylko wtedy, gdy format adresu dostawy to FULL-ISO3166.

Przykład

Ten przykład wskazuje adres wybrany w arkuszu płatności.

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

SelectionOptionData

Właściwość Typ Czy jest wymagana Opis
id Ciąg znaków Wymagana Pasuje do SelectionOption.id

Przykład

Ten przykład wskazuje opcję dostawy wybraną w arkuszu płatności.

{
  "id": "shipping-001"
}

OfferData

Ten obiekt dostarcza informacji o kodzie oferty wprowadzonym w arkuszu płatności.

Właściwość Typ Czy jest wymagana Opis
redemptionCodes tablica Zawsze istnieje Zestaw kodów promocyjnych wpisanych w arkuszu płatności. Obejmuje kody, które zostały już zatwierdzone.

Przykład

Poniższy przykład przedstawia obiekt OfferData z tablicą redemptionCodes.

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