- طلب HTTP
- نص الطلب
- نص الاستجابة
- RequestHeader
- الإصدار
- OrderLookupCriteria
- ArnCriteria
- GoogleTransactionReferenceNumberCriteria
- RequestOriginator
- ResponseHeader
- GetOrderDetailsResultCode
- الترتيب
- السلعة
- الضريبة
يمكنك الحصول على طلب يوفّر الأساس لشركاء Google لتحصيل الرسوم من المستخدمين النهائيين.
إذا واجهت نقطة النهاية خطأً أثناء معالجة الطلب، سيكون الرد من نقطة النهاية هذه من النوع .ErrorResponse
قد تكون الردود على هذا الطلب فارغة إذا لم تعرض هذه الطريقة رمز HTTP 200. يكون نص الاستجابة فارغًا في الحالات التي قد يتم فيها استخدام مع وصف واضح لمساعدة المهاجم على فهم معرّف حساب شركة تكامل الدفع الخاص بالجهات المدمَجة الأخرى. في هذه الحالات، عندما يكون مفتاح التوقيع غير متطابق أو لم يتم العثور على معرّف وحدة تكامل الدفع أو كان مفتاح التشفير غير معروف، ستعرض هذه الطريقة خطأ HTTP 404 بدون نص. وإذا توفّرت إمكانية التحقّق من صحة توقيع الطلب، سيتم عرض معلومات إضافية بشأن الخطأ في نص الاستجابة.ErrorResponse
إليك مثال على الطلب:
{
"requestHeader": {
"protocolVersion": {
"major": 1,
"minor": 1,
"revision": 0
},
"requestId": "HsKv5pvtQKTtz7rdcw1YqE",
"requestTimestamp": "1519996751331"
},
"paymentIntegratorAccountId": "IntegratorFakeAccount",
"orderLookupCriteria": {
"googleTransactionReferenceNumberCriteria": {
"googleTransactionReferenceNumber": "714545417102363157911822",
"authorizationCode": "111111"
}
},
"requestOriginator": {
"organizationId": "ISSUER_256",
"organizationDescription": "Community Bank of Some City"
}
}
يبدو الرد كمثال:
{
"responseHeader": {
"responseTimestamp": "1519996752221"
},
"result": "SUCCESS",
"order": {
"timestamp": "1517992525972",
"orderId": "UPG.DEFC.X6F4.MEOM.CDWF",
"currencyCode": "USD",
"subTotalAmount": "399000000",
"totalAmount": "459000000",
"taxes": [],
"items": [
{
"description": "YouTube TV membership",
"merchant": "fake org",
"googleProductName": "YouTube TV",
"quantity": "1",
"totalPrice": "399000000"
},
{
"description": "Showtime",
"merchant": "fake org",
"googleProductName": "YouTube TV",
"quantity": "1",
"totalPrice": "6000000"
}
]
}
}
طلب HTTP
POST https://vgw.googleapis.com/secure-serving/gsp/v1/getOrderDetails/:PIAID
نص الطلب
يحتوي نص الطلب على بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "requestHeader": { object ( |
| الحقول | |
|---|---|
requestHeader |
مطلوب: عنوان مشترك لجميع الطلبات. |
paymentIntegratorAccountId |
مطلوب: معرّف حساب وحدة تكامل الدفع الذي يحدّد المتصل والقيود التعاقدية ذات الصلة بهذا التفاعل. |
orderLookupCriteria |
مطلوب: المعايير التي تشير إلى الطلب الذي سيتم البحث فيه. |
requestOriginator |
اختياري: معلومات عن المؤسسة أو المجموعة الفرعية التنظيمية التي أنشأت هذا الطلب (إذا كانت جهة الدمج تتصل بنا نيابةً عن مؤسسة أخرى) |
نص الاستجابة
حمولة الاستجابة لطريقة getOrderDetails
إذا كانت الاستجابة ناجحة، سيحتوي نص الاستجابة على بيانات بالبنية التالية:
| تمثيل JSON |
|---|
{ "responseHeader": { object ( |
| الحقول | |
|---|---|
responseHeader |
مطلوب: عنوان مشترك لجميع الردود. |
result |
REQUIRED: نتيجة هذه المكالمة. |
order |
اختياري: معلومات حول الطلب الذي تم إجراء الدفع وفقًا له. (تُعرض فقط إذا كان |
RequestHeader
كائن العنوان المحدَّد في جميع الطلبات المُرسَلة إلى الخادم
| تمثيل JSON |
|---|
{
"requestId": string,
"requestTimestamp": string,
"userLocale": string,
"protocolVersion": {
object ( |
| الحقول | |
|---|---|
requestId |
مطلوب: المعرّف الفريد لهذا الطلب. هذه سلسلة لا يزيد طولها عن 100 حرف، وتحتوي فقط على الأحرف "a-z" و"A-Z" و"0-9" و":" و"-" و"_". |
requestTimestamp |
مطلوب: يتم تمثيل الطابع الزمني لهذا الطلب بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 60 ثانية و"الآن". الطابع الزمني للطلب هذا غير ثابت عند إعادة المحاولة. |
userLocale |
متوقف: رمز لغة مؤلف من حرفين أو ثلاثة أحرف بتنسيق ISO 639-2 Alpha 3، ويمكن اختياره بشكل اختياري متبوعًا بواصلة ورمز بلد بتنسيق ISO 3166-1 Alpha-2، مثل "pt" أو "pt-BR" أو "fil" أو "fil-PH". يمكنك استخدام هذه المعلومات لزيادة الحقول |
protocolVersion |
REQUIRED: نسخة هذا الطلب. |
الإصدار
كائن الإصدار، وهو شكل منظَّم لبنية إصدار a.b.c الكلاسيكية. نضمن لك توافق الإصدارات الرئيسية التي لها الرقم نفسه. لاحظ أن المراجعات الثانوية والمراجعات يمكن أن تتغير بشكل متكرر وبدون إشعار. يجب أن تقدّم شركة الدمج جميع الطلبات الخاصة بالإصدار الرئيسي نفسه.
| تمثيل JSON |
|---|
{ "major": integer, "minor": integer, "revision": integer } |
| الحقول | |
|---|---|
major |
مطلوب: رقم الإصدار الرئيسي. ويتم وضع علامة على هذا الخيار بأنّه لا يمكن ضمان توافق طلبات التوافق مع الإصدارات المختلفة. |
minor |
REQUIRED: الإصدار الثانوي. ويدل هذا على إصلاحات كبيرة للأخطاء. |
revision |
REQUIRED: الإصدار الثانوي. يشير هذا إلى إصلاحات أخطاء بسيطة. |
OrderLookupCriteria
معايير البحث عن الطلبات
| تمثيل JSON |
|---|
{ // Union field |
| الحقول | |
|---|---|
حقل الاتحاد يمكن أن يكون |
|
dcb3CorrelationId |
ابحث استنادًا إلى معرّف ارتباط "الفوترة المباشرة لمشغِّل شبكة الجوَّال" الذي تُنشئه Google والذي يعرِّف الدفعة بشكلٍ فريد. أنشأت Google هذه القيمة وتم إرسالها إلى وحدة تكامل عمليات الدفع لمشغّل شبكة الجوّال أثناء مكالمة المصادقة. |
arnCriteria |
يتم البحث استنادًا إلى الرقم المرجعي لصاحب الملكية (ARN). |
googleTransactionReferenceNumberCriteria |
ابحث استنادًا إلى الرقم المرجعي لمعاملات Google. |
ArnCriteria
معايير البحث عن الدفعات استنادًا إلى الرقم المرجعي للمستلم (ARN)
| تمثيل JSON |
|---|
{ "acquirerReferenceNumber": string, "authorizationCode": string } |
| الحقول | |
|---|---|
acquirerReferenceNumber |
مطلوب: الرقم المرجعي لمستلم الدفعة (ARN) الذي يعرّف الدفعة بشكل فريد. يجب أن يتألف المعرّف الضريبي من 23 رقمًا. |
authorizationCode |
مطلوب: رمز التفويض الخاص بالمعاملة. |
GoogleTransactionReferenceNumberCriteria
معايير البحث عن الدفعات استنادًا إلى الرقم المرجعي للمعاملة الذي تنشئه Google
| تمثيل JSON |
|---|
{ "googleTransactionReferenceNumber": string, "authorizationCode": string } |
| الحقول | |
|---|---|
googleTransactionReferenceNumber |
مطلوب: الرقم المرجعي للمعاملة الذي تنشئه Google، والذي يعرّف الدفعة بشكل فريد. |
authorizationCode |
مطلوب: رمز التفويض الخاص بالمعاملة. |
RequestOriginator
معلومات عن المؤسسة أو المجموعة الفرعية التي نشأ منها هذا الطلب. ويتيح ذلك لشركة Google رصد المشاكل أو إساءة الاستخدام وتنفيذ عناصر التحكّم على مستوى أكثر دقة من paymentIntegratorAccountId. وتكون ذات قيمة خاصة عندما يكون المتصل مقدّم خدمة وسيطًا يصدر الطلبات من عدة عملاء خارجيين.
| تمثيل JSON |
|---|
{ "organizationId": string, "organizationDescription": string } |
| الحقول | |
|---|---|
organizationId |
مطلوب: معرّف للشركة أو المؤسسة أو المجموعة التنظيمية التي نشأ منها هذا الطلب. يجب أن يكون فريدًا ضمن |
organizationDescription |
مطلوب: هو اسم أو وصف سهل القراءة للمستخدم يمكن استخدامه لتسهيل التواصل بين موظفي Google والشركة المتعهّدة في ما يتعلّق بتلك المؤسسة. |
ResponseHeader
كائن العنوان المحدَّد في جميع الاستجابات المُرسَلة من الخادم
| تمثيل JSON |
|---|
{ "responseTimestamp": string } |
| الحقول | |
|---|---|
responseTimestamp |
مطلوب: يتم تمثيل الطابع الزمني لهذه الاستجابة بالمللي ثانية منذ تاريخ بدء حساب الفترة. من المفترض أن يتحقّق المُستلِم من أنّ هذا الطابع الزمني يتراوح بين 60 ثانية و"الآن". |
GetOrderDetailsResultCode
نتيجة استدعاء طريقة getOrderDetails.
| عمليات التعداد | |
|---|---|
GET_ORDER_DETAILS_RESULT_CODE_UNKNOWN |
لا تضبط هذه القيمة التلقائية على الإطلاق. |
SUCCESS |
تم العثور على الطلب وإعادته. |
ORDER_CANNOT_BE_RETURNED |
الطلب المطلوب موجود ولكن لا يمكن إرجاعه. وتشمل الأسباب الحالات التي تتم فيها إزالة الطلب بناءً على طلب مالكه. |
PAYMENT_TOO_OLD |
تم العثور على الدفعة المطلوبة، ولكن لم يتم تقديم تفاصيل الطلب بسبب انتهاء مدة الدفع. |
PAYMENT_NOT_FOUND |
لم يتم العثور على الدفعة المطلوبة. |
NO_ADDITIONAL_DETAILS |
تم العثور على الدفعة المطلوبة، ولكن تفاصيل الطلب غير متوفّرة. |
طلب
معلومات حول الطلب
| تمثيل JSON |
|---|
{ "timestamp": string, "orderId": string, "currencyCode": string, "subTotalAmount": string, "totalAmount": string, "items": [ { object ( |
| الحقول | |
|---|---|
timestamp |
OPTIONAL: الطابع الزمني لوقت تقديم الطلب، ويتم تمثيله بالملي ثانية منذ الحقبة غير متوفّر لبعض أنواع الطلبات. |
orderId |
OPTIONAL: سلسلة تعرّف على هذا الترتيب بشكلٍ فريد. غير متوفّر لبعض أنواع الطلبات. |
currencyCode |
اختياري: رمز العملة المكوَّن من 3 أحرف وفقًا لمعيار ISO 4217 لجميع المبالغ بهذا الترتيب. غير متوفّر لبعض أنواع الطلبات. |
subTotalAmount |
OPTIONAL: إجمالي مبلغ هذا الطلب قبل الضريبة، ويتم تمثيله بالميكروبات المحدَّدة في |
totalAmount |
اختياري: إجمالي مبلغ هذا الطلب بما في ذلك الضريبة، والذي يتم تمثيله بالمايكرو للعملة المحدَّدة في |
items[] |
مطلوب: قائمة بالعناصر التي كانت جزءًا من هذا الطلب. |
taxes[] |
اختياري: قائمة الضرائب التي كانت جزءًا من هذا الطلب |
المنتج/الخدمة
تمثّل هذه السمة معلومات حول سلعة متوفّرة في الطلب.
| تمثيل JSON |
|---|
{ "description": string, "merchant": string, "quantity": string, "totalPrice": string, "googleProductName": string } |
| الحقول | |
|---|---|
description |
اختياري: وصف للسلعة التي تم شراؤها. غير متوفّر لبعض أنواع الطلبات. |
merchant |
مطلوب: البائع أو الفنان أو صانع السلعة. |
quantity |
OPTIONAL: الكمية التي تم طلبها من هذه السلعة سيتم حذف هذا الحقل إذا لم تكن الكميات الصحيحة سارية على المنتج (على سبيل المثال، قد تحتوي المنتجات التي تفرض تكلفة استخدام على كميات كسور). |
totalPrice |
اختياري: السعر الإجمالي لهذه السلعة، ويتم تمثيله بوحدات المايكرو للعملة المحددة في |
googleProductName |
مطلوب: اسم خدمة منتج Google للعنصر. |
الضريبة
تشير هذه السمة إلى معلومات حول الضريبة التي تنطبق على هذا الطلب.
| تمثيل JSON |
|---|
{ "description": string, "amount": string } |
| الحقول | |
|---|---|
description |
مطلوب: وصف الضريبة. |
amount |
مطلوبة: مبلغ الضريبة، ويتم تمثيله بوحدات المايكرو من العملة المحدّدة في |