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)

اختياري: البيانات اللازمة لإثبات صحة كلمة المرور لمرة واحدة (OTP) التي تم إنشاؤها من 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، وذلك بهدف مساعدة العملاء في تشخيص المشاكل. ويجب أن يكون هذا المعرّف مفهومًا للمستخدم (على سبيل المثال، يعرف المستخدم هذا المعرّف لأنّه يظهر في كشف حسابه أو يظهر على الموقع الإلكتروني بعد تسجيل الدخول إلى الحساب).

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

userMessage
(deprecated)

string

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

userInformation

object (UserInformation)

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

result

enum (AssociateAccountResultCode)

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

حقل الاتحاد account_names

يمكن أن تكون السمة "account_names" واحدة فقط مما يلي:

accountNickname

string

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

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

fullAccountNickname

string

اختياري: سلسلة يعرف المستخدم من خلالها هذا الحساب لأغراض العرض. على عكس 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

اختياري: يؤدي ذلك إلى الاحتفاظ بنص غير منظَّم.

localityName

string

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

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

administrativeAreaName

string

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

postalCodeNumber

string

اختياري: على الرغم من الاسم، غالبًا ما تكون قيم الرمز البريدي أحرف أبجدية رقمية. أمثلة: "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) مع تلك التي أرسلتها شركة الدمج.
OTP_ALREADY_USED سبق أن تم استخدام كلمة المرور لمرة واحدة (OTP).
OTP_LIMIT_REACHED طلب المستخدم أو حاول التحقق من كلمات المرور لمرة واحدة (OTP) أكثر من اللازم.
OTP_EXPIRED انتهت صلاحية كلمة المرور لمرة واحدة (OTP).