Method: getOrderDetails

يمكنك الحصول على طلب يوفّر الأساس لشركاء Google لتحصيل رسوم المستخدمين من المستخدمين النهائيين.

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

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

يظهر مثال على الطلب على النحو التالي:


{
  "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": string,
  "orderLookupCriteria": {
    object (OrderLookupCriteria)
  },
  "requestOriginator": {
    object (RequestOriginator)
  }
}
الحقول
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

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

orderLookupCriteria

object (OrderLookupCriteria)

مطلوب: المعايير التي تشير إلى الترتيب الذي سيتم البحث عنه.

requestOriginator

object (RequestOriginator)

اختياري: معلومات حول المؤسسة أو المجموعة الفرعية التنظيمية التي أنشأت هذا الطلب (في حال كانت شركة الدمج تتصل بنا نيابةً عن مؤسسة أخرى).

نص الاستجابة

حمولة الاستجابة لطريقة getOrderDetails

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

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

object (ResponseHeader)

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

result

enum (GetOrderDetailsResultCode)

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

order

object (Order)

اختياري: معلومات عن الطلب الذي تم الدفع بموجبه. (لا يتم عرضها إلا إذا كانت قيمة السمة result هي "ناجح").

RequestHeader

كائن العنوان المحدَّد في جميع الطلبات المُرسَلة إلى الخادم.

تمثيل JSON
{
  "requestId": string,
  "requestTimestamp": string,
  "userLocale": string,
  "protocolVersion": {
    object (Version)
  }
}
الحقول
requestId

string

مطلوب: المعرّف الفريد لهذا الطلب.

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

requestTimestamp

string (int64 format)

مطلوب: الطابع الزمني لهذا الطلب الذي تم تمثيله بالمللي ثانية منذ البداية. يجب أن يتحقّق المستلِم من أنّ الطابع الزمني هذا هو ± 60 ثانية من "الآن". إنّ الطابع الزمني لهذا الطلب غير ثابت عند إعادة المحاولة.

userLocale
(deprecated)

string

غير مفعَّلة: يتم اختيار رمز لغة مكوّن من حرفَين أو ثلاثة أحرف بتنسيق ISO 639-2 Alpha 3 متبوعًا بواصلة ورمز بلد بتنسيق ISO 3166-1 Alpha-2، مثل "pt" أو "pt-BR" أو "fil" أو "fil-PH". يمكنك استخدام هذه المعلومات للمساعدة في توجيه حقول userMessage في الاستجابة.

protocolVersion

object (Version)

مطلوب: نسخة هذا الطلب.

الإصدار

كائن الإصدار الذي هو شكل منظَّم لبنية إصدار a.b.c الكلاسيكي. وتضمن توافق الإصدارات الرئيسية من الرقم نفسه. لاحظ أنه قد يتم تغيير القاصرين والمراجعات بشكل متكرر وبدون إشعار. يجب أن تقدّم شركة الدمج طلبات للإصدار الرئيسي نفسه.

تمثيل JSON
{
  "major": integer,
  "minor": integer,
  "revision": integer
}
الحقول
major

integer

مطلوب: رقم الإصدار الرئيسي. يتم وضع علامة على هذا الطلب توافقًا مع طلبات التوافق مع الإصدارات المختلفة.

minor

integer

مطلوب: إصدار ثانوي. يشير هذا إلى أنه تم إصلاح أخطاء كبيرة.

revision

integer

مطلوب: إصدار ثانوي. ويدل ذلك على إصلاح أخطاء بسيطة.

OrderLookupCriteria

معايير البحث في الطلبات

تمثيل JSON
{

  // Union field criteria can be only one of the following:
  "dcb3CorrelationId": string,
  "arnCriteria": {
    object (ArnCriteria)
  },
  "googleTransactionReferenceNumberCriteria": {
    object (GoogleTransactionReferenceNumberCriteria)
  }
  // End of list of possible types for union field criteria.
}
الحقول

حقل الاتحاد criteria

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

dcb3CorrelationId

string

يمكنك البحث استنادًا إلى رقم تعريف ارتباط DCB الذي أنشأته Google والذي يحدّد الدفعة بشكل فريد. أنشأت Google هذه القيمة وتم إرسالها إلى الشركة التي تُجري عملية دمج دفعات الفوترة لدى مشغّل شبكة الجوّال أثناء مكالمة Auth.

arnCriteria

object (ArnCriteria)

البحث استنادًا إلى الرقم المرجعي للزاهي (ARN)

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

يمكنك البحث استنادًا إلى الرقم المرجعي لمعاملات Google.

