Đố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à đối tượng được trả về bằng phương thức ứng dụng khách của Google Pay API.

IsReadyToPayResponse

Đối tượng này cung cấp thông tin về khả năng của khách truy cập trang web trong việc cung cấp thông tin thanh toán 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 Có 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ể gắn liền với 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. Điều này bao gồm cả trường hợp họ đăng nhập vào Tài khoản Google và cung cấp 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 động bằng thuộc tính environment của TEST, thì phương thức thanh toán luôn được coi là có sẵn.

Ví dụ

Ví dụ sau đây cho bạn 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à đối tượng phản hồi mà 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ố Có 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ố Có 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 Có 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ụ

Ví dụ về phản hồi này cho Google Pay API phiên bản 2.0 cho thấy phương thức thanh toán CARD được chọn trong bảng thanh toán của Google Pay. Đã tạo mã thông báo phương thức thanh toán cho cổng thanh toán 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ề bởi dữ liệu đầu vào onPaymentDataChanged() của API Google Pay khi địa chỉ giao hàng hoặc phương thức vận chuyển thay đổi trong trang 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
  • PAYMENT_METHOD
  • 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ỉ được chọn trong trang thanh toán.
shippingOptionData SelectionOptionData Không bắt buộc Phương thức vận chuyển đã chọn trong trang thanh toán.
paymentMethodData IntermediatePaymentMethodData Không bắt buộc Dữ liệu về phương thức thanh toán được 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 khi có thay đổi về địa chỉ giao hàng.

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

Ví dụ này cho thấy tải trọng trung gian được trả về khi phương thức thanh toán thay đổi.

{
  "callbackTrigger": "PAYMENT_METHOD",
  "paymentMethodData": {
    "type": "CARD",
    "info": {
      "cardNetwork": "VISA",
      "cardFundingSource": "CREDIT",
      "billingAddress": {
        "administrativeArea": "NY",
        "countryCode": "US",
        "locality": "New York",
        "postalCode": "10011"
      }
    }
  }
}

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 Có PaymentMethod type được chọn trong bảng thanh toán của Google Pay.
description chuỗi Có

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

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

Ví dụ

Ví dụ về phản hồi này cho thấy cách một phương thức thanh toán CARD được chọn trong trang thanh toán của Google Pay tạo mã thông báo phương thức thanh toán cho cổng thanh toán 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 Có Thông tin chi tiết về thẻ. Giá trị này thường là bốn chữ số cuối của số tài khoản thanh toán đã chọn.
assuranceDetails AssuranceDetailsSpecifications Có Đố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 được trả về nếu assuranceDetailsRequired được đặt thành true trong CardParameters.
cardNetwork chuỗi Có

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

Không được hiển thị giá trị mạng thẻ này cho người mua. Trường này được dùng khi cần có 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ủa họ. Để có nội dung mô tả mà người dùng có thể nhìn 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 liên kết với phương thức thanh toán được cung cấp, nếu billingAddressRequired được đặt thành true trong CardParameters.
cardFundingSource chuỗi Có

Nguồn tiền vào 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 trên thông tin xác thực 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 phương thức thanh toán.

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

Nếu là 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ư khi thực hiện giao dịch bằng thẻ. Phương thức 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 ở việc tăng cường bảo mật 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 Request.

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 Có 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ề phản hồi được mã hoá và chuẩn bị cho cổng thanh toán 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 các kết quả sau của người bán:
  • SUCCESS
  • ERROR
error PaymentDataError Không bắt buộc Lỗi sẽ hiển thị trong trang thanh toán cho người dùng khi cần thử lại 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 khoản 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 hộp thoại.
intent Chuỗi Bắt buộc

Ý định của lỗi. Ý định này phải là ý định đã được đăng ký trong PaymentDataRequest ngay từ đầu quy trình.

  • 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ẽ 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ả thuộc tính đều là chuỗi.

Địa chỉ có thể được trả về ở các định dạng MIN, FULL và FULL-ISO3166. Bạn có thể xem các thuộc tính của 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 của người nhận.
postalCode MIN, FULL, FULL-ISO3166 Mã bưu chính hoặc mã ZIP.
countryCode MIN, FULL, FULL-ISO3166 Mã quốc gia theo 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 đơn vị hành chính cấp dưới của quốc gia, chẳng hạn như tiểu bang hoặc tỉnh.
sortingCode FULL, FULL-ISO3166 Mã ngân hàng.
iso3166AdministrativeArea FULL-ISO3166 Mã khu vực hành chính 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

Địa chỉ trung gian chứa địa chỉ giao hàng đã được loại bỏ thông tin nhạy cảm (không có dòng địa chỉ cấp đường phố hoặc tên người nhận) để cho phép tính thuế và các lựa chọn giao hàng hiện hành trước khi người dùng cho phép thanh toán.

Thuộc tính Loại Sự cần thiết Mô tả
administrativeArea Chuỗi Bắt buộc Một đơn vị hành chính cấp dưới 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 theo 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 loại bỏ thông tin nhạy cảm dựa trên quốc gia. Đối với Canada và Vương quốc Anh, trường này chỉ chứa ba 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 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 bạn 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 Trùng khớp với SelectionOption.id

Ví dụ

Ví dụ này cho bạn 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 trang thanh toán. Bao gồm các mã đã được phê duyệt.

Ví dụ

Ví dụ sau đây cho thấy một đối tượng OfferData có mảng redemptionCodes.

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

IntermediatePaymentMethodData

Đối tượng này chứa một số thông tin về phương thức thanh toán đã chọn cho lệnh gọi lại của nhà phát triển.

Thuộc tính Loại Sự cần thiết Mô tả
type chuỗi Bắt buộc Loại phương thức thanh toán. Chỉ hỗ trợ CARD cho lệnh gọi lại này.
info IntermediateCardInfo Không bắt buộc Thông tin về thẻ đã chọn. Chỉ xuất hiện nếu type là CARD.

IntermediateCardInfo

Đối tượng này chứa thông tin giới hạn về thẻ đã chọn, được dùng trong lệnh gọi lại của nhà phát triển.

Thuộc tính Loại Sự cần thiết Mô tả
billingAddress IntermediateAddress Không bắt buộc Địa chỉ thanh toán liên kết với thẻ. Chỉ được điền sẵn khi địa chỉ thanh toán được đặt là bắt buộc.
cardNetwork chuỗi Không bắt buộc

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

Giá trị mạng thẻ này không được hiển thị cho người mua.

cardFundingSource chuỗi Không bắt buộc

Nguồn tiền cho thẻ thanh toán đã chọn.

  • UNKNOWN
  • CREDIT
  • DEBIT
  • PREPAID