- طلب HTTP
- نص الطلب
- نص الاستجابة
- MandateDetails
- MandateWithNotificationDetails
- CaptureContext
- CaptureResultCode
بدء عملية تحويل الأموال بين حساب العميل الذي يتم الاحتفاظ به لدى Google والجهة المسؤولة عن معالجة المعاملات. إنّ الجمع بين requestId
في العنوان وpaymentIntegratorAccountId
هو مفتاح الهوية ويحدّد هذه المعاملة بشكلٍ فريد. تعمل جميع التغييرات في هذه المعاملة (عمليات ردّ الأموال) على تعبئة قيمة requestId
في الحقل captureRequestId
.
إذا واجهت نقطة النهاية خطأً أثناء معالجة الطلب، يجب أن يكون نص الاستجابة من نقطة النهاية هذه من النوع
.ErrorResponse
يظهر مثال على الطلب على النحو التالي:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 0,
"revision": 0
},
"requestId": "bWVyY2hhbnQgdHJhbnNhY3Rpb24gaWQ",
"requestTimestamp": "1502220196077"
},
"paymentIntegratorAccountId": "InvisiCashUSA_USD",
"googlePaymentToken": "ZXhhbXBsZSB1bmlxdWUgcGF5bWVudCB0b2tlbiB2YWx1ZQ",
"transactionDescription": "Google - Music",
"currencyCode": "INR",
"amount": "728000000",
"captureContext": {}
}
يظهر مثال على الرد على النحو التالي:
{
"responseHeader": {
"responseTimestamp": "1481900013178"
},
"result": "SUCCESS",
"paymentIntegratorTransactionId": "aW50ZWdyYXRvciB0cmFuc2FjdGlvbiBpZA"
}
طلب HTTP
POST https://www.integratorhost.example.com/v1/capture
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
تمثيل JSON |
---|
{ "requestHeader": { object ( |
الحقول | |
---|---|
requestHeader |
مطلوب: العنوان المشترك لجميع الطلبات. |
paymentIntegratorAccountId |
مطلوب: هذا هو معرّف حساب تكامل عمليات الدفع الذي يحدّد القيود التعاقدية المتعلّقة بهذه المعاملة. |
transactionDescription |
مطلوب: وصف المعاملة التي يمكن إدراجها في كشف حساب العميل. تمت ترجمته إلى userLocale في |
currencyCode |
مطلوب: رمز العملة المكوّن من 3 أحرف بتنسيق ISO 4217 |
amount |
مطلوب: مبلغ الشراء بالميكرو لوحدة العملة. |
captureContext |
مطلوب: سياق حول عملية الالتقاط هذه. |
حقل الاتحاد fopDetails مطلوب: تفاصيل طريقة الدفع لمعاملة Capture هذه. يمكن أن تكون السمة "fopDetails " واحدة فقط مما يلي: |
|
googlePaymentToken |
رمز مميز ستستخدمه كلتا الشركتَين لتحديد الحساب الخاص بعمليات الشراء التي تتم بين الشركتَين. |
mandateDetails |
تفاصيل الدفع الخاصة بالتفويضات. |
mandateWithNotificationDetails |
تفاصيل الدفع الخاصة بالتفويضات، حيث يكون |
حقل الاتحاد يمكن أن تكون السمة " |
|
authenticationRequestId |
اختياري: في حال ظهور هذه الرسالة، يعني ذلك أنّه تمت مصادقة المستخدم قبل هذه المكالمة مباشرةً، أو تمت مصادقته عند إعداد جدول دفع تلقائي. |
otpVerification |
اختياري: البيانات اللازمة لإثبات صحة كلمة المرور لمرة واحدة (OTP) التي تم إنشاؤها من |
نص الاستجابة
كائن استجابة لطريقة الالتقاط.
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
تمثيل JSON |
---|
{ "responseHeader": { object ( |
الحقول | |
---|---|
responseHeader |
مطلوب: عنوان مشترك لجميع الردود. |
paymentIntegratorTransactionId |
اختياري: هذا المعرّف خاص بجهة عملية الدمج ويتم إنشاؤه من خلال شركة الدمج. تشير هذه السمة إلى المعرّف الذي تستخدمه شركة الدمج هذه للمعاملة. لتسهيل الأمر، يتم تضمين هذا المعرّف في تفاصيل الحوالات المالية. |
userMessage |
متوقفة: وصف النتيجة التي سيتم عرضها للمستخدم إذا لم تكن النتيجة |
result |
مطلوب: نتيجة هذا التسجيل. |
rawResult |
اختياري: النتيجة الأولية لهذا الالتقاط. يُستخدم للمساعدة في إبلاغ محرك المخاطر في Google والإحصاءات. في حالات رفض تعيين الرموز، تُفقد البيانات أحيانًا. ويمكن أن تختار الشركة التي تُجري عملية الدمج منح Google رمزًا برمجيًا أوّليًا. على سبيل المثال، قد يستخدم مدخل بطاقة الائتمان (الشركة المتعهّدة) هذا الحقل لإبلاغ Google برمز الرفض الدقيق الذي تم استلامه من شبكة VISA. في هذه الحالة، سيكون عنوان هذه القيمة مطلوبة إذا لم تكن قيمة |
transactionLimit |
اختياري: إذا كانت النتيجة يجب أن يكون هذا الحد نسبيًا لـ |
currentBalance |
اختياري: إذا كانت النتيجة يجب أن تكون هذه القيمة بالعملة نفسها المستخدَمة في |
MandateDetails
تفاصيل عن التفويض المطلوب الحصول عليه.
تمثيل JSON |
---|
{ "mandateId": string } |
الحقول | |
---|---|
mandateId |
مطلوب: رقم تعريف التفويض الذي أنشأته Google والذي تم إرساله أثناء مكالمة |
MandateWithNotificationDetails
تفاصيل عن التفويض الذي يمكن الحصول عليه، بالإضافة إلى تفاصيل الإشعارات المطلوبة.
تمثيل JSON |
---|
{ "mandateId": string, "upcomingTransactionNotificationId": string } |
الحقول | |
---|---|
mandateId |
مطلوب: رقم تعريف التفويض الذي أنشأته Google والذي تم إرساله أثناء مكالمة |
upcomingTransactionNotificationId |
مطلوب: الرقم |
CaptureContext
يوفّر هذا الكائن سياقًا حول كيفية طلب الالتقاط.
تمثيل JSON |
---|
{ "userIpAddress": string } |
الحقول | |
---|---|
userIpAddress |
اختياري: هذا هو عنوان IP لجهاز المستخدم إذا أجرى مستخدم عملية الشراء في الجلسة. إذا لم يكن المستخدم في الجلسة، سيصبح هذا الحقل فارغًا. إذا لم ينص العقد المحدد على الحاجة إلى هذا الحقل، فسيكون فارغًا دائمًا. |
CaptureResultCode
رموز نتائج الالتقاط
عمليات التعداد | |
---|---|
UNKNOWN_RESULT |
لا تضبط هذه القيمة التلقائية مطلقًا. |
SUCCESS |
الحصول على البضائع وتوصيلها بنجاح |
CHARGE_EXCEEDS_TRANSACTION_LIMIT |
يتجاوز amount في طلب الالتقاط هذا الحد الأقصى المسموح به لكل معاملة. في حال استخدام هذا الرمز، املأ حقل transactionlimited لأغراض مراسلة المستخدمين. |
CHARGE_EXCEEDS_DAILY_LIMIT |
لا يمكن استخدام هذا الحساب لإجراء عمليات شراء الآن لأنّه تجاوز حدود الميزانية اليومية. |
CHARGE_EXCEEDS_MONTHLY_LIMIT |
لا يمكن استخدام هذا الحساب لإجراء عمليات شراء الآن لأنّه تجاوز حدوده الشهرية. |
CHARGE_UNDER_LIMIT |
لا يستوفي amount في طلب الالتقاط هذا الحد الأدنى لمبلغ المعاملة. |
INSUFFICIENT_FUNDS |
لا يحتوي هذا الحساب على أموال كافية لضمان الحصول على هذا المبلغ. |
ACCOUNT_DOES_NOT_SUPPORT_CURRENCY |
لا يتيح هذا الحساب استخدام العملة المطلوبة. |
ACCOUNT_CLOSED |
تم إغلاق الحساب الخاص بالمستخدم في عملية الدمج. وسيؤدي عرض هذه القيمة إلى إغلاق أداة المستخدم مع Google. سيُجبر المستخدم على إضافة أداة جديدة من خلال الانتقال من خلال عملية الربط مرة أخرى. |
ACCOUNT_CLOSED_ACCOUNT_TAKEN_OVER |
تم إغلاق حساب المستخدم مع الشركة المتعهّدة، وعملية الاستحواذ على الحساب مشبوهة. وسيؤدي عرض هذه القيمة إلى إغلاق أداة المستخدم مع Google. سيُجبر المستخدم على إضافة أداة جديدة من خلال الانتقال من خلال عملية الربط مرة أخرى. |
ACCOUNT_ON_HOLD |
الحساب معلّق. |
ACCOUNT_CLOSED_FRAUD |
تم إغلاق حساب المستخدم التابع لشركة الدمج بسبب عملية احتيال. وسيؤدي عرض هذه القيمة إلى إغلاق أداة المستخدم مع Google. سيُجبر المستخدم على إضافة أداة جديدة من خلال الانتقال من خلال عملية الربط مرة أخرى. |
GOOGLE_PAYMENT_TOKEN_INVALIDATED_BY_USER |
الحساب نشط، ولكن تم إبطال صلاحية علامة GPT من قِبل المستخدم من جهة عملية الدمج. وسيؤدي عرض هذه القيمة إلى إغلاق أداة المستخدم مع Google. سيُجبر المستخدم على إضافة أداة جديدة من خلال الانتقال من خلال عملية الربط مرة أخرى. |
TOKEN_REFRESH_REQUIRED |
يتطلب إرجاع هذا المستخدم إجراء عملية إعادة تحميل. |
OTP_NOT_MATCHED |
لم تتطابق كلمة المرور لمرة واحدة (OTP) مع تلك التي أرسلتها شركة الدمج. |
OTP_ALREADY_USED |
سبق أن تم استخدام كلمة المرور لمرة واحدة (OTP). |
RISK_DECLINED |
تم رفض المعاملة بسبب التحقّق من المخاطر من جانب الشركة المتعهّدة. ويمثل هذا إخفاقًا نهائيًا في تسديد هذه الدفعة، إلا أنه لا يؤدي إلى إغلاق وسيلة المستخدم في Google. |
NO_GOOD_FUNDING_SOURCE_AVAILABLE |
لا يمتلك المستخدم أي مصدر تمويل عامل تم إعداده في حسابه يمكنه دفع مقابل المعاملة. |
FUNDING_SOURCE_UNAVAILABLE |
إنّ جهة إصدار الأموال الأساسية أو مصدر الأموال غير متاحة، ولن تنجح عملية الدفع الحالية في حال إعادة المحاولة. ستعيد Google محاولة إجراء عمليات الدفع عندما يعرض الشريك رمز الاستجابة 4xx أو 5xx. نتيجةً لذلك، على الشركاء عادةً عرض أحد رموز الاستجابة هذه إذا تمت إعادة محاولة إجراء عملية الدفع نفسها بنجاح عند توفّر مصدر الأموال الأساسي مجددًا. ولكن إذا كانت هناك أسباب تقنية وراء إخفاق محاولة Google للدفع من خلال إعادة محاولة الدفع، يمكن للشريك عرض "FUNDING_SOURCE_UNAVAILABLE" كطريقة لإعلام Google بأنه يجب عدم إعادة محاولة الدفع نفسها. ملاحظة: لا يزال بإمكان Google إعادة محاولة الدفع، ولكن باستخدام رقم تعريف طلب مختلف، ولكن سيتم وضع علامة "مرفوض" على طلب الدفع هذا. |
MANDATE_NOT_ACTIVE |
لم يعُد التفويض المستخدَم في عملية الالتقاط هذه نشطًا. وستؤدي هذه القيمة المعروضة إلى إغلاق أداة التفويض لدى المستخدم مع Google. |
UPCOMING_TRANSACTION_NOTIFICATION_EXPIRED |
انتهت صلاحية الإشعار الذي تم إرساله إلى المستخدم للحصول على دفعة تفويض متكررة. |