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에서 기기의 SMS를 Android O 기기에 자동으로 매칭합니다 (참조 참고). 이 부분은 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

사용자 계정을 참조하는 데 사용되는 연결 식별자입니다.

초기 연결 이후의 모든 후속 호출에 채워집니다.

응답 본문

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에서 사용자의 결제 수단이 폐쇄됩니다. 사용자는 연결 흐름을 다시 통해 새 결제 수단을 추가해야 합니다.