Method: captureResultNotification

يمكنك إرسال إشعار إلى Google بشأن عملية التقاط بعد إجراء طلب طريقة capture أو asynchronousCapture.

تصبح قيمة captureResult معلّقة للسمة captureRequestId هذه، لذا لا يمكن تغيير قيمتها من خلال استدعاء لاحق لهذه الطريقة.

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

قد تكون الردود على طلب البحث هذا فارغة إذا كانت هذه الطريقة لا تعرض HTTP 200. نص الاستجابة فارغ في الحالات التي يمكن فيها استخدام ErrorResponse مع وصف واضح لمساعدة المهاجم في التعرّف على معرّف حساب عملية تكامل الدفع بالنسبة إلى الشركاء الآخرين. في هذه الحالات، في حال عدم تطابق مفتاح التوقيع، أو عدم العثور على معرِّف وحدة تكامل الدفعات، أو عدم أن مفتاح التشفير معروف، ستعرض هذه الطريقة HTTP 404 مع نص فارغ. إذا تم التحقّق من توقيع الطلب، سيتم عرض معلومات إضافية حول الخطأ في نص الاستجابة.

مثال على طلب يبدو:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "KcgwSKrV76eVNDUbsZ4UA3",
    "requestTimestamp": "1481852928293"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA_USD",
  "captureRequestId": "awNaC510cefae3IJdNEvW2",
  "captureResult": {
    "captureResultCode": "SUCCESS"
  }
}

مثال على ردّ:


{
  "responseHeader": {
    "responseTimestamp": "1481852928324"
  },
  "result": "SUCCESS"
}

طلب HTTP

POST https://vgw.googleapis.com/secure-serving/gsp/v1/captureResultNotification/:PIAID

نص الطلب

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

تمثيل JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "captureRequestId": string,
  "captureResult": {
    object (CaptureResult)
  },
  "paymentIntegratorTransactionId": string
}
الحقول
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

مطلوبة: معرّف حساب عملية تكامل الدفعات الذي تم إجراء عملية الالتقاط فيه

captureRequestId

string

مطلوبة: معرّف فريد لهذه المعاملة هذا هو requestId الذي تم إنشاؤه من قِبل Google أثناء المكالمة capture أو asynchronousCapture التي يرتبط بها هذا الطلب.

سلسلة البيانات هذه لا يزيد عدد أحرفها عن 100 حرف وتحتوي على الأحرف "a-z" و"A-Z" و"0-9" و":" و"-" و "_".

captureResult

object (CaptureResult)

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

paymentIntegratorTransactionId

string

اختياري: يكون هذا المعرّف مخصّصًا لعملية التكامل، ويتم إنشاؤه من خلال عملية الدمج. هذا هو المعرّف الذي يعرفه المسؤول عن عملية الدمج هذه المعاملة.

ولتسهيل الأمر، يتم تضمين هذا المعرّف في تفاصيل الحوالة المالية.

نص الاستجابة

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

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

تمثيل JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (CaptureResultNotificationResultCode)
}
الحقول
responseHeader

object (ResponseHeader)

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

result

enum (CaptureResultNotificationResultCode)

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

نتيجة الالتقاط

معلومات حول النتيجة النهائية لالتقاط صورة

تمثيل JSON
{
  "captureResultCode": enum (CaptureResultCode),
  "rawResult": {
    object (RawResult)
  },

  // Union field FailureDetail can be only one of the following:
  "transactionMaxLimit": string,
  "transactionMinLimit": string,
  "currentBalance": string
  // End of list of possible types for union field FailureDetail.
}
الحقول
captureResultCode

enum (CaptureResultCode)

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

rawResult

object (RawResult)

