Method: associateAccount

ربط حساب العميل بالجهة المسؤولة عن معالجة المعاملات بأداة Google التي تتم إضافتها

يحدث ربط الحساب بعد أن صادقت جهة الدمج على المستخدم. يحدث الربط من خلال طلب من خادم إلى خادم يحتوي على requestId لتدفق المصادقة المرتبط (authenticationRequestId) وassociationId وgooglePaymentToken (GPT). على الجهة المسؤولة عن معالجة المعاملات ربط associationId وgooglePaymentToken بحساب العميل للمصادقة. يتم استخدام GPT لبدء الدفعات. يتم استخدام associationId أثناء طلبات إعادة المصادقة لتحديد الحساب لمصادقته.

إذا أرسلت Google الرمز associationId أو googlePaymentToken الذي سبق ورصدته شركة الدمج خلال عملية ربط مختلفة، ستعرض الشركة رسالة خطأ.

إذا واجهت نقطة النهاية خطأً أثناء معالجة الطلب، يجب أن يكون نص الاستجابة من نقطة النهاية هذه من النوع ErrorResponse.

إليك مثال على الطلب:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 0,
      "revision": 0
    },
    "requestId": "cmVxdWVzdDE",
    "requestTimestamp": "1481899949606"
 },
 "googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ__",
 "authenticationRequestId": "bnAxdWTydDX==",
 "associationId": "LmddbXBsZSByZWZlcmVuY2UgdG9rZW4gdmFsdWU_",
 "provideUserInformation": true
}

يبدو الرد كمثال:


  {
  "responseHeader": {
    "responseTimestamp": "1481899949611"
  },
  "paymentIntegratorAssociateAccountId": "xx77df88934hfd",
  "accountId": "1234-5678-91",
  "accountNickname": "***-91",
  "tokenExpirationTime": "0",
  "userInformation": {
    "name": "Example Customer",
    "addressLine": ["123 Main St"],
    "localityName": "Springfield",
    "administrativeAreaName": "CO",
    "postalCodeNumber": "80309",
    "countryCode": "US"
  },
  "result": "SUCCESS"
}

طلب HTTP

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

نص الطلب

يحتوي نص الطلب على بيانات بالبنية التالية:

تمثيل JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "provideUserInformation": boolean,
  "googlePaymentToken": string,
  "associationId": string,

  // Union field account_verification can be only one of the following:
  "authenticationRequestId": string,
  "otpVerification": {
    object (OtpVerification)
  }
  // End of list of possible types for union field account_verification.
}
الحقول
requestHeader

object (RequestHeader)

مطلوب: عنوان مشترك لجميع الطلبات.

provideUserInformation

boolean

مطلوب: صحيح إذا أردنا من جهة الدمج تقديم العنوان المرتبط بهذا الحساب.

googlePaymentToken

string

مطلوب: الرمز المميّز الذي ستستخدمه Google لبدء عمليات الشراء مع الجهة المسؤولة عن معالجة المعاملات.

وهي سلسلة لا يزيد طولها عن 100 حرف.

associationId

string

مطلوب: معرّف عملية الربط هذه. تُنشئ Google هذا المعرّف ويتم إرساله أثناء مسارات إعادة المصادقة لتحديد الحساب الذي يجب مصادقته.

وهي سلسلة لا يزيد طولها عن 100 حرف.

حقل الاتحاد account_verification.

يمكن أن يكون account_verification واحدًا فقط مما يلي:

authenticationRequestId

string

اختياري: requestId لطلب المصادقة الذي سبق هذه المكالمة. أنشأت Google هذا المعرّف أثناء مسار المصادقة. ولا يتوفّر ذلك إلا إذا خضع المستخدم لمصادقة تطبيقات Android أو مصادقة الويب أو طريقة مصادقة غير متزامنة تستخدم authenticationResultNotification.

otpVerification

object (OtpVerification)

اختياري: البيانات اللازمة للتحقّق من كلمة المرور لمرة واحدة التي تم إنشاؤها من sendOtp. ولا يتوفّر ذلك إلا إذا اتّخذ المستخدم مسار sendOtp.

نص الاستجابة

عنصر الاستجابة لطريقة الحساب المرتبطة

إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:

تمثيل JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "paymentIntegratorAssociateAccountId": string,
  "tokenExpirationTime": string,
  "accountId": string,
  "userMessage": string,
  "userInformation": {
    object (UserInformation)
  },
  "result": enum (AssociateAccountResultCode),

  // Union field account_names can be only one of the following:
  "accountNickname": string,
  "fullAccountNickname": string
  // End of list of possible types for union field account_names.
}
الحقول
responseHeader

object (ResponseHeader)

مطلوب: عنوان مشترك لجميع الردود.

paymentIntegratorAssociateAccountId

string

مطلوب: هذا المعرّف خاص بالشركة المدمَجة ويتمّ إنشاؤه بواسطة الشركة المدمَجة. يتم استخدامه لأغراض تصحيح الأخطاء فقط من أجل تحديد هذا الاستدعاء. هو المعرّف الذي تعرف شركة الدمج هذه المكالمة من خلاله.

tokenExpirationTime

string (int64 format)

اختياري: بالملي ثانية منذ تاريخ انتهاء صلاحية الرمز المميّز استخدِم 0 للإشارة إلى عدم انتهاء صلاحية الرمز المميّز.

