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
), 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 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 ( |
Trường | |
---|---|
requestHeader |
BẮT BUỘC: 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 nhà 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 là 100 ký tự. |
associationId |
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
|
|
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ột OTP được tạo từ |
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 ( |
Trường | |
---|---|
responseHeader |
BẮT BUỘC: Tiêu đề chung cho tất cả câu trả lời. |
paymentIntegratorAssociateAccountId |
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 |
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 |
accountId |
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 |
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à |
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 |
BẮT BUỘC: Kết quả của mối liên kết này. |
Trường kết hợp
|
|
accountNickname |
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 |
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ư 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 |
KHÔNG BẮT BUỘC: Họ tên của khách hàng. |
addressLine[] |
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 |
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 |
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 |
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 |
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 |
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 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. |