Yêu cầu đối tác tích hợp gửi OTP đến số điện thoại.
Nếu đối tác tích hợp trả về giá trị SUCCESS
, thì Google sẽ yêu cầu gửi một tin nhắn SMS đến số điện thoại đó.
Google chỉ cung cấp accountPhoneNumber
khi người dùng liên kết tài khoản của họ với Google lần đầu. Sau đó, chỉ associationId
được gửi cho tất cả các lệnh gọi tiếp theo.
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": "0123434-otp-abc",
"requestTimestamp": "1502545413026"
},
"accountPhoneNumber": "+918067218010",
"smsMatchingToken": "AB12345678C",
"otpContext": {
"association": {}
}
}
Câu trả lời mẫu sẽ có dạng như sau:
{
"responseHeader": {
"responseTimestamp": "1502545413098"
},
"paymentIntegratorSendOtpId": "99==ABC EF",
"result": "SUCCESS"
}
Yêu cầu HTTP
POST https://www.integratorhost.example.com/v1/sendOtp
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. |
smsMatchingToken |
BẮT BUỘC: Giá trị này do Google cung cấp và phải có trong tin nhắn SMS gửi đến người dùng. Việc này cho phép Google tự động so khớp SMS trên thiết bị dành cho các thiết bị Android O (xem tài liệu tham khảo). Mã này sẽ có 11 ký tự. Ví dụ: nếu SMS thường trông giống như sau:
Và Google gửi "0123456789A" đối với trường này, thì SMS sẽ có dạng như sau:
Ngoài ra, mã này có thể có dạng như sau:
|
otpContext |
KHÔNG BẮT BUỘC: Đây là bối cảnh trong đó yêu cầu OTP đang được thực hiện. |
Trường kết hợp account_identifier . BẮT BUỘC: Đây là giá trị nhận dạng của tài khoản mà bạn cần gửi OTP. account_identifier chỉ có thể là một trong những trạng thái sau đây: |
|
accountPhoneNumber |
Đây là số điện thoại có định dạng E.164. Ví dụ: +14035551111 và +918067218000. Hàm này sẽ luôn bắt đầu bằng dấu + và chỉ bao gồm các số về sau (không có dấu gạch ngang). Trường này được điền sẵn khi người dùng liên kết tài khoản lần đầu với Google và trong khi liên kết lại. |
associationId |
Đây là mã nhận dạng liên kết dùng để tham chiếu đến một tài khoản của người dùng. Thông tin này được điền sẵn cho tất cả các lệnh gọi tiếp theo sau lần liên kết ban đầu. |
Nội dung phản hồi
Đối tượng phản hồi cho phương thức sendOtp.
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. |
paymentIntegratorSendOtpId |
KHÔNG BẮT BUỘC: Giá trị nhận dạng mà đối tác tích hợp biết yêu cầu OTP gửi này dưới dạng. Đây là dữ liệu tích hợp do trình tích hợp tạo. |
result |
BẮT BUỘC: Kết quả của yêu cầu này |
OtpContext
Bối cảnh trong đó yêu cầu OTP.
Biểu diễn dưới dạng JSON |
---|
{ // Union field |
Trường | |
---|---|
Trường kết hợp otp_context . BẮT BUỘC: Bối cảnh trong đó yêu cầu OTP. otp_context chỉ có thể là một trong những trạng thái sau đây: |
|
association |
Bạn đang yêu cầu OTP cho việc liên kết/liên kết lại. |
mandateCreation |
Yêu cầu OTP trong quá trình tạo uỷ nhiệm chi. |
associationWithMandateCreation |
Đang yêu cầu OTP để liên kết cùng với việc tạo giấy uỷ nhiệm. |
Trống
Loại này không có trường nào.
Đối tượng này được dùng để mở rộng vì boolean và enum thường cần được mở rộng khi có thêm dữ liệu. Trình triển khai sử dụng lớp này để xác định sự hiện diện. Bản liệt kê này đại diện có thể được mở rộng để chứa dữ liệu trong các phiên bản trong tương lai.
Cách biểu diễn JSON cho Empty
là đối tượng JSON trống {}
.
SendOtpResultCode
Mã kết quả cho việc gửi yêu cầu OTP.
Enum | |
---|---|
UNKNOWN_RESULT |
Đừng bao giờ đặt giá trị mặc định này! |
SUCCESS |
Nhà tích hợp đã gửi OTP. |
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT |
Số điện thoại chưa được liên kết với tài khoản do associationId xác định. |
UNKNOWN_PHONE_NUMBER |
Số điện thoại chưa được liên kết với bất kỳ tài khoản nào. Thông tin này được dùng khi bạn không đặt associationId . |
MESSAGE_UNABLE_TO_BE_SENT |
Trình tích hợp không thể gửi OTP vì lý do nào đó. Đây là một lỗi tạm thời và có thể khiến lệnh gọi này được thử lại. |
INVALID_PHONE_NUMBER |
Định dạng số điện thoại không chính xác. |
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_LIMIT_REACHED |
Người dùng đã yêu cầu hoặc cố xác minh quá nhiều OTP. |
ACCOUNT_CLOSED |
Tài khoản của người dùng do đối tác tích hợp nắm giữ đã bị đóng. Bạn chỉ nên sử dụng thuộc tính này khi "associationId" đang được sử dụng để nhận dạng người dùng này. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
Tài khoản của người dùng với đơn vị tích hợp đã bị đóng và có thể là tài khoản bị chiếm đoạt. Bạn chỉ nên sử dụng thuộc tính này khi "associationId" đang được sử dụng để nhận dạng người dùng này. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |
ACCOUNT_CLOSED_FRAUD |
Tài khoản của người dùng do đối tác tích hợp nắm giữ đã bị đóng do gian lận. Bạn chỉ nên sử dụng thuộc tính này khi "associationId" đang được sử dụng để nhận dạng người dùng này. Việc trả về giá trị này sẽ khiến phương thức của người dùng bị đóng với Google. Người dùng sẽ buộc phải thêm một công cụ mới bằng cách thực hiện lại quy trình liên kết. |