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>

このフィールドに「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 を送信する必要があるアカウントの ID です。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)

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

OTP コンテキスト

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

インテグレーターが保持するユーザーのアカウントが閉鎖されています。「aAssociationonId」がこのユーザーの特定に使用される場合にのみ使用してください。

この値を返すと、Google でユーザーの支払い方法が終了します。ユーザーは関連付けフローを再度実行して、新しい支払い方法を追加するよう求められます。

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

インテグレーターのユーザー アカウントが閉鎖されたため、アカウントが乗っ取られた可能性があります。「aAssociationonId」がこのユーザーの特定に使用される場合にのみ使用してください。

この値を返すと、Google でユーザーの支払い方法が終了します。ユーザーは関連付けフローを再度実行して、新しい支払い方法を追加するよう求められます。

ACCOUNT_CLOSED_FRAUD

インテグレーターが保有するユーザーのアカウントは、不正行為を理由に閉鎖されています。「aAssociationonId」がこのユーザーの特定に使用される場合にのみ使用してください。

この値を返すと、Google でユーザーの支払い方法が終了します。ユーザーは関連付けフローを再度実行して、新しい支払い方法を追加するよう求められます。