Method: sendOtp

Yêu cầu nhà tích hợp gửi OTP đến số điện thoại.

Nếu nhà tích hợp trả về SUCCESS, thì Google dự kiến sẽ gửi một tin nhắn SMS đến số điện thoại.

Google chỉ cung cấp accountPhoneNumber khi ban đầu người dùng liên kết tài khoản của họ với Google. Sau đó, chỉ associationId mới được gửi cho tất cả các cuộc 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.

Một yêu cầu mẫu 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": {}
  }
}

Một phản hồ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 với cấu trúc như sau:

Biểu diễn dưới dạng JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "smsMatchingToken": string,
  "otpContext": {
    object (OtpContext)
  },

  // Union field account_identifier can be only one of the following:
  "accountPhoneNumber": string,
  "associationId": string
  // End of list of possible types for union field account_identifier.
}
Các trường
requestHeader

object (RequestHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các yêu cầu.

smsMatchingToken

string

BẮT BUỘC: Giá trị này do Google cung cấp và phải được bao gồm trong SMS gửi tới người dùng. Điều này cho phép Google tự động đối sánh SMS trên thiết bị với các thiết bị Android O (xem tham chiếu ). Mật khẩu này sẽ dài 11 ký tự.

Ví dụ: nếu SMS thường có dạng như sau:

Here's the OTP you requested: <OTP>

Và Google gửi "0123456789A" cho trường này, sau đó SMS sẽ trông giống như sau:

0123456789A

Here's the OTP you requested: YYXXZZ

Ngoài ra, thành phần này có thể như sau:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

KHÔNG BẮT BUỘC: Đây là ngữ cảnh mà OTP đang được yêu cầu.

Trường nhóm account_identifier. BẮT BUỘC: Đây là mã định danh của tài khoản cần gửi OTP. account_identifier chỉ có thể là một trong những loại sau đây:
accountPhoneNumber

string

Đây là số điện thoại có định dạng E.164. Ví dụ bao gồm +14035551111 và +918067218000. Điều này sẽ luôn dẫn đầu bằng dấu + và chỉ bao gồm các số sau đó (không có dấu gạch ngang).

Thông tin này được điền khi người dùng liên kết tài khoản của họ với Google lúc đầu và trong quá trình liên kết lại.

associationId

string

Đây là giá trị nhận dạng liên kết dùng để tham chiếu tài khoản của một người dùng.

Giá trị này được điền cho tất cả các cuộc gọi tiếp theo sau mối 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 (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Các trường
responseHeader

object (ResponseHeader)

BẮT BUỘC: Tiêu đề chung cho tất cả các phản hồi.

paymentIntegratorSendOtpId

string

KHÔNG BẮT BUỘC: Giá trị nhận dạng của nhà tích hợp biết yêu cầu gửi OTP này là. Đây là công cụ tích hợp được tạo.

result

enum (SendOtpResultCode)

BẮT BUỘC: Kết quả của yêu cầu này

Ngữ cảnh Otp

Ngữ cảnh yêu cầu OTP.

Biểu diễn dưới dạng JSON
{

  // Union field otp_context can be only one of the following:
  "association": {
    object (Empty)
  },
  "mandateCreation": {
    object (Empty)
  },
  "associationWithMandateCreation": {
    object (Empty)
  }
  // End of list of possible types for union field otp_context.
}
Các trường
Trường nhóm otp_context. BẮT BUỘC: Ngữ cảnh trong đó yêu cầu OTP. otp_context chỉ có thể là một trong những loại sau đây:
association

object (Empty)

OTP đang được yêu cầu trong ngữ cảnh liên kết/liên kết lại.

mandateCreation

object (Empty)

Đang yêu cầu OTP trong trường hợp tạo uỷ nhiệm chi.

associationWithMandateCreation

object (Empty)

Đang yêu cầu OTP để liên kết với tạo uỷ nhiệm chi.

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à bảng liệt kê thường cần được mở rộng bằng dữ liệu bổ sung. Người triển khai sử dụng thuộc tính này để xác định sự hiện diện. Bảng liệt kê này có thể được mở rộng để chứa dữ liệu trong các phiên bản trong tương lai.

Biểu diễn JSON cho Empty là đối tượng JSON {} trống.

Mã kết quả gửi

Mã kết quả để gửi yêu cầu OTP.

Enum
UNKNOWN_RESULT Không bao giờ đặt giá trị mặc định này!
SUCCESS Integrator đã gửi OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Số điện thoại không liên kết với tài khoản do associationId xác định.
UNKNOWN_PHONE_NUMBER Số điện thoại không được liên kết với bất kỳ tài khoản nào. Giá trị này được sử dụng khi bạn không đặt associationId.
MESSAGE_UNABLE_TO_BE_SENT Tích hợp không thể gửi OTP vì lý do nào đó. Đây là lỗi tạm thời và có thể dẫn đến việc gọi 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 cho dịch vụ này.
OTP_LIMIT_REACHED Người dùng đã yêu cầu hoặc cố gắng xác minh quá nhiều OTP.
ACCOUNT_CLOSED

Tài khoản của người dùng được tích hợp với nhà tích hợp đã bị đóng. Bạn chỉ nên sử dụng thuộc tính này khi đang sử dụng "associationId" để nhận dạng người dùng này.

Khi trả lại giá trị này, công cụ của người dùng sẽ bị đóng với Google. Người dùng sẽ buộc phải thêm 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 nhà tích hợp đã bị đóng, tài khoản bị nghi ngờ chiếm đoạt. Bạn chỉ nên sử dụng thuộc tính này khi đang sử dụng "associationId" để nhận dạng người dùng này.

Khi trả lại giá trị này, công cụ của người dùng sẽ bị đóng với Google. Người dùng sẽ buộc phải thêm 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 nhà tích hợp giữ đã bị đóng do gian lận. Bạn chỉ nên sử dụng thuộc tính này khi đang sử dụng "associationId" để nhận dạng người dùng này.

Khi trả lại giá trị này, công cụ của người dùng sẽ bị đóng với Google. Người dùng sẽ buộc phải thêm công cụ mới bằng cách thực hiện lại quy trình liên kết.