accountId

string

مطلوب: رقم تعريف الحساب لدى المستخدم مع شركة الدمج. تُستخدَم هذه الخطوة لتحديد المخاطر التي تهدّد Google عند إعادة استخدام الحسابات والعلاقات مع الحسابات الأخرى وموظّفي دعم عمليات العملاء في Google لمساعدة العملاء في تشخيص المشاكل. يجب أن يتمكّن المستخدم من التعرّف على هذا المعرّف (على سبيل المثال، يعرف المستخدم هذا المعرّف لأنّه يظهر في كشف الحساب أو يظهر على الموقع الإلكتروني بعد تسجيل الدخول إلى الحساب).

ويجب أن تكون هذه القيمة غير قابلة للتغيير طوال عمر الحساب.

userMessage
(deprecated)

string

تم إيقافها: وصف النتيجة التي سيتم عرضها للمستخدم إذا لم تكن النتيجة SUCCESS.

userInformation

object (UserInformation)

مطلوبة: معلومات المستخدم التي تعرفها شركة الدمج وتشاركها مع Google حول هذا العميل يتم استخدامه لمعلومات المخاطرة ومعالجة التعبئة التلقائية.

result

enum (AssociateAccountResultCode)

مطلوب: نتيجة عملية الربط هذه.

حقل الاتحاد account_names.

يمكن أن يكون account_names واحدًا فقط مما يلي:

accountNickname

string

OPTIONAL: سلسلة يعرف المستخدم من خلالها هذا الحساب لأغراض العرض. هذه لاحقة من لقب الحساب. على سبيل المثال، الأرقام الأربعة الأخيرة من رقم الهاتف. ستشير Google في واجهة المستخدم إلى أنّ هذه ليست سوى لاحقة من اللقب.

وسيتمّ عرض هذه القيمة في واجهات المستخدم، مثل مسار الشراء، ليتمكّن المستخدم من التفريق بين طرق الدفع المختلفة.

fullAccountNickname

string

OPTIONAL: سلسلة يعرف المستخدم من خلالها هذا الحساب لأغراض العرض. على عكس accountNickname، هذا هو اللقب الكامل للحساب. على سبيل المثال، 56565-56501 لرقم هاتف أو sally@sample-email.com لهوية بريد إلكتروني.

وسيتمّ عرض هذه القيمة في واجهات المستخدم، مثل مسار الشراء، ليتمكّن المستخدم من التفريق بين طرق الدفع المختلفة.

UserInformation

هيكل يحتوي على معلومات حول مستخدم.

تمثيل JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string,
  "phone": string,
  "emailAddress": string
}
الحقول
name

string

اختياري: الاسم الكامل للعميل

addressLine[]

string

OPTIONAL: يحتوي على نص العنوان غير المنظَّم.

localityName

string

اختياري: يستخدم هذا المصطلح مصطلحًا غامضًا، ولكنه يشير بشكل عام إلى جزء من المدينة أو البلدة من العنوان. في مناطق العالم التي يكون فيها المناطق المحلية غير محددة بشكل جيد أو لا تتناسب مع هذه البنية بشكل جيد (على سبيل المثال، اليابان والصين)، اترك LocalName فارغًا واستخدم addressLine.

أمثلة: مدينة في الولايات المتحدة، بلدية تكنولوجيا المعلومات، بلدة بريد المملكة المتحدة.

administrativeAreaName

string

OPTIONAL: تقسيم فرعي إداري من المستوى الأعلى لهذا البلد" أمثلة: ولاية أمريكية، ومنطقة تكنولوجيا المعلومات، ومقاطعة CN، ومحافظة اليابان".

postalCodeNumber

string

OPTIONAL: على الرغم من الاسم، إنّ قيم mailCodeNumber غالبًا ما تكون أبجدية رقمية. أمثلة: "94043"، "SW1W"، "SW1W 9TQ".

countryCode

string

اختياري: رمز بلد عنوان العميل، ومن المتوقّع أن يكون وفقًا لمعيار ISO-3166-1 Alpha-2.

phone

string

اختياري: رقم هاتف العميل.

emailAddress

string

اختياري: عنوان البريد الإلكتروني الخاص بالعميل.

AssociateAccountResultCode

رموز النتائج للحساب المرتبط.

عمليات التعداد
UNKNOWN_RESULT لا تضبط هذه القيمة التلقائية على الإطلاق.
SUCCESS تم الربط بنجاح.
USER_AUTHENTICATION_FAILED وعلى الرغم من إرجاع حزمة مصادقة الحساب، تعذّرت مصادقة المستخدم.
NOT_ELIGIBLE حساب المستخدم غير مؤهّل لهذه الخدمة.
OTP_NOT_MATCHED لم تتطابق كلمة المرور لمرة واحدة مع ما أرسله مسؤول الدمج.
OTP_ALREADY_USED سبق أن تم استخدام كلمة المرور لمرة واحدة (OTP).
OTP_LIMIT_REACHED طلب المستخدم أو حاول التحقّق من عدد كبير جدًا من كلمات المرور لمرة واحدة (OTP).
OTP_EXPIRED انتهت صلاحية كلمة المرور لمرة واحدة.