واجهة برمجة التطبيقات لعمليات الشراء التي تم إلغاؤها

توفّر واجهة برمجة التطبيقات Google Play Voided Purchases API قائمة بالطلبات المرتبطة بعمليات الشراء التي أبطلها المستخدم. يمكنك استخدام المعلومات من هذه القائمة لتنفيذ نظام إبطال يمنع المستخدم من الوصول إلى المنتجات من هذه الطلبات.

تنطبق واجهة برمجة التطبيقات هذه على الطلبات داخل التطبيق لمرة واحدة واشتراكات التطبيقات.

يمكن إلغاء عملية الشراء بالطرق التالية:

  • يطلب المستخدم استرداد الأموال المدفوعة مقابل طلبه.
  • إلغاء المستخدم طلبه
  • يتم ردّ رسوم الطلب.
  • إلغاء المطوّر الطلب أو ردّ أمواله

  • تلغي Google الطلب أو تردّ الأموال المدفوعة.

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

الحصول على إمكانية الوصول

لاستخدام واجهة برمجة التطبيقات Voided Purchases API، عليك الحصول على إذن للاطّلاع على المعلومات المالية. تقدّم هذه البيانات الإذن باستخدام عميل OAuth أو حساب خدمة. إذا كنت تستخدم حساب خدمة، فعِّل إذن "عرض التقارير المالية" في هذا الحساب.

لمعرفة المزيد من المعلومات عن الحصول على إمكانية الوصول المصرَّح به إلى واجهات Google Play Developer API، يُرجى الاطّلاع على الأدلة التالية:

عرض عمليات الشراء التي تم إلغاؤها

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

GET https://www.googleapis.com/androidpublisher/v3/applications/
your_package_name/purchases/voidedpurchases?access_token=your_auth_token

يمكنك أيضًا تضمين المعلمات التالية في طلبك، علمًا بأن كل معلمة منها اختيارية:

startTime

الوقت بالمللي ثانية منذ حقبة يونكس لأقدم عملية شراء مُلغاة والتي تريد استخدامها في الردّ. بشكل تلقائي، يتم ضبط startTime على "قبل 30 يومًا".

ويمكن لواجهة برمجة التطبيقات عرض عمليات الشراء المُلغاة التي تمت خلال آخر 30 يومًا فقط. ولا يتضمّن الردّ عمليات الشراء القديمة التي تم إلغاؤها، بغض النظر عن القيمة التي قدّمتها لسمة startTime.

endTime

الوقت بالمللي ثانية منذ حقبة يونكس لأحدث عملية شراء مُلغاة والتي تريد الاطّلاع عليها في الردّ. بشكل تلقائي، يتم ضبط endTime على الوقت الحالي.

maxResults
الحد الأقصى لعدد عمليات الشراء المُلغاة والتي تظهر في كل ردّ. وتكون هذه القيمة 1, 000 تلقائيًا. يُرجى العلم أنّ الحدّ الأقصى لقيمة هذه المَعلمة هو أيضًا 1,000.
رمز مميّز
رمز مميّز للمتابعة من ردّ سابق، ما يسمح لك بعرض المزيد من النتائج.
كتابة

نوع عمليات الشراء المُلغاة التي تظهر في كل ردّ. وفي حال ضبطها على 0، لن يتم عرض سوى عمليات الشراء داخل التطبيق المُلغاة. وفي حال ضبط هذه السياسة على 1، سيتم إرجاع كلّ من عمليات الشراء المُلغاة داخل التطبيق وعمليات شراء الاشتراكات المُلغاة. والقيمة التلقائية هي 0.

includeQuantityBasedPartialRefund

ما إذا كان سيتم تضمين عمليات شراء مُلغاة استنادًا إلى الكمية، والتي تنطبق فقط على عمليات الشراء التي تتضمّن عدة كميات. في حال true، قد يتم إرجاع عمليات شراء إضافية مُلغاة مع السمة voidedQuantity للإشارة إلى كمية عمليات ردّ الأموال الجزئية المستندة إلى الكمية. والقيمة التلقائية هي false.

والاستجابة هي سلسلة JSON تحتوي على قائمة بعمليات الشراء المُلغاة. إذا كانت هناك نتائج أكثر من الرقم المحدّد في معلَمة طلب maxResults، ستتضمن الاستجابة القيمة nextPageToken التي يمكنك تمريرها إلى طلب لاحق لعرض المزيد من النتائج. تعرض النتيجة الأولى في القائمة أقدم عملية شراء تم إلغاؤها.

{
  "tokenPagination": {
    "nextPageToken": "next_page_token"
  },
  "voidedPurchases": [
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_purchase_token",
      "purchaseTimeMillis": "1468825200000",
      "voidedTimeMillis": "1469430000000",
      "orderId": "some_order_id",
      "voidedSource": "0",
      "voidedReason": "4"
    },
    {
      "kind": "androidpublisher#voidedPurchase",
      "purchaseToken": "some_other_purchase_token",
      "purchaseTimeMillis": "1468825100000",
      "voidedTimeMillis": "1470034800000",
      "orderId": "some_other_order_id",
      "voidedSource": "2",
      "voidedReason": "5"
    },
  ]
}

الحصص

تحدّد واجهة برمجة التطبيقات لعمليات الشراء الملغاة الحصص التالية على أساس كل حزمة:

  • 6000 طلب في اليوم. (يبدأ اليوم وينتهي في منتصف الليل بتوقيت المحيط الهادئ).
  • 30 استعلامًا خلال أي فترة مدتها 30 ثانية.

إرشادات بشأن الطلبات الأولية

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

  • استخدِم القيمة التلقائية للمَعلمة maxResults. بهذه الطريقة، إذا استخدمت حصة طلبات البحث الكاملة ليوم واحد، فيمكنك استرداد تفاصيل 6000000 عملية شراء ملغاة.
  • إذا كان الردّ يتضمّن قيمة nextPageToken، حدِّد هذه القيمة للمَعلمة token أثناء طلبك التالي.

أفضل الممارسات

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

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