تاريخيًا، تم استخدام حمولة بيانات المطوّر لأغراض مختلفة، بما في ذلك منع الاحتيال وإسناد المشتريات إلى المستخدم الصحيح. أمّا في الإصدار 2.2 والإصدارات الأحدث من Google Play Billing Library، فأصبحت حالات الاستخدام المقصودة التي كانت تعتمد سابقًا على حمولة بيانات المطوّرين متاحة الآن بشكل كامل في أجزاء أخرى من المكتبة.
وبعد توفّر هذا الدعم، أوقفنا الحمولة الخاصة بالمطوّرين نهائيًا، بدءًا من الإصدار 2.2 من Google Play Billing Library. تم إيقاف الطرق المرتبطة بحمولة المطورين في الإصدار 2.2 وتمت إزالتها في الإصدار 3.0. مع ملاحظة أنّ تطبيقك يمكنه مواصلة استرداد حمولة المطوّرين لعمليات الشراء التي تم إجراؤها باستخدام إصدارات سابقة من المكتبة أو بتنسيق AIDL.
للحصول على قائمة مفصّلة بالتغييرات، يُرجى الاطّلاع على ملاحظات الإصدار 2.2 من Google Play Billing Library وملاحظات الإصدار 3.0 من Google Play Billing Library.
تأكيد عمليات الشراء
للتأكّد من أنّ عمليات الشراء أصلية وليست مزيّفة أو إعادة تشغيلها، تنصح 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()
.
يمكنك بعد ذلك إرسال القيم التي تم استردادها من طرق
getPurchaseTime()
وgetSku()
وgetPurchaseToken()
الخاصة بالعنصر إلى خادم الخلفية للبحث عن البيانات الوصفية وربط البيانات الوصفية
بالرمز المميّز للشراء، ومواصلة معالجة عملية الشراء.Purchase
يُرجى العِلم أنّ
الطابع الزمني الذي خزّنته في البداية لن يتطابق تمامًا مع القيمة من
getPurchaseTime()
الخاصة بالعنصر Purchase
،
لذا ستحتاج إلى مقارنتهما بطريقة تقريبية. على سبيل المثال، يمكنك التحقق مما إذا كانت
القيم ضمن فترة زمنية معينة من بعضها البعض.