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
), associationId
và googlePaymentToken
(GPT). Công ty xử lý thanh toán phải liên kết associationId
và googlePaymentToken
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 ( |
Các trường | |
---|---|
requestHeader |
REQUIRED: Tiêu đề chung cho tất cả các yêu cầu. |
provideUserInformation |
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 |
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 |
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
|
|
authenticationRequestId |
KHÔNG BẮT BUỘC: |
otpVerification |
KHÔNG BẮT BUỘC: Dữ liệu cần thiết để xác minh mã OTP được tạo qua |
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 ( |
Các trường | |
---|---|
responseHeader |
REQUIRED: Tiêu đề chung cho tất cả các câu trả lời. |
paymentIntegratorAssociateAccountId |
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 |
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 |
accountId |
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 |
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à |
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 |
REQUIRED: Kết quả của mối liên kết này. |
Trường nhóm
|
|
accountNickname |
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 |
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ư 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 |
KHÔNG BẮT BUỘC: Họ tên của khách hàng. |
addressLine[] |
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 |
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 |
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 |
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 |
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 |
KHÔNG BẮT BUỘC: Số điện thoại của khách hàng. |
emailAddress |
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. |