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 phương thức đang được thêm của Google.

Việc liên kết tài khoản sẽ diễn ra sau khi đơn vị 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 quy trình 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 nhằm 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à đối tác tích hợp đã thấy trong một liên kết khác, thì trình tích hợp 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
}

Câu trả lờ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.
}
Trường
requestHeader

object (RequestHeader)

BẮT BUỘC: 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 nhà 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 là 100 ký tự.

associationId

string

BẮT BUỘC: Giá trị nhận dạng của mối liên kết này. Mã 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 cần được xác thực.

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

Trường kết hợp 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ỉ xảy ra 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ột OTP được tạo từ sendOtp. Điều này chỉ xuất hiện nếu người dùng đã thực hiện 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.
}
Trường
responseHeader

object (ResponseHeader)

BẮT BUỘC: Tiêu đề chung cho tất 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 đơn vị tích hợp và do đối tác 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à đối tác tích hợp biết cuộc 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 hệ thống khi mã thông báo hết hạn. Dùng 0 để cho biết 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 đơn vị tích hợp. Thông tin này được 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ư nhân viên điều hành 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 mà người dùng nhận ra được (ví dụ: người dùng biết mã nhận dạng 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 là không thay đổi được trong suốt thời gian hoạt động của tài khoản.

userMessage
(deprecated)

string

KHÔNG DÙNG NỮA: Nội dung mô tả về kết quả sẽ hiển thị cho 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à đơn vị tích hợp biết và sẽ chia sẻ với Google về khách hàng này. Dùng để cung cấp thông tin về rủi ro và xử lý việc điền sẵn.

result

enum (AssociateAccountResultCode)

BẮT BUỘC: Kết quả của mối liên kết này.

Trường kết hợp 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à người dùng biết 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ẽ chỉ ra 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 các giao diện người dùng như quy trình mua để người dùng có thể phân biệt các phương thức thanh toán.

fullAccountNickname

string

KHÔNG BẮT BUỘC: Chuỗi mà người dùng biết 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 để xác định danh tính email.

Giá trị này sẽ xuất hiện trong các giao diện người dùng như quy trình mua để người dùng có thể phân biệt 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
}
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: Trường 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 cụm từ không rõ ràng, nhưng thường đề cập đến phần thành phố/thị trấn của một địa chỉ. Ở các khu vực trên thế giới nơi các địa phương không được xác định 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 localityName và sử dụng addressLine.

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

administrativeAreaName

string

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

postalCodeNumber

string

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

countryCode

string

KHÔNG BẮT BUỘC: Mã quốc gia của địa chỉ khách hàng, dự kiến là 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 xác thực người dùng lại 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à nhà 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ố xác minh quá nhiều OTP.
OTP_EXPIRED OTP đã hết hạn.