Method: getDisputeInquiryReport

يمكنك الحصول على تقرير يقدّم معلومات لتسهيل إجراء محادثة مع فريق دعم العملاء بشأن نزاع محتمل بشأن دفعة.

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

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

إليك مثال على الطلب:


{
  "requestHeader": {
    "protocolVersion": {
      "major": 1,
      "minor": 1,
      "revision": 0
    },
    "requestId": "HsKv5pvtQKTtz7rdcw1YqE",
    "requestTimestamp": "1519996751331"
  },
  "paymentIntegratorAccountId": "InvisiCashUSA",
  "paymentLookupCriteria": {
    "googleTransactionReferenceNumberCriteria": {
      "googleTransactionReferenceNumber": "714545417102363157911822",
      "authorizationCode": "111111"
    }
  },
  "existingGoogleClaimId": "138431383281",
  "requestOriginator": {
    "organizationId": "ISSUER_256",
    "organizationDescription": "Community Bank of Some City",
    "agentId": "982749"
  }
}

يبدو الرد كمثال:


{
  "responseHeader": {
    "responseTimestamp": "1519996752221"
  },
  "result": "SUCCESS",
  "googleClaimId": "138431383281",
  "report": {
    "customerAccount": {
      "customerEmail": "example@gmail.com",
      "customerName" : "Example Customer"
    },
    "order": {
      "timestamp": "1517992525972",
      "orderId": "SOP.8976-1234-1234-123456..99",
      "currencyCode": "USD",
      "subTotalAmount": "206990000",
      "totalAmount": "212990000",
      "shippingAddress": {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "taxes": [
        {
          "description": "Colorado Sales Tax",
          "amount": "6000000"
        }
      ],
      "items": [
        {
          "description": "Super cool gizmo",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "2",
          "totalPrice": "198000000"
        },
        {
          "description": "Gizmo charger",
          "merchant": "HTC",
          "googleProductName": "Google Store",
          "quantity": "1",
          "totalPrice": "8990000"
        }
      ]
    },
    "payment": {
      "billingAddress" : {
        "name": "Example Customer",
        "addressLine": ["123 Main St"],
        "localityName": "Springfield",
        "administrativeAreaName": "CO",
        "postalCodeNumber": "80309",
        "countryCode": "US"
      },
      "amount": "100000000",
      "refunds": [
        {
          "amount": "9250000",
          "initiatedTimestamp": "1518811245384"
        }
      ],
      "cardDetails": {
        "authResult": "APPROVED"
      }
    }
  }
}

طلب HTTP

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

نص الطلب

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

تمثيل JSON
{
  "requestHeader": {
    object (RequestHeader)
  },
  "paymentIntegratorAccountId": string,
  "paymentLookupCriteria": {
    object (PaymentLookupCriteria)
  },
  "existingGoogleClaimId": string,
  "requestOriginator": {
    object (RequestOriginator)
  }
}
الحقول
requestHeader

object (RequestHeader)

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

paymentIntegratorAccountId

string

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

paymentLookupCriteria

object (PaymentLookupCriteria)

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

existingGoogleClaimId

string

OPTIONAL: سلسلة أنشأتها Google عبر استدعاء سابق إلى getDisputeInquiryReport وتُعرِّف مطالبة العميل هذه بشكل فريد.

وفي حال عدم توفّره، سيتم إنشاء معرّف مطالبة جديد. قد يقدم المتصل رقم googleClaimId تم إرجاعه من خلال مكالمة سابقة إلى getDisputeInquiryReport إذا كان ذلك استمرارًا للاعتراض الذي قدّمه العميل نفسه.

سيتم عرض معرّف المطالبة الذي تتم تعبئته هنا أو تم إنشاؤه في الحقل googleClaimId الخاص بالردّ.

لا يصلح تقديم googleClaimId لم يتم عرضه في مكالمة سابقة إلى getDisputeInquiryReport. وفي حالة حدوث ذلك، سيتم عرض طلب HTTP 400 غير صالح.

requestOriginator

object (RequestOriginator)

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

نص الاستجابة

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

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

تمثيل JSON
{
  "responseHeader": {
    object (ResponseHeader)
  },
  "result": enum (GetDisputeInquiryReportResultCode),
  "googleClaimId": string,
  "report": {
    object (PurchaseReport)
  }
}
الحقول
responseHeader

object (ResponseHeader)

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

result

enum (GetDisputeInquiryReportResultCode)

REQUIRED: نتيجة هذه المكالمة.

googleClaimId

string

OPTIONAL: سلسلة من إنشاء Google تحدّد هذا الاعتراض بشكل فريد مع العميل. (تُعرض فقط إذا كان result ناجحًا فقط).

إذا تمت تعبئة existingGoogleClaimId في الطلب، ستكون هذه القيمة هي نفسها. وبخلاف ذلك، ستكون قيمة تم إنشاؤها حديثًا. يمكن تقديم هذه القيمة في طلبات getDisputeInquiryReport المستقبلية إذا كانت هذه الطلبات جزءًا من الاعتراض نفسه الذي يقدّمه العميل.

report

object (PurchaseReport)

اختياري: تفاصيل ذات صلة بالاعتراض على الدفعة المحدَّدة في الطلب (تُعرض فقط إذا كان result ناجحًا فقط).

PaymentLookupCriteria

حاوية للمعايير التي يمكنها البحث عن دفعة بشكل فريد يجب تعبئة حقل عضو واحد (وواحد فقط).

تمثيل JSON
{

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

حقل الاتحاد criteria.

يمكن أن يكون criteria واحدًا فقط مما يلي:

arnCriteria

object (ArnCriteria)

OPTIONAL: البحث استنادًا إلى الرقم المرجعي لصاحب الحساب (ARN).

googleTransactionReferenceNumberCriteria

object (GoogleTransactionReferenceNumberCriteria)

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

captureRequestCriteria

object (CaptureRequestCriteria)

اختياري: ابحث استنادًا إلى رقم تعريف طلب الالتقاط.

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

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

CaptureRequestCriteria

معايير البحث عن الدفعات استنادًا إلى طلب الالتقاط الأصلي

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

string

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

RequestOriginator

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

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

string

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

organizationDescription

string

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

agentId

string

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

GetDisputeInquiryReportResultCode

نتيجة استدعاء طريقة getDisputeInquiryReport.

عمليات التعداد
UNKNOWN_RESULT لا تضبط هذه القيمة التلقائية على الإطلاق.
SUCCESS تمّ العثور على الدفعة وتقديم تقرير.
PAYMENT_NOT_FOUND لم يتم العثور على الدفعة المطلوبة.
PAYMENT_TOO_OLD تم العثور على الدفعة المطلوبة، ولكن لم يتم تقديم تقرير بسبب مرور الدفعة.
ORDER_CANNOT_BE_RETURNED الدفعة المطلوبة تابعة لطلب موجود ولكن لا يمكن إرجاعه. وتشمل الأسباب الحالات التي تتم فيها إزالة الطلب بناءً على طلب مالكه.
NO_ADDITIONAL_DETAILS تم العثور على الدفعة المطلوبة، ولكن لا يتوفر تقرير.

PurchaseReport

تقرير يحتوي على التفاصيل ذات الصلة بعملية الشراء المرتبطة بالدفعة المطلوبة

تمثيل JSON
{
  "customerAccount": {
    object (CustomerAccount)
  },
  "order": {
    object (Order)
  },
  "payment": {
    object (Payment)
  }
}
الحقول
customerAccount

object (CustomerAccount)

مطلوبة: معلومات حول العميل وحسابه.

order

object (Order)

مطلوبة: تتضمّن معلومات عن طلب الدفع الذي تم تسديد الدفعة بناءً عليه.

payment

object (Payment)

اختياري: معلومات حول الدفع ملاحظة: يمكن إجراء دفعات متعددة في طلب واحد، إلا أنّ المعلومات ستتضمّن فقط معلومات الدفعة التي تم تحديدها في الطلب الأصلي. غير متوفّر لبعض أنواع الطلبات.

CustomerAccount

معلومات حول حساب العميل

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

string

مطلوب: عنوان البريد الإلكتروني المرتبط بحساب العميل على Google.

customerName

string

مطلوب: اسم العميل.

طلب

معلومات حول الطلب

تمثيل JSON
{
  "timestamp": string,
  "orderId": string,
  "currencyCode": string,
  "subTotalAmount": string,
  "totalAmount": string,
  "shippingAddress": {
    object (Address)
  },
  "items": [
    {
      object (Item)
    }
  ],
  "taxes": [
    {
      object (Tax)
    }
  ]
}
الحقول
timestamp

string (int64 format)

OPTIONAL: الطابع الزمني لوقت تقديم الطلب، ويتم تمثيله بالملي ثانية منذ الحقبة غير متوفّر لبعض أنواع الطلبات.

orderId

string

OPTIONAL: سلسلة تعرّف على هذا الترتيب بشكلٍ فريد. غير متوفّر لبعض أنواع الطلبات.

currencyCode

string

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

subTotalAmount

string (Int64Value format)

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

totalAmount

string (Int64Value format)

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

shippingAddress

object (Address)

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

items[]

object (Item)

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

taxes[]

object (Tax)

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

العنوان

بنية تحتوي على معلومات حول عنوان معيّن.

تمثيل JSON
{
  "name": string,
  "addressLine": [
    string
  ],
  "localityName": string,
  "administrativeAreaName": string,
  "postalCodeNumber": string,
  "countryCode": string
}
الحقول
name

string

اختياري: الاسم الكامل للعميل

addressLine[]

string

OPTIONAL: يحتوي على نص العنوان غير المنظَّم.

localityName

string

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

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

administrativeAreaName

string

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

postalCodeNumber

string

OPTIONAL: على الرغم من الاسم، إنّ قيم mailCodeNumber غالبًا ما تكون أبجدية رقمية. أمثلة: "94043"، "SW1W"، "SW1W 9TQ".

countryCode

string

اختياري: رمز بلد عنوان العميل، ومن المتوقّع أن يكون وفقًا لمعيار ISO-3166-1 Alpha-2.

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

تمثّل هذه السمة معلومات حول سلعة متوفّرة في الطلب.

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

string

اختياري: وصف للسلعة التي تم شراؤها. غير متوفّر لبعض أنواع الطلبات.

merchant

string

مطلوب: البائع أو الفنان أو صانع السلعة.

quantity

string (Int64Value format)

OPTIONAL: الكمية التي تم طلبها من هذه السلعة

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

totalPrice

string (Int64Value format)

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

googleProductName

string

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

الضريبة

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

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

string

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

amount

string (Int64Value format)

مطلوبة: مبلغ الضريبة، ويظهر على أنّه وحدات صغيرة من العملة المحدّدة في order.currencyCode

الدفع

معلومات عن الدفعة

تمثيل JSON
{
  "billingAddress": {
    object (Address)
  },
  "amount": string,
  "refunds": [
    {
      object (Refund)
    }
  ],

  // Union field fopDetails can be only one of the following:
  "cardDetails": {
    object (PaymentCardDetails)
  }
  // End of list of possible types for union field fopDetails.
}
الحقول
billingAddress

object (Address)

مطلوب: عنوان إرسال الفواتير لهذه الدفعة.

amount

string (Int64Value format)

مطلوبة: مبلغ هذه الدفعة، ويظهر على أنّه وحدات صغيرة من العملة المحدّدة في order.currencyCode. ملاحظة: قد لا تتطابق قيمة هذه السمة مع order.totalAmount إذا تم دفع الطلب عن طريق عدة دفعات.

refunds[]

object (Refund)

مطلوبة: قائمة بعمليات ردّ الأموال التي تم إجراؤها لهذه الدفعة قد تكون هذه القائمة فارغة.

حقل الاتحاد fopDetails.

يمكن أن يكون fopDetails واحدًا فقط مما يلي:

cardDetails

object (PaymentCardDetails)

اختياري: تفاصيل الدفع المتعلقة بالرصيد لبطاقات السحب الآلي (FP).

ردّ الأموال

معلومات حول ردّ أموال إحدى الدفعات

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

string (Int64Value format)

مطلوب: المبلغ الذي تم ردّه، وهو عدد موجب بوحدات المايكرو من العملة المحدّدة في order.currencyCode.

initiatedTimestamp

string (int64 format)

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

PaymentCardDetails

تفاصيل الدفع المتعلقة بالائتمان بطاقات السحب الآلي.

تمثيل JSON
{
  "authResult": enum (AuthResult)
}
الحقول
authResult

enum (AuthResult)

REQUIRED: نتيجة مصادقة الدفع.

AuthResult

نتائج مصادقة الدفع

عمليات التعداد
UNKNOWN_RESULT لا تضبط هذه القيمة التلقائية على الإطلاق.
APPROVED تمت الموافقة على المصادقة.
DENIED تم رفض المصادقة.
NOT_ATTEMPTED لم تتم محاولة المصادقة.