Method: sendOtp

インテグレータに、電話番号に OTP を送信するようリクエストします。

インテグレータから SUCCESS が返された場合、Google は電話番号に送信された SMS を想定します。

Google は、ユーザーが最初にアカウントを Google に関連付ける際にのみ accountPhoneNumber を提供します。その後は、後続のすべての呼び出しで associationId のみが送信されます。

リクエストの処理中にエンドポイントでエラーが発生した場合、このエンドポイントからのレスポンス本文は ErrorResponse 型にする必要があります。

リクエストの例を次に示します。


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "0123434-otp-abc",
    "requestTimestamp": "1502545413026"
  },
  "accountPhoneNumber": "+918067218010",
  "smsMatchingToken": "AB12345678C",
  "otpContext": {
    "association": {}
  }
}

レスポンスの例を次に示します。


{
  "responseHeader": {
    "responseTimestamp": "1502545413098"
  },
  "paymentIntegratorSendOtpId": "99==ABC EF",
  "result": "SUCCESS"
}

HTTP リクエスト

POST https://www.integratorhost.example.com/v1/sendOtp

リクエスト本文

リクエストの本文には、次の構造のデータが含まれます。

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.
}
フィールド
requestHeader

object (RequestHeader)

必須: すべてのリクエストに共通のヘッダー。

smsMatchingToken

string

必須: Google から提供される値で、ユーザーに配信される SMS に含める必要があります。これにより、Google は Android O デバイスに対してデバイス上の SMS を自動的に照合できます(リファレンスをご覧ください)。これは 11 文字です。

たとえば、SMS が通常次のような場合、

Here's the OTP you requested: <OTP>

Google は「0123456789A」を送信しますこのフィールドに値を指定すると、SMS は次のようになります。

0123456789A

Here's the OTP you requested: YYXXZZ

または、次のようになります。

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

省略可: OTP がリクエストされているコンテキストです。

共用体フィールド account_identifier必須: OTP を送信する必要があるアカウントの識別子です。account_identifier は次のいずれかになります。
accountPhoneNumber

string

これは E.164 形式の電話番号です。(例: +14035551111、+918067218000)。先頭に必ず + を付けて、後ろに数字のみを付けます(ダッシュは付けません)。

これは、ユーザーが最初にアカウントを Google に関連付けたときと、再関連付けするときに入力されます。

associationId

string

ユーザーのアカウントを参照するために使用される関連付け ID です。

この値は、最初に関連付けた後のすべての呼び出しで入力されます。

レスポンスの本文

sendOtp メソッドのレスポンス オブジェクト。

成功した場合、レスポンスの本文には次の構造のデータが含まれます。

JSON 表現
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
フィールド
responseHeader

object (ResponseHeader)

必須: すべてのレスポンスに共通のヘッダー。

paymentIntegratorSendOtpId

string

省略可: インテグレータがこの OTP 送信リクエストを認識できる識別子。これはインテグレータが生成します。

result

enum (SendOtpResultCode)

必須: このリクエストの結果

OtpContext

OTP がリクエストされているコンテキスト。

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.
}
フィールド
共用体フィールド otp_context必須: OTP がリクエストされているコンテキスト。otp_context は次のいずれかになります。
association

object (Empty)

関連付け/再関連付けのコンテキストで OTP がリクエストされています。

mandateCreation

object (Empty)

委任の作成のコンテキストで OTP がリクエストされています。

associationWithMandateCreation

object (Empty)

委任の作成とともに OTP の関連付けをリクエストしています。

この型にはフィールドがありません。

このオブジェクトは拡張性に使用されます。ブール値と列挙型は、追加データで拡張する必要があるためです。実装者はこれを使用してプレゼンスを判断します。この表す列挙型は、今後のバージョンでデータを格納するように拡張される可能性があります。

Empty の JSON 表現は、空の JSON オブジェクト {} です。

SendOtpResultCode

OTP リクエスト送信の結果コード。

列挙型
UNKNOWN_RESULT このデフォルト値は設定しないでください。
SUCCESS インテグレータが OTP を送信しました。
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT この電話番号は、associationId によって特定されるアカウントに関連付けられていません。
UNKNOWN_PHONE_NUMBER 電話番号がどのアカウントにも関連付けられていません。associationId が設定されていない場合に使用されます。
MESSAGE_UNABLE_TO_BE_SENT インテグレータがなんらかの理由で OTP を送信できませんでした。これは一時的なエラーであり、この呼び出しが再試行される可能性があります。
INVALID_PHONE_NUMBER 電話番号の形式が正しくありません。
NOT_ELIGIBLE お客様のアカウントではこのサービスをご利用いただけません。
OTP_LIMIT_REACHED ユーザーが OTP をリクエストまたは確認しようとした回数が多すぎます。
ACCOUNT_CLOSED

インテグレータが保持していたユーザーのアカウントが閉鎖されました。これは "associationId" がを使用してこのユーザーを識別します。

この値が返されると、ユーザーの支払い方法が Google でクローズされます。ユーザーは、関連付けフローをもう一度実行して、新しい楽器を追加せざるを得なくなります。

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

インテグレーターと取引したユーザーのアカウントは閉鎖されています。アカウントが乗っ取られた疑いがあります。これは "associationId" がを使用してこのユーザーを識別します。

この値が返されると、ユーザーの支払い方法が Google でクローズされます。ユーザーは、関連付けフローをもう一度実行して、新しい楽器を追加せざるを得なくなります。

ACCOUNT_CLOSED_FRAUD

インテグレータが保持しているユーザーのアカウントは、不正行為のため閉鎖されています。これは "associationId" がを使用してこのユーザーを識別します。

この値が返されると、ユーザーの支払い方法が Google でクローズされます。ユーザーは、関連付けフローをもう一度実行して、新しい楽器を追加せざるを得なくなります。