Method: sendOtp

Entegratörün telefon numarasına bir OTP göndermesini ister.

Entegratör SUCCESS değerini döndürürse Google, telefon numarasına bir SMS gönderilmesini bekler.

Bir kullanıcı, hesabını ilk kez Google ile ilişkilendirdiğinde Google yalnızca bir accountPhoneNumber sağlar. Bundan sonra, gelen tüm aramalar için yalnızca associationId gönderilecek.

Uç nokta, isteği işlerken bir hatayla karşılaşırsa bu uç noktadan yanıt gövdesi ErrorResponse türünde olmalıdır.

Örnek bir istek:


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

Örnek bir yanıt:


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

HTTP isteği

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

İstek içeriği

İstek gövdesi aşağıdaki yapıya sahip veriler içerir:

JSON gösterimi
{
  "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.
}
Alanlar
requestHeader

object (RequestHeader)

ZORUNLU: Tüm istekler için ortak üstbilgi.

smsMatchingToken

string

ZORUNLU: Bu değer Google tarafından sağlanır ve kullanıcıya gönderilen SMS'e dahil edilmelidir. Bu izin, Google'ın Android O cihazlarda cihazdaki SMS'yi otomatik olarak eşleştirmesine olanak tanır (referans bölümüne bakın). Bu karakter 11 karakter olacaktır.

Bu nedenle, örneğin SMS normal şekilde görünüyorsa:

Here's the OTP you requested: <OTP>

Google bu alan için "0123456789A" değerini gönderirse SMS şöyle görünmelidir:

0123456789A

Here's the OTP you requested: YYXXZZ

Alternatif olarak, aşağıdaki gibi görünebilir:

Here's the OTP you requested: YYXXZZ

0123456789A

otpContext

object (OtpContext)

İSTEĞE BAĞLI: OTP'nin istendiği bağlamdır.

Birlik alanı account_identifier. ZORUNLU: Bu, OTP'nin gönderilmesi gereken hesabın tanımlayıcısıdır. account_identifier aşağıdakilerden yalnızca biri olabilir:
accountPhoneNumber

string

Bu, E.164 biçimli bir telefon numarasıdır. +14035551111 ve +918067218000, buna örnek olarak verilebilir. Bu işlem her zaman + ile başlar ve yalnızca sonrasında gelen sayılar yer alır (tire işareti olmadan).

Bu alan, bir kullanıcı hesabını ilk kez Google ile ilişkilendirdiğinde ve yeniden ilişkilendirme sırasında doldurulur.

associationId

string

Bu, bir kullanıcının hesabına referans vermek için kullanılan ilişkilendirme tanımlayıcısıdır.

Bu değer, ilk ilişkilendirmeden sonraki tüm çağrılar için doldurulur.

Yanıt gövdesi

sendOtp yönteminin yanıt nesnesi.

Başarılı olursa yanıt metni aşağıdaki yapıyla birlikte verileri içerir:

JSON gösterimi
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorSendOtpId": string,
  "result": enum (SendOtpResultCode)
}
Alanlar
responseHeader

object (ResponseHeader)

ZORUNLU: Tüm yanıtlar için ortak başlık.

paymentIntegratorSendOtpId

string

İSTEĞE BAĞLI: Entegratör, OTP isteğinin bu şekilde gönderildiğini bilir. Bu, entegratör tarafından oluşturulmuştur.

result

enum (SendOtpResultCode)

GEREKLİ: Bu isteğin sonucu

OtpContext

OTP'nin istendiği bağlam.

JSON gösterimi
{

  // 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.
}
Alanlar
Birlik alanı otp_context. GEREKLİ: OTP'nin istendiği bağlam. otp_context aşağıdakilerden yalnızca biri olabilir:
association

object (Empty)

OTP, ilişkilendirme/yeniden ilişkilendirme bağlamında talep ediliyor.

mandateCreation

object (Empty)

Talimat oluşturma bağlamında OTP isteniyor.

associationWithMandateCreation

object (Empty)

Talimat oluşturma ile birlikte OTP'nin ilişkilendirme için istekte bulunması.

Boş

Bu türde alan yok.

Boole'ların ve numaralandırmaların genellikle ekstra verilerle genişletilmesi gerektiğinden bu nesne, genişletilebilirlik için kullanılır. Uygulayıcı, varlığı belirlemek için bunu kullanır. Bu temsili numaralandırma, gelecekteki sürümlerdeki verileri içerecek şekilde genişletilebilir.

Empty için JSON gösterimi boş JSON nesnesi {}.

SendOtpResultCode

OTP isteği gönderme için sonuç kodları.

Sıralamalar
UNKNOWN_RESULT Bu varsayılan değeri hiçbir zaman ayarlama!
SUCCESS Entegre eden OTP.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT Telefon numarası, associationId tarafından tanımlanan hesapla ilişkilendirilmemiş.
UNKNOWN_PHONE_NUMBER Telefon numarası hiçbir hesapla ilişkilendirilmemiş. Bu değer, associationId ayarlanmadığında kullanılır.
MESSAGE_UNABLE_TO_BE_SENT Entegratör, bir nedenden dolayı OTP'yi gönderemedi. Bu geçici bir hatadır ve bu aramanın yeniden denenmesine neden olabilir.
INVALID_PHONE_NUMBER Telefon numarası biçimi yanlıştı.
NOT_ELIGIBLE Kullanıcının hesabı bu hizmet için uygun değil.
OTP_LIMIT_REACHED Kullanıcı çok fazla OTP istedi veya doğrulamaya çalıştı.
ACCOUNT_CLOSED

Kullanıcının, entegre ediciyle ilişkili olan hesabı kapatıldı. Bu ad, yalnızca kullanıcıyı tanımlamak için "associationId" kullanılırken kullanılmalıdır.

Bu değerin döndürülmesi, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, ilişkilendirme akışına tekrar giderek yeni bir araç eklemek zorunda kalacaktır.

ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER

Kullanıcının entegratörle hesabı kapatıldı. Bu kullanıcının hesabın ele geçirildiğinden şüpheleniliyor. Bu ad, yalnızca kullanıcıyı tanımlamak için "associationId" kullanılırken kullanılmalıdır.

Bu değerin döndürülmesi, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, ilişkilendirme akışına tekrar giderek yeni bir araç eklemek zorunda kalacaktır.

ACCOUNT_CLOSED_FRAUD

Kullanıcının entegratörle paylaştığı hesap, sahtekarlık nedeniyle kapatıldı. Bu ad, yalnızca kullanıcıyı tanımlamak için "associationId" kullanılırken kullanılmalıdır.

Bu değerin döndürülmesi, kullanıcının aracının Google ile kapatılmasına neden olur. Kullanıcı, ilişkilendirme akışına tekrar giderek yeni bir araç eklemek zorunda kalacaktır.