Method: associateAccount

Liên kết tài khoản của khách hàng với công ty xử lý thanh toán với công cụ của Google mà bạn đang thêm.

Việc liên kết tài khoản sẽ được thực hiện sau khi trình tích hợp xác thực người dùng. Việc liên kết diễn ra thông qua lệnh gọi từ máy chủ đến máy chủ có chứa requestId cho luồng xác thực được liên kết (authenticationRequestId), associationIdgooglePaymentToken (GPT). Công ty xử lý thanh toán phải liên kết associationIdgooglePaymentToken với tài khoản của khách hàng để xác thực. GPT được dùng để bắt đầu thanh toán. associationId được dùng trong các lệnh gọi xác thực lại để xác định tài khoản cần xác thực.

Nếu Google gửi một associationId hoặc googlePaymentToken mà trình tích hợp đã thấy trong một mối liên kết khác, thì ứng dụng sẽ gửi lỗi.

Nếu điểm cuối gặp lỗi trong khi xử lý yêu cầu, thì nội dung phản hồi từ điểm cuối này phải thuộc loại ErrorResponse.

Yêu cầu mẫu sẽ có dạng như sau:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "cmVxdWVzdDE",
    "requestTimestamp": "1481899949606"
 },
 "googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
 "authenticationRequestId": "bnAxdWTydDX==",
 "associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
 "provideUserInformation": true
}

Phản hồi mẫu sẽ có dạng như sau:


  {
  "responseHeader": {
    "responseTimestamp": "1481899949611"
  },
  "paymentIntegratorAssociateAccountId": "xx77df88934hfd",
  "accountId": "1234-5678-91",
  "accountNickname": "***-91",
  "tokenExpirationTime": "0",
  "userInformation": {
    "name": "Example Customer",
    "addressLine": ["123 Main St"],
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "postalCodeNumber": "80309",
    "countryCode": "US"
  },
  "result": "SUCCESS"
}

Yêu cầu HTTP

POST https://www.integratorhost.example.com/v1/associateAccount

Nội dung yêu cầu

Nội dung yêu cầu chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "provideUserInformation": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
Các trường
requestHeader

object (RequestHeader)

REQUIRED: Tiêu đề chung cho tất cả các yêu cầu.

provideUserInformation

boolean

BẮT BUỘC: Đúng nếu chúng tôi muốn đơn vị tích hợp cung cấp địa chỉ được liên kết với tài khoản này.

googlePaymentToken

string

BẮT BUỘC: Mã thông báo mà Google sẽ sử dụng để bắt đầu giao dịch mua với công ty xử lý thanh toán.

Đây là chuỗi có độ dài tối đa 100 ký tự.

associationId

string

REQUIRED: Giá trị nhận dạng của mối liên kết này. Giá trị nhận dạng này do Google tạo và được gửi trong quy trình xác thực lại để xác định tài khoản nào cần được xác thực.

Đây là chuỗi có độ dài tối đa 100 ký tự.

Trường nhóm account_verification.

account_verification chỉ có thể là một trong những trạng thái sau đây:

authenticationRequestId

string

KHÔNG BẮT BUỘC: requestId của yêu cầu xác thực trước lệnh gọi này. Giá trị nhận dạng này do Google tạo trong quy trình xác thực. Điều này chỉ xuất hiện nếu người dùng đã thực hiện quy trình xác thực ứng dụng Android, xác thực web hoặc phương thức xác thực không đồng bộ sử dụng authenticationResultNotification.

otpVerification

object (OtpVerification)

KHÔNG BẮT BUỘC: Dữ liệu cần thiết để xác minh mã OTP được tạo qua sendOtp. Thông báo này chỉ xuất hiện nếu người dùng đã trải qua đường dẫn sendOtp.

Nội dung phản hồi

Đối tượng phản hồi cho phương thức tài khoản liên kết.

Nếu thành công, phần nội dung phản hồi sẽ chứa dữ liệu có cấu trúc sau:

Biểu diễn dưới dạng JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
Các trường
responseHeader

object (ResponseHeader)

REQUIRED: Tiêu đề chung cho tất cả các câu trả lời.

paymentIntegratorAssociateAccountId

string

BẮT BUỘC: Giá trị nhận dạng này dành riêng cho trình tích hợp và do trình tích hợp tạo ra. Mã này chỉ được dùng cho mục đích gỡ lỗi để xác định lệnh gọi này. Đây là giá trị nhận dạng mà trình tích hợp biết lệnh gọi này.

tokenExpirationTime

string (int64 format)

KHÔNG BẮT BUỘC: Mili giây kể từ thời gian bắt đầu của mã thông báo hết hạn. Sử dụng 0 để báo hiệu rằng mã thông báo không hết hạn.

accountId

string

BẮT BUỘC: Mã tài khoản mà người dùng có với trình tích hợp. Dữ liệu này dùng để đánh giá rủi ro của Google nhằm tìm hiểu việc sử dụng lại tài khoản và mối quan hệ của tài khoản, cũng như các nhân viên hỗ trợ hoạt động của khách hàng của Google nhằm giúp khách hàng chẩn đoán vấn đề. Mã nhận dạng này phải là mã nhận dạng được người dùng (ví dụ: người dùng biết mã này vì mã này xuất hiện trên bảng sao kê của họ hoặc xuất hiện trên trang web sau khi họ đăng nhập vào tài khoản).

Giá trị này phải không thay đổi được trong thời gian tồn tại của tài khoản.

userMessage
(deprecated)

string

KHÔNG DÙNG NỮA: Nội dung mô tả kết quả sẽ hiển thị với người dùng nếu kết quả không phải là SUCCESS.

userInformation

object (UserInformation)

BẮT BUỘC: Thông tin người dùng mà bên tích hợp biết và sẽ chia sẻ với Google về khách hàng này. Dùng để điền thông tin về rủi ro và điền sẵn địa chỉ.

result

enum (AssociateAccountResultCode)

REQUIRED: Kết quả của mối liên kết này.

Trường nhóm account_names.

account_names chỉ có thể là một trong những trạng thái sau đây:

accountNickname

string

KHÔNG BẮT BUỘC: Chuỗi mà theo đó người dùng biết được tài khoản này cho mục đích hiển thị. Đây là hậu tố của biệt hiệu tài khoản. Ví dụ: bốn số cuối của một số điện thoại. Google sẽ cho biết trong giao diện người dùng rằng đây chỉ là hậu tố của biệt hiệu.

Giá trị này sẽ xuất hiện trong giao diện người dùng như quy trình mua để giúp người dùng phân biệt giữa các phương thức thanh toán.

fullAccountNickname

string

KHÔNG BẮT BUỘC: Chuỗi mà theo đó người dùng biết được tài khoản này cho mục đích hiển thị. Không giống như accountNickname, đây là biệt hiệu đầy đủ của tài khoản. Ví dụ: 56565-56501 cho số điện thoại hoặc sally@sample-email.com cho thông tin nhận dạng email.

Giá trị này sẽ xuất hiện trong giao diện người dùng như quy trình mua để giúp người dùng phân biệt giữa các phương thức thanh toán.

UserInformation

Cấu trúc lưu giữ thông tin về người dùng.

Biểu diễn dưới dạng JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
Các trường
name

string

KHÔNG BẮT BUỘC: Họ tên của khách hàng.

addressLine[]

string

KHÔNG BẮT BUỘC: Thuộc tính này chứa văn bản Địa chỉ không có cấu trúc.

localityName

string

KHÔNG BẮT BUỘC: Đây là một thuật ngữ không rõ ràng, nhưng thường đề cập đến phần thành phố/thị trấn trong một địa chỉ. Ở những khu vực trên thế giới nơi các địa phương không được định nghĩa rõ hoặc không phù hợp với cấu trúc này (ví dụ: Nhật Bản và Trung Quốc), hãy để trống localName và sử dụng addressLine.

Ví dụ: Thành phố ở Hoa Kỳ, khu CNTT, thị trấn có bưu điện ở Vương quốc Anh.

administrativeAreaName

string

KHÔNG BẮT BUỘC: Đơn vị hành chính cấp cao nhất của quốc gia này" Ví dụ: Tiểu bang của Hoa Kỳ, khu vực Ý, tỉnh CN, tỉnh Nhật Bản."

postalCodeNumber

string

KHÔNG BẮT BUỘC: Mặc dù có tên như vậy, nhưng giá trịpostalCodeNumber thường là chữ và số. Ví dụ: "94043", "SW1W", "SW1W 9TQ".

countryCode

string

KHÔNG BẮT BUỘC: Mã quốc gia cho địa chỉ của khách hàng, dự kiến sẽ theo ISO-3166-1 Alpha-2.

phone

string

KHÔNG BẮT BUỘC: Số điện thoại của khách hàng.

emailAddress

string

KHÔNG BẮT BUỘC: Địa chỉ email của khách hàng.

AssociateAccountResultCode

Mã kết quả cho tài khoản liên kết.

Enum
UNKNOWN_RESULT Đừng bao giờ đặt giá trị mặc định này!
SUCCESS Liên kết thành công.
USER_AUTHENTICATION_FAILED Mặc dù gói xác thực tài khoản được trả về, nhưng quá trình xác thực người dùng không thành công.
NOT_ELIGIBLE Tài khoản của người dùng không đủ điều kiện sử dụng dịch vụ này.
OTP_NOT_MATCHED OTP không khớp với thông tin mà đơn vị tích hợp đã gửi.
OTP_ALREADY_USED OTP đã được sử dụng.
OTP_LIMIT_REACHED Người dùng đã yêu cầu hoặc cố gắng xác minh quá nhiều OTP.
OTP_EXPIRED OTP đã hết hạn.