في السابق، كان يتم استخدام الحمولة البرمجية للمطوّر لأغراض مختلفة، بما في ذلك الوقاية من الاحتيال وتحديد المستخدم الصحيح الذي أجرى عمليات الشراء. مع الإصدارات 2.2 والإصدارات الأحدث من Google Play Billing Library، أصبحت حالات الاستخدام المقصودة التي كانت تعتمد سابقًا على الحمولة البرمجية للمطوّر متاحة بالكامل في أجزاء أخرى من المكتبة.
بعد توفير هذا الإصدار، أوقفنا نهائيًا استخدام الحمولة المخصّصة للمطوّر، بدءًا من الإصدار 2.2 من Google Play Billing Library. تم إيقاف الطرق المرتبطة بحمولة المطوّر نهائيًا في الإصدار 2.2 وتمّت إزالتها في الإصدار 3.0. يُرجى العِلم أنّه يمكن لتطبيقك مواصلة استرداد حمولة المطوِّر لعمليات الشراء التي تم إجراؤها باستخدام الإصدارات السابقة من المكتبة أو AIDL.
للحصول على قائمة مفصّلة بالتغييرات، يُرجى الاطّلاع على ملاحظات إصدار 2.2 من مكتبة الفوترة في Google Play وملاحظات إصدار 3.0 من مكتبة الفوترة في Google Play.
تأكيد عملية الشراء
لضمان أنّ عمليات الشراء أصلية وغير مزورة أو مُعاد تشغيلها، تنصح Google باستخدام رمز تنشيط الشراء (الذي يتم الحصول عليه من الإجراء
getPurchaseToken()
في العنصر
Purchase
) مع واجهات برمجة التطبيقات Google Play Developer API للتحقّق من أنّ عمليات الشراء أصلية.
لمزيد من المعلومات، يُرجى الاطّلاع على مقالة مكافحة الاحتيال وإساءة الاستخدام.
تحديد مصدر الشراء
يجب أن تضمن العديد من التطبيقات، لا سيما الألعاب، أنّه يتم تحديد مصدر عملية الشراء بشكلٍ صحيح للشخصية أو الصورة الرمزية داخل اللعبة أو الملف الشخصي للمستخدم داخل التطبيق الذي بدأ الشراء. اعتبارًا من الإصدار 2.2 من Google Play Billing Library، يمكن لتطبيقك تمرير معرّفات الحسابات والملفات الشخصية المشفّرة إلى Google عند فتح مربّع حوار الشراء وإعادتها عند استرداد عملية شراء.
استخدِم المَعلمتَين
setObfuscatedAccountId()
و
setObfuscatedProfileId()
في
BillingFlowParams
واسترِدّهما باستخدام الأسلوب
getAccountIdentifiers()
في العنصر
Purchase
.
ربط البيانات الوصفية بعملية شراء
تنصح Google بتخزين البيانات الوصفية عن عملية شراء على خادم خلفي
آمن تديره بنفسك. يجب ربط البيانات الوصفية لعملية الشراء برمز إشتراك الشراء الذي تم الحصول عليه باستخدام الأسلوب
getPurchaseToken
في العنصر Purchase
. يمكن الاحتفاظ بهذه البيانات من خلال تمرير رمز الشراء والبيانات الوصفية
إلى الخلفية عند استدعاء PurchasesUpdatedListener
بعد إتمام عملية شراء ناجحة.
لضمان ربط البيانات الوصفية في حال حدوث انقطاعات في عملية الشراء، توصیه Google بتخزين البيانات الوصفية على خادم الخلفية قبل بدء مربّع حوار الشراء وربطه بمعرّف حساب المستخدم، ورمز التخزين التعريفي الذي يتم شراؤه، والطابع الزمني الحالي.
إذا انقطعت عملية الشراء قبل استدعاء PurchasesUpdatedListener
، سيرصد تطبيقك عملية الشراء بعد استئناف نشاطه واستدعاء BillingClient.queryPurchasesAsync()
.
يمكنك بعد ذلك إرسال القيم التي تم استرجاعها من Purchase
getPurchaseTime()
،
getSku()
،
وgetPurchaseToken()
الإجراءات إلى خادم الخلفية للبحث عن البيانات الوصفية وربط البيانات الوصفية
برمز الشراء ومواصلة معالجة عملية الشراء. يُرجى العِلم أنّه لن يتطابق
الطابع الزمني الذي حفظته في البداية تمامًا مع القيمة الواردة من Purchase
getPurchaseTime()
،
لذلك عليك مقارنتهما بطريقة تقريبية. على سبيل المثال، يمكنك التحقّق مما إذا كانت القيم ضمن فترة زمنية معيّنة من بعضها.