ArnCriteria

معايير البحث عن الدفعات استنادًا إلى الرقم المرجعي للزاهي (ARN)

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

string

مطلوب: الرقم المرجعي للمصرف (ARN) الذي يحدّد الدفعة بشكل فريد. يجب أن يتألف المعرّف الضريبي من 23 رقمًا.

authorizationCode

string

مطلوب: رمز التفويض للمعاملة.

GoogleTransactionReferenceNumberCriteria

معايير البحث عن الدفعات استنادًا إلى الرقم المرجعي للمعاملة الذي أنشأته Google

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

string

مطلوب: الرقم المرجعي للمعاملة الذي أنشأته Google والذي يحدّد الدفعة بشكل فريد.

authorizationCode

string

مطلوب: رمز التفويض للمعاملة.

RequestOriginator

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

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

string

مطلوب: معرّف الشركة أو المؤسسة أو المجموعة التنظيمية التي نشأ منها هذا الطلب. يجب أن يكون فريدًا داخل paymentIntegratorAccountId.

organizationDescription

string

مطلوب: يجب إدخال اسم أو وصف للمؤسسة يمكن استخدامه لتسهيل التواصل بين موظفي Google والشركة المتعهّدة بشأن تلك المؤسسة.

ResponseHeader

كائن العنوان الذي يتم تحديده على جميع الاستجابات المُرسَلة من الخادم

تمثيل JSON
{
  "responseTimestamp": string
}
الحقول
responseTimestamp

string (int64 format)

مطلوب: الطابع الزمني لهذا الرد ممثلاً بالمللي ثانية منذ البداية. يجب أن يتحقّق المستلِم من أنّ الطابع الزمني هذا هو ± 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 (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
الحقول
timestamp

string (int64 format)

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

orderId

string

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

currencyCode

string

اختياري: رمز العملة المكوَّن من 3 أحرف بتنسيق ISO 4217 لجميع المبالغ في هذا الترتيب. لا تتوفر هذه الخدمة لجميع أنواع الطلبات.

subTotalAmount

string (Int64Value format)

اختياري: إجمالي مبلغ هذا الطلب قبل الضريبة، ممثلًا بوحدات المايكرو من العملة المحدّدة في order.currencyCode. يساوي ذلك SUM(items.totalPrice). لا تتوفر هذه الخدمة لجميع أنواع الطلبات.

totalAmount

string (Int64Value format)

اختياري: إجمالي مبلغ هذا الطلب شاملاً الضريبة، ممثلًا بوحدات المايكرو من العملة المحدّدة في order.currencyCode. يساوي ذلك subTotalAmount + SUM(taxes.amount). لا تتوفر هذه الخدمة لجميع أنواع الطلبات.

items[]

object (Item)

مطلوب: قائمة العناصر التي كانت جزءًا من هذا الطلب.

taxes[]

object (Tax)

اختياري: قائمة الضرائب التي كانت جزءًا من هذا الطلب.

المنتج/الخدمة

معلومات عن سلعة معيّنة في الطلب

تمثيل JSON
{
  "description": string,
  "merchant": string,
  "quantity": string,
  "totalPrice": string,
  "googleProductName": string
}
الحقول
description

string

اختياري: وصف للسلعة التي تم شراؤها. لا تتوفر هذه الخدمة لجميع أنواع الطلبات.

merchant

string

مطلوب: يشير إلى بائع السلعة أو الفنّان أو الجهة المصنّعة لها.

quantity

string (Int64Value format)

اختياري: الكمية التي تمّ طلبها من هذا العنصر

سيتم حذف هذا الحقل إذا كانت كميات الأعداد الصحيحة غير قابلة للتطبيق على المنتج (قد تتضمّن المنتجات الخاضعة للقياس كميات كسرية على سبيل المثال).

totalPrice

string (Int64Value format)

اختياري: السعر الإجمالي لهذا العنصر، ممثلًا بوحدات المايكرو من العملة المحدّدة في order.currencyCode. إذا تمت تعبئة quantity، يعكس هذا السعر الإجمالي للكمية بأكملها. لا تتوفر هذه الخدمة لجميع أنواع الطلبات.

googleProductName

string

مطلوب: اسم خدمة منتج Google للعنصر.

ضريبة

معلومات عن الضريبة التي تسري على هذا الطلب.

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

string

مطلوب: وصف للضريبة.

amount

string (Int64Value format)

مطلوب: مبلغ الضريبة، ممثلًا بوحدات المايكرو من العملة المحدّدة في order.currencyCode.