اختياري: النتيجة الأولية لهذا الالتقاط. يُستخدم هذا الخيار للمساعدة في تقديم معلومات عن محرك البحث والإحصاءات من Google. في حالات ربط الرمز، يتم فقدان البيانات أحيانًا. ومن الممكن أن يختار صاحب عملية التكامل منح Google رمزًا أوليًا. على سبيل المثال، قد تستخدم مدخل بطاقة الائتمان (المسؤول عن عملية الدمج) هذا الحقل لإعلام Google برمز الرفض الدقيق الذي تم تلقّيه من شبكة VISA. في هذه الحالة، ستكون scope هي "Visa" وسيكون rawCode هو أي قيمة تعرضها شبكة VISA.

هذه القيمة مطلوبة إذا لم تكن قيمة result SUCCESS.

حقل الاتحاد FailureDetail.

لا يمكن أن يكون FailureDetail سوى واحد مما يلي:

transactionMaxLimit

string (Int64Value format)

اختياري: إذا كانت قيمة captureResultCode هي CHARGE_EXCEEDS_TRANSACTION_LIMIT، تكون هذه هي قيمة الحدّ الأقصى المسموح به للمعاملات. ويُستخدَم هذا الإذن في تحليل البيانات المنظَّمة الموجَّهة للمستخدمين وفي معدّل الرفض.

هذا المبلغ هو ميكرو من نفس قيمة currencyCode كاستدعاء طريقة capture أو asynchronousCapture الأصلي.

transactionMinLimit

string (Int64Value format)

اختياري: إذا كانت قيمة captureResultCode هي CHARGE_UNDER_TRANSACTION_LIMIT، تكون هذه هي قيمة الحدّ الأدنى المسموح به للمعاملات. ويُستخدَم هذا الإذن في تحليل البيانات المنظَّمة الموجَّهة للمستخدمين وفي معدّل الرفض.

هذا المبلغ هو ميكرو من نفس قيمة currencyCode كاستدعاء طريقة capture أو asynchronousCapture الأصلي.

currentBalance

string (Int64Value format)

اختياري: إذا كانت النتيجة INSUFFICIENT_FUNDS، يكون هذا هو الرصيد الحالي المتوفّر في حساب المستخدم (بوحدات المايكرو). يُستخدَم هذا الإذن في الرسائل المُنظَّمة الموجَّهة للمستخدمين.

يجب أن تكون هذه القيمة بالعملة نفسها المستخدمة في currencyCode عند الطلب.

رمز نتيجة البحث

رموز النتائج الخاصة بعملية التقاط.

عمليات التعداد
UNKNOWN_RESULT عدم ضبط هذه القيمة التلقائية مطلقًا
SUCCESS تم الالتقاط بنجاح.
CHARGE_UNDER_TRANSACTION_LIMIT لا يتطابق مبلغ الالتقاط المطلوب مع الحد الأدنى لمبلغ كل عملية تكامل. في حال استخدام هذا الرمز، املأ الحقل transactionMinLimit بالحد الأدنى لمبلغ المعاملة لأغراض المراسلة.
CHARGE_EXCEEDS_TRANSACTION_LIMIT يتجاوز مبلغ الالتقاط المطلوب الحدّ الأقصى لكل عملية دمج. إذا تم استخدام هذا الرمز، املأ الحقل transactionMaxLimit بالحد الأقصى للمعاملات لأغراض مراسلة المستخدم.
CHARGE_EXCEEDS_DAILY_LIMIT لا يمكن استخدام حساب المستخدم في عمليات الشراء الآن لأنه تجاوز الحد اليومي المسموح به.
CHARGE_EXCEEDS_MONTHLY_LIMIT لا يمكن حاليًا استخدام حساب المستخدم لإجراء عمليات شراء لأنّه تجاوز الحد الشهري المسموح به.
INSUFFICIENT_FUNDS لا يحتوي هذا الحساب على مبالغ كافية لضمان هذا التسجيل.
SUSPECTED_FRAUD لدى المسؤول عن عملية الدمج هذه الشك بأنّ هذه المعاملة احتيالية.
ACCOUNT_CLOSED تم إغلاق حساب المستخدم المرتبط بعملية التكامل. وستؤدّي قيمة الإرجاع هذه إلى إغلاق أداة المستخدِم مع Google. سيُفرض على المستخدم إضافة وسيلة جديدة.
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER تم إغلاق حساب المستخدم مع إحدى عمليات الدمج، ويُحتمل أنه تم الاستيلاء على الحساب. وستؤدّي قيمة الإرجاع هذه إلى إغلاق أداة المستخدِم مع Google. سيُفرض على المستخدم إضافة وسيلة جديدة.
ACCOUNT_CLOSED_FRAUD تم إغلاق حساب المستخدم المرتبط بعملية الدمج بسبب الاحتيال. وستؤدّي قيمة الإرجاع هذه إلى إغلاق أداة المستخدِم مع Google. سيُفرض على المستخدم إضافة وسيلة جديدة.
ACCOUNT_ON_HOLD حساب المستخدم معلّق.
OTP_NOT_MATCHED لم تُطابق كلمة المرور لمرة واحدة (OTP) ما تم إرساله في عملية الدمج.
OTP_ALREADY_USED سبق أن تم استخدام كلمة المرور لمرة واحدة.
CAPTURE_REQUEST_EXPIRED استغرقت عملية الدمج وقتًا طويلاً جدًا للحصول على أموال المستخدم. ستتعامل Google مع هذا الرفض على أنه حالة نهائية، لذا يجب أن يتأكّد المسؤول عن عملية الدمج من عدم الحصول على أموال المستخدم في وقت لاحق أو على أن يتم ردّ أموال المستخدم تلقائيًا في حال نجحت عملية الشراء.
INVALID_PIN قدّم المستخدم رقم تعريف شخصي غير صالح.
OS_LOCK_FAILED تتطلّب عملية الدفع هذه تحدّي قفل نظام التشغيل ولم يتمكّن المستخدم من فتح قفل الجهاز.
PIN_ENTRY_ATTEMPTS_EXHAUSTED يتطلّب مسار الدفع هذا إدخال رقم التعريف الشخصي للمستخدم. تعذّر على المستخدم إدخال رقم التعريف الشخصي مرات كافية ونفدت منه عمليات إعادة المحاولة.
USER_EXITED_PAYMENT_FLOW ألغى المستخدم محاولة الدفع بأكملها (إما في قفل نظام التشغيل أو على شاشة إدخال رقم التعريف الشخصي).
MONTHLY_FREQUENCY_LIMIT_EXCEEDED لا يمكن استخدام حساب المستخدم لإجراء عمليات شراء في الوقت الحالي، نظرًا لأنه تجاوز حد محاولات المعاملات الشهرية.
DECLINED_BY_ISSUER

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

والأهم من ذلك، أنّ رمز الرفض هذا هو رفض كبير. ويُعد هذا انخفاضًا دائمًا بالنسبة إلى Google. إذا أرجع المسؤول عن عملية الدمج هذه المشكلة، سيتمكّن المستخدم من تتبُّع معنى رمز جهة الإصدار، وردّ الأموال إلى المستخدم إذا تبيّن أنّ الرمز هو SUCCESS.

إذا تم استخدام رمز الرفض هذا لرمز الرفض الأساسي نفسه لأكثر من عدد معيّن من الأيام، ستتعامل Google معه كخطأ وتتتبّعه وفقًا لأي غرامات تعاقدية حول إصلاح الأخطاء.

نتائج البحث الأولية

عرض نتيجة غير منسقة

تمثيل JSON
{
  "scope": string,
  "rawCode": string
}
الحقول
scope

string

اختياري: يمكن أن يكون نطاق الرمز الأولي فارغًا.

rawCode

string

مطلوبة: هي رمز أوليّ من عملية الدمج أو الأنظمة الفرعية داخلها.

رمز الالتقاطنتيجة النتيجة

رموز النتائج لطريقة captureResultNotification.

عمليات التعداد
UNKNOWN_RESULT عدم ضبط هذه القيمة التلقائية مطلقًا
SUCCESS تمت معالجة إشعار نتيجة الالتقاط بنجاح.