Method: sendOtp

تطلب من جهة الدمج إرسال كلمة مرور صالحة لمرة واحدة (OTP) إلى رقم الهاتف.

وإذا أعادت شركة الدمج المبلغ SUCCESS، تتوقّع Google إرسال رسالة SMS إلى رقم الهاتف.

لا توفّر Google سوى accountPhoneNumber عندما يربط المستخدم حسابه بحساب Google في البداية. وبعد ذلك، سيتم إرسال 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)

REQUIRED: نتيجة هذا الطلب

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) للارتباط وإنشاء التفويض.

ما مِن لاعبين

لا يحتوي هذا النوع على أي حقول.

يُستخدم هذا الكائن لقابلية التوسّع لأنه غالبًا ما تحتاج القيم المنطقية والتعدادات إلى توسيعها ببيانات إضافية. ويستخدمه القائم بالتنفيذ لتحديد الحضور. ويمكن توسيع التعداد الذي يمثله ليتضمن البيانات في الإصدارات المستقبلية.

تمثيل JSON لـ Empty هو كائن JSON {} فارغ.

SendOtpResultCode

رموز النتائج لطلب إرسال كلمة المرور لمرة واحدة (OTP).

عمليات التعداد
UNKNOWN_RESULT لا تضبط هذه القيمة التلقائية على الإطلاق.
SUCCESS أرسل مسؤول عملية الدمج كلمة المرور لمرة واحدة.
PHONE_NUMBER_NOT_ASSOCIATED_WITH_ACCOUNT رقم الهاتف غير مرتبط بالحساب المحدّد من خلال associationId.
UNKNOWN_PHONE_NUMBER رقم الهاتف غير مرتبط بأي حساب. ويتم استخدام هذه السمة عندما لا يتم ضبط السمة associationId.
MESSAGE_UNABLE_TO_BE_SENT تعذّر على الشركة المدمَجة إرسال كلمة المرور لمرة واحدة لسبب من الأسباب. هذا خطأ عابر، وقد يؤدي إلى إعادة محاولة إجراء هذه المكالمة.
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. سيضطر المستخدم إلى إضافة أداة جديدة من خلال إجراء عملية الربط مرة أخرى.