Đối tượng phản hồi

Tài liệu tham khảo này mô tả các lựa chọn đối tượng phản hồi của Google Pay API để sử dụng với trang web của bạn. Đối tượng phản hồi là các đối tượng do phương thức ứng dụng khách của Google Pay API trả về.

IsReadyToPayResponse

Đối tượng này cung cấp thông tin về khả năng cung cấp thông tin thanh toán của khách truy cập trang web cho trang web yêu cầu thông tin đó.

Thuộc tính Loại Luôn tồn tại Mô tả
result boolean Khách truy cập hiện tại có thể cung cấp thông tin thanh toán cho trang web yêu cầu thông tin đó. Khả năng thanh toán của khách truy cập có thể liên quan đến khả năng hiển thị các thành phần bắt buộc của trình duyệt web cho các phương thức thanh toán được chỉ định. Ví dụ: khi họ đăng nhập vào Tài khoản Google và cung cấp một phương thức thanh toán.
paymentMethodPresent boolean Không

Nếu true, khách truy cập có một hoặc nhiều phương thức thanh toán như được chỉ định trong thuộc tính allowedPaymentMethods của IsReadyToPayRequest được cung cấp.

Chỉ tồn tại khi existingPaymentMethodRequired được đặt thành true trong IsReadyToPayRequest.

Nếu PaymentsClient được khởi tạo bằng một thuộc tính environment của TEST, thì phương thức thanh toán luôn được coi là hiện có.

Ví dụ:

Ví dụ sau đây cho biết thời điểm khách truy cập hiện tại có thể cung cấp thông tin thanh toán cho trang web yêu cầu thông tin đó.

{
  "result": true
}

PaymentData

Đây là một đối tượng phản hồi do Google trả về sau khi người thanh toán phê duyệt khoản thanh toán.

PaymentDataRequest.PaymentDataRequest.PaymentDataRequest.
Thuộc tính Loại Luôn tồn tại Mô tả
apiVersion số Phiên bản API chính. Giá trị trong phản hồi khớp với giá trị được cung cấp trong PaymentDataRequest.
apiVersionMinor số Phiên bản API phụ. Giá trị trong phản hồi khớp với giá trị được cung cấp trong PaymentDataRequest.
paymentMethodData PaymentMethodData Dữ liệu về phương thức thanh toán đã chọn.
email chuỗi Không Địa chỉ email, nếu emailRequired được đặt thành true trong PaymentDataRequest. Nếu một yêu cầu khác có thuộc tính được đặt thành true thì sẽ không có hiệu lực.
shippingAddress Địa chỉ Không Địa chỉ giao hàng, nếu shippingAddressRequired được đặt thành true trong PaymentDataRequest.

Ví dụ:

Phản hồi mẫu này cho Google Pay API phiên bản 2.0 cho thấy một phương thức thanh toán CARD được chọn trong trang thanh toán của Google Pay. Một mã thông báo phương thức thanh toán đã được tạo cho cổng 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

Đối tượng này được trả về theo đầu vào onPaymentDataChanged() của Google Pay API khi địa chỉ giao hàng hoặc lựa chọn giao hàng thay đổi trong bảng thanh toán.

Thuộc tính Loại Sự cần thiết Mô tả
callbackTrigger Chuỗi Không bắt buộc

Mô tả lý do gọi lệnh gọi lại dữ liệu thanh toán.

  • INITIALIZE
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION
  • OFFER
offerData OfferData Không bắt buộc Mã khuyến mãi do người dùng cung cấp.
shippingAddress IntermediateAddress Không bắt buộc Địa chỉ đã chọn trong trang thanh toán.
shippingOptionData SelectionOptionData Không bắt buộc Lựa chọn vận chuyển đã chọn trong trang thanh toán.

Ví dụ:

Ví dụ này cho thấy tải trọng trung gian được trả về từ Google Pay API.

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

PaymentMethodData

Đối tượng này cung cấp dữ liệu cho một phương thức thanh toán đã chọn.

Thuộc tính Loại Luôn tồn tại Mô tả
type chuỗi PaymentMethod type được chọn trong trang thanh toán của Google Pay.
description chuỗi

Thông báo cho người dùng để mô tả phương thức thanh toán dùng để thanh toán giao dịch này.

info đối tượng Giá trị của thuộc tính này phụ thuộc vào phương thức thanh toán type được trả về. Đối với CARD, hãy xem CardInfo.
tokenizationData PaymentMethodTokenizationData Không Dữ liệu mã hoá thông tin thanh toán cho phương thức thanh toán đã chọn.

Ví dụ:

Phản hồi mẫu này cho biết cách một phương thức thanh toán CARD được chọn trong trang thanh toán Google Pay sẽ tạo mã thông báo phương thức thanh toán cho cổng example.

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

CardInfo

Đối tượng này cung cấp thông tin về thẻ thanh toán đã chọn.

Thuộc tính Loại Luôn tồn tại Mô tả
cardDetails chuỗi Thông tin chi tiết về thẻ. Giá trị này thường là 4 chữ số cuối của số tài khoản thanh toán đã chọn.
assuranceDetails AssuranceDetailsSpecifications Đối tượng này cung cấp thông tin về quy trình xác thực được thực hiện trên dữ liệu thanh toán đã trả về nếu assuranceDetailsRequired được đặt thành true trong CardParameters.
cardNetwork chuỗi

Mạng thanh toán của thẻ thanh toán đã chọn. Các giá trị được trả về khớp với định dạng của allowedCardNetworks trong CardParameters.

Người mua không được nhìn thấy giá trị mạng thẻ này. Được dùng khi cần thông tin chi tiết về thẻ của người mua. Ví dụ: nếu bộ phận hỗ trợ khách hàng cần giá trị này để xác định thẻ mà người mua đã dùng cho giao dịch. Để có nội dung mô tả mà người dùng có thể thấy, hãy sử dụng thuộc tính description của PaymentMethodData.

billingAddress Địa chỉ Không Địa chỉ thanh toán được liên kết với phương thức thanh toán đã cung cấp, nếu billingAddressRequired được đặt thành true trong CardParameters.
cardFundingSource chuỗi

Nguồn tiền từ thẻ cho phương thức thanh toán đã chọn.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID

Ví dụ:

Ví dụ này cho thấy một thẻ trên mạng Visa.

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

AssuranceDetailsSpecifications

Đối tượng này cung cấp thông tin về quy trình xác thực đã được thực hiện đối với thông tin đăng nhập thanh toán được trả về để có thể áp dụng các quy trình kiểm tra rủi ro phù hợp cho công cụ.

Tên Loại Mô tả
accountVerified boolean Nếu true, tức là quá trình xác thực quyền sở hữu Cardholder đã được thực hiện trên thông tin thanh toán được trả về.
cardHolderAuthenticated boolean

Nếu true, cho biết rằng quy trình nhận dạng và xác minh (ID&V) đã được thực hiện trên thông tin đăng nhập thanh toán được trả về.

Nếu false, bạn có thể thực hiện quy trình xác thực dựa trên rủi ro tương tự như đối với các giao dịch bằng thẻ. Quy trình xác thực dựa trên rủi ro này có thể bao gồm nhưng không giới hạn ở bước xác thực bổ sung bằng giao thức 3D Secure (nếu có).

Bạn có thể nhận và xử lý Đối tượng phản hồi ngay cả khi không sử dụng trường assuranceDetails. Để nhận đối tượng này, hãy thêm assuranceDetailsRequired: true vào CardParameters của đối tượng Yêu cầu.

PaymentMethodTokenizationData

Đối tượng này cung cấp dữ liệu mã hoá cho phương thức thanh toán.

Thuộc tính Loại Luôn tồn tại Mô tả
type chuỗi Loại mã hoá kỹ thuật số sẽ được áp dụng cho phương thức thanh toán đã chọn. Giá trị này khớp với type được đặt trong PaymentMethodTokenizationSpecification.
token chuỗi Không

Mã thông báo phương thức thanh toán được tạo.

Ví dụ:

Đây là ví dụ về một phản hồi được mã hoá dưới dạng mã thông báo, được chuẩn bị cho cổng example.

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

PaymentAuthorizationResult

Đối tượng này cung cấp thông tin về kết quả uỷ quyền thanh toán.

Thuộc tính Loại Sự cần thiết Mô tả
transactionState Chuỗi Bắt buộc Trạng thái của giao dịch được giải quyết bằng một trong những kết quả sau đây của người bán:
  • SUCCESS
  • ERROR
error PaymentDataError Không bắt buộc Lỗi sẽ được hiển thị trong trang thanh toán cho người dùng khi cần thiết phải thử lại quy trình thanh toán.

Ví dụ:

Ví dụ sau đây cho thấy kết quả thanh toán được trả về sau khi một giao dịch thanh toán được xử lý:

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

PaymentDataError

Thuộc tính Loại Sự cần thiết Mô tả
reason Chuỗi Bắt buộc

Danh sách các lý do lỗi được xác định trước:

  • OFFER_INVALID
  • PAYMENT_DATA_INVALID
  • SHIPPING_ADDRESS_INVALID
  • SHIPPING_ADDRESS_UNSERVICEABLE
  • SHIPPING_OPTION_INVALID
  • OTHER_ERROR
message Chuỗi Bắt buộc Thông báo lỗi cho người dùng xuất hiện trong một hộp thoại.
intent Chuỗi Bắt buộc

Mục đích của lỗi. Đây phải là một trong những mã đã được đăng ký trong PaymentDataRequest ngay từ khi bắt đầu luồng.

  • OFFER
  • PAYMENT_AUTHORIZATION
  • SHIPPING_ADDRESS
  • SHIPPING_OPTION

Ví dụ:

Ví dụ này cho thấy ý định và thông báo lỗi sẽ được hiển thị trong trang thanh toán.

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

Địa chỉ

Đối tượng này cung cấp thông tin về địa chỉ bưu chính được yêu cầu. Tất cả các thuộc tính đều là chuỗi.

Địa chỉ có thể được trả về ở định dạng MIN, FULLFULL-ISO3166. Bạn có thể xem các thuộc tính thuộc từng định dạng trong bảng sau.

Thuộc tính Định dạng địa chỉ Mô tả
name MIN, FULL, FULL-ISO3166 Họ và tên đầy đủ của người nhận.
postalCode MIN, FULL, FULL-ISO3166 Mã bưu điện hoặc mã vùng.
countryCode MIN, FULL, FULL-ISO3166 Mã quốc gia ISO 3166-1 alpha-2.
phoneNumber MIN, FULL, FULL-ISO3166 Số điện thoại, nếu phoneNumberRequired được đặt thành true trong PaymentDataRequest.
address1 FULL, FULL-ISO3166 Dòng đầu tiên của địa chỉ.
address2 FULL, FULL-ISO3166 Dòng thứ hai của địa chỉ.
address3 FULL, FULL-ISO3166 Dòng thứ ba của địa chỉ.
locality FULL, FULL-ISO3166 Thành phố, thị trấn, khu phố hoặc vùng ngoại ô.
administrativeArea FULL, FULL-ISO3166 Một phân khu của quốc gia, chẳng hạn như tiểu bang hoặc tỉnh.
sortingCode FULL, FULL-ISO3166 Mã sắp xếp.
iso3166AdministrativeArea FULL-ISO3166 Mã khu vực hành chính theo ISO 3166-2 tương ứng với administrativeArea.

Ví dụ:

Đây là ví dụ về địa chỉ theo định dạng FULL-ISO3166 ở Hoa Kỳ có nhiều dòng dữ liệu địa chỉ đường phố.

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

Thuộc tính Loại Sự cần thiết Mô tả
administrativeArea Chuỗi Bắt buộc Một phân khu của quốc gia, chẳng hạn như tiểu bang hoặc tỉnh.
countryCode Chuỗi Bắt buộc Mã quốc gia ISO 3166-1 alpha-2.
locality Chuỗi Bắt buộc Thành phố, thị trấn, khu phố hoặc vùng ngoại ô.
postalCode Chuỗi Bắt buộc Mã bưu chính đã được chỉnh sửa dựa trên quốc gia. Đối với Canada và Vương quốc Anh, mã này chỉ chứa 3 ký tự đầu tiên. Đối với Hoa Kỳ, mã này chứa 5 chữ số đầu tiên.
iso3166AdministrativeArea Chuỗi Không bắt buộc Mã khu vực hành chính theo ISO 3166-2 tương ứng với administrativeArea. Chỉ xuất hiện nếu định dạng địa chỉ giao hàng là FULL-ISO3166.

Ví dụ:

Ví dụ này cho thấy địa chỉ được chọn trong trang thanh toán.

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

SelectionOptionData

Thuộc tính Loại Sự cần thiết Mô tả
id Chuỗi Bắt buộc Khớp với SelectionOption.id

Ví dụ:

Ví dụ này cho thấy lựa chọn vận chuyển được chọn trong trang thanh toán.

{
  "id": "shipping-001"
}

OfferData

Đối tượng này cung cấp thông tin về mã ưu đãi được nhập vào trang thanh toán.

Thuộc tính Loại Sự cần thiết Mô tả
redemptionCodes mảng Luôn tồn tại Tập hợp mã khuyến mãi được nhập vào bảng thanh toán. Bao gồm cả những mã đã được phê duyệt.

Ví dụ:

Ví dụ sau đây minh hoạ một đối tượng OfferData có một mảng redemptionCodes.

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