يتضمّن هذا الموضوع ملاحظات الإصدار الخاصة بـ Google Play Billing Library.
الإصدار 7.0.0 من Google Play Billing Library (14/05/2024)
تم الآن توفير الإصدار 7.0.0 من Google Play Billing Library وإضافات Kotlin المتوفرة.
ملخص التغييرات
تمت إضافة واجهات برمجة تطبيقات لإتاحة اشتراكات الأقساط.
- تمت إضافة
ProductDetails.InstallmentPlanDetails
. لخطط الأقساط الأساسية التي يمكن للمستخدمين شراؤها واجهة برمجة التطبيقات هذه يساعد تطبيقك في التعرّف على خطة الأقساط وإعدادات الالتزام الخاصة بها. لتقديم معلومات ذات صلة للمستخدم. لمزيد من المعلومات، يُرجى مراجعة دليل أقساط الاشتراك
- تمت إضافة
تمت إضافة
PendingPurchasesParams
. وBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
لاستبدالBillingClient.Builder.enablePendingPurchases()
، التي تم إيقافها نهائيًا في هذا الإصدار- يعادل
enablePendingPurchases()
الذي تم إيقافه من الناحية الوظيفيةenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build())
- يعادل
تمت إضافة واجهات برمجة تطبيقات لإتاحة المعاملات غير المكتملة لخطط الدفع المُسبَق للاشتراك:
- استخدام
PendingPurchasesParams.Builder.enablePrepaidPlans()
معBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)
لتفعيل المعاملات المعلّقة لخطط الاشتراك المُسبَق عند الإضافة الدعم، يُرجى التأكّد من أنّ تطبيقك يدير الاشتراك بشكلٍ صحيح دورات الحياة. لمزيد من المعلومات، يُرجى مراجعة دليل عمليات الشراء المعلّقة - تمت إضافة
Purchase.PendingPurchaseUpdate
. وPurchase.getPendingPurchaseUpdate()
لاسترداد عمليات إضافة الرصيد المعلّقة أو الترقية أو الرجوع إلى رصيد حالي اشتراكك.
- استخدام
تمت إزالة
BillingClient.Builder.enableAlternativeBilling()
،AlternativeBillingListener
, وAlternativeChoiceDetails
.- يجب أن يستخدم المطوّرون
BillingClient.Builder.enableUserChoiceBilling()
معUserChoiceBillingListener
وUserChoiceDetails
في معاودة اتصال المستمع بدلاً من ذلك.
- يجب أن يستخدم المطوّرون
تمت إزالة
BillingFlowParams.ProrationMode
،BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
, وBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.- يجب أن يستخدم المطوّرون
BillingFlowParams.SubscriptionUpdateParams.ReplacementMode
معBillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)
بدلاً من ذلك. BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode()
.BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode()
.
- يجب أن يستخدم المطوّرون
تمت إزالة
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken()
.- على المطوّرين استخدام
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)
بدلاً من ذلك.
- على المطوّرين استخدام
BillingClient.queryPurchaseHistoryAsync()
تم إيقافها وستتم إزالتها في إصدار مستقبلي. على المطوّرين يمكنك استخدام البدائل التالية بدلاً من ذلك:- عمليات الشراء التي تم إقرارها وفي انتظار المراجعة: استخدام
BillingClient.queryPurchasesAsync()
لاسترجاع عمليات الشراء النشطة - عمليات الشراء الاستهلاكية: يجب على المطوّرين تتبع عمليات الشراء المستهلكة على خوادمهم الخاصة.
- عمليات الشراء التي تم إلغاؤها: استخدِم عمليات الشراء المُلغاة واجهة برمجة التطبيقات لمطور البرامج.
- لمزيد من التفاصيل، يُرجى مراجعة سجلّ الشراء لطلب البحث
- عمليات الشراء التي تم إقرارها وفي انتظار المراجعة: استخدام
BillingFlowParams.ProductDetailsParams.setOfferToken()
الآن تطرح استثناءً عندما يحدد المطورون قيمةofferToken
فارغة.تم تعديل
minSdkVersion
إلى 21 وtargetSdkVersion
إلى 34.
الإصدار 6.2.1 من Google Play Billing Library (16/04/2024)
أصبح الإصدار 6.2.1 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
- تم إصلاح الخطأ في
BillingClient.showAlternativeBillingOnlyInformationDialog()
حيث قد لا يتم استدعاءAlternativeBillingOnlyInformationDialogListener
في بعض الحالات عند اكتمال مربّع الحوار.
الإصدار 6.2.0 من Google Play Billing Library (06/03/2024)
أصبح الإصدار 6.2.0 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
- إضافة واجهات برمجة التطبيقات لإتاحة العروض الترويجية الخارجية
- تمت إضافة
BillingClient.Builder.enableExternalOffer()
. لإتاحة إمكانية تقديم عروض ترويجية خارجية - تمت إضافة
BillingClient.isExternalOfferAvailableAsync()
. للتحقّق من مدى توفُّر وظائف العروض الترويجية الخارجية - تمت إضافة
BillingClient.showExternalOfferInformationDialog()
. لعرض مربّع حوار المعلومات للمستخدمين قبل توجيههم إلى خارج التطبيق - تمت إضافة
BillingClient.createExternalOfferReportingDetailsAsync()
لإنشاء حمولة مطلوبة لتسجيل المعاملات التي تتم من خلال العروض الترويجية الخارجية.
- تمت إضافة
الإصدار 6.1.0 من Google Play Billing Library (14/11/2023)
أصبح الإصدار 6.1.0 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
- إضافة واجهات برمجة تطبيقات لإتاحة استخدام نظام الفوترة البديل فقط (أي بدون منح المستخدم حرية الاختيار)
- تمت إضافة
BillingClient.Builder.enableAlternativeBillingOnly()
. لإتاحة إمكانية عرض نظام فوترة بديل فقط من الناحية الوظيفية - تمت إضافة
BillingClient.isAlternativeBillingOnlyAvailableAsync()
. للتحقّق من إمكانية تقديم نظام فوترة بديل فقط. - تمت إضافة
BillingClient.showAlternativeBillingOnlyInformationDialog()
. لعرض مربّع حوار معلومات لإعلام المستخدمين عند توفُّر نظام فوترة بديل فقط يتم استخدامها. - تمت إضافة
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()
لإنشاء حمولة بيانات مطلوبة للإبلاغ عن المعاملات التي تتم من خلال نظام الفوترة البديل فقط.
- تمت إضافة
- تم تعديل واجهات برمجة التطبيقات لميزة "الفوترة حسب اختيار المستخدم".
- تمت إضافة
UserChoiceBillingListener
. لاستبدال Alternative BillingListener. التي تم وضع علامة عليها على أنها متوقفة نهائيًا. - تمت إضافة
UserChoiceDetails
. لاستبدالAlternativeChoiceDetails
التي تم وضع علامة عليها على أنها متوقفة نهائيًا. - تمت إضافة
BillingClient.Builder.enableUserChoiceBilling()
. لاستبدالBillingClient.Builder.enableAlternativeBilling()
التي تم وضع علامة عليها على أنها متوقفة نهائيًا.
- تمت إضافة
- تمت إضافة
BillingClient.getBillingConfigAsync()
لاسترداد البلد على Google Play.
الإصدار 6.0.1 من Google Play Billing Library (22/06/2023)
أصبح الإصدار 6.0.1 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
يجب تحديث "مكتبة الفوترة في Play" لتصبح متوافقة مع الإصدار 14 من نظام التشغيل Android.
الإصدار 6.0 من Google Play Billing Library (10/05/2023)
الإضافة 6.0.0 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
تمت إضافة جهة اتصال جديدة
ReplacementMode
تعداد للاستبدالProrationMode
يُرجى العِلم أنّ ميزة "
ProrationMode
" لا تزال متاحة للتوافق مع الأنظمة القديمة. الأسباب.تمت إزالة مُعرّف الطلب لـ
PENDING
عمليات الشراء.في السابق، كان يتم إنشاء مُعرّف الطلب دائمًا حتى إذا كانت عملية الشراء معلّقة. بدءًا من الإصدار 6.0.0، لن يتم إنشاء مُعرّف طلب عمليات الشراء المعلّقة، وبالنسبة إلى عمليات الشراء هذه، ستتم تعبئة معرّف الطلب بعد نقل عملية الشراء إلى
PURCHASED
الولاية.تمت إزالة
queryPurchases
وlaunchPriceConfirmationFlow
طريقة.الطريقتان
queryPurchases
وlaunchPriceConfirmationFlow
اللذان لهما تم وضع علامة عليها سابقًا على أنّها متوقفة نهائيًا في خدمة "الفوترة في Play" Library 6.0.0. يجب أن يستخدم المطوّرونqueryPurchasesAsync
بدلاً منqueryPurchases
. بالنسبة إلىlaunchPriceConfirmationFlow
بديل، اتّبِع الخطوات التالية: راجِع تغييرات الأسعار.تمت إضافة رمز استجابة جديد لخطأ في الشبكة.
هو رمز استجابة جديد لخطأ في الشبكة،
NETWORK_ERROR
، قد تمت إضافته بدءًا من الإصدار 6.0.0 من PBL. يُعرَض هذا الرمز عندما بسبب مشكلة في الاتصال بالشبكة. اتصالات الشبكة هذه تم الإبلاغ عن الأخطاء سابقًا على أنهاSERVICE_UNAVAILABLE
.معدَّلة
SERVICE_UNAVAILABLE
أوSERVICE_TIMEOUT
بدءًا من الإصدار 6.0.0 من PBL، ستكون الأخطاء الناتجة عن انتهاء مهلة المعالجة تم عرضها على أنّها
SERVICE_UNAVAILABLE
بدلاً من قيمةSERVICE_TIMEOUT
الحالية.لا يتغير السلوك في الإصدارات السابقة من PBL.
تمّت إزالته.
SERVICE_TIMEOUT
بدءًا من الإصدار 6.0.0 من PBL، لن يتم إرجاع
SERVICE_TIMEOUT
. ستظل الإصدارات السابقة من PBL تعرض هذا الرمز.تمت إضافة تسجيل إضافي.
يتضمّن الإصدار 6 من Play Billing Library معلومات إضافية من خلال التسجيل: إحصاءات حول استخدام واجهة برمجة التطبيقات (مثل النجاح والفشل) واتصال الخدمة المشكلات. سيتم استخدام هذه المعلومات لتحسين أداء Play مكتبة الفوترة وتقديم دعم أفضل للأخطاء.
الإصدار 5.2.1 من Google Play Billing Library (22/06/2023)
أصبح الإصدار 5.2.1 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
يجب تحديث "مكتبة الفوترة في Play" لتصبح متوافقة مع الإصدار 14 من نظام التشغيل Android.
الإصدار 5.2 من Google Play Billing Library (06/04/2023)
أصبح الإصدار 5.2.0 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
ملخص التغييرات
- إضافة صفوف لإتاحة إجراءات الفوترة البديلة على الأجهزة الجوّالة أو الأجهزة اللوحية المستخدمون في كوريا الجنوبية:
- تمت الإضافة
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()
لتحديد معرِّف المعاملة الخارجي للاشتراك الأصلي. - تمت إضافة
BillingClient.Builder.enableAlternativeBilling()
. للسماح للمستخدمين في كوريا الجنوبية بتحديد خيار نظام فوترة بديل.
الإصدار 5.1 من Google Play Billing Library (31/10/2022)
تم الآن توفير الإصدار 5.1.0 من Google Play Billing Library وإضافات Kotlin المتوفرة.
يحتوي هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- تمت إضافة طريقة
ProductDetails.SubscriptionOfferDetails.getOfferId()
لاسترداد معرّف العرض. - تمت إضافة طريقة
ProductDetails.SubscriptionOfferDetails.getBasePlanId()
لاسترداد رقم تعريف الخطة الأساسية. - تم تعديل
targetSdkVersion
إلى 31.
الإصدار 5.0 من Google Play Billing Library (11/05/2022)
أصبح الإصدار 5.0.0 من Google Play Billing Library وإضافات Kotlin متاحة الآن المتوفرة.
يحتوي هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- تم تقديم نموذج جديد للاشتراكات، بما في ذلك الكيانات الجديدة يمكنك من إنشاء عروض متعددة منتَج متوفّر عند الاشتراك. لمزيد من المعلومات، يُرجى الاطّلاع على migration guide.
- تمت الإضافة
BillingClient.queryProductDetailsAsync()
لاستبدالBillingClient.querySkuDetailsAsync()
. - تمت إضافة طريقة
setIsOfferPersonalized()
للأسعار المخصّصة في الاتحاد الأوروبي. متطلبات الإفصاح عن المعلومات. لمزيد من المعلومات عن كيفية استخدام هذه الطريقة، يُرجى الاطّلاع على أشِر إلى سعر مخصّص. - تمت إزالة
queryPurchases()
، الذي سبق أن تم إيقافه واستبداله تم تقديم queryPurchasesAsync في الإصدار 4.0.0 من Google Play Billing Library. - تم إيقاف
launchPriceChangeFlow
نهائيًا وستتم إزالته في المستقبل. . لمعرفة المزيد من المعلومات حول الحلول البديلة، يمكنك الاطّلاع على ابدأ عملية تأكيد تغيير السعر. - تمّت إزالته.
setVrPurchaseFlow()
، الذي كان يُستخدم سابقًا عند إنشاء مثيل لتدفق الشراء. في الإصدارات السابقة، تمت إعادة توجيه المستخدم إلى هذه الطريقة إلى إكمال عملية الشراء على جهاز Android بعد إزالة هذه الطريقة، سيكمل المستخدمون عملية الشراء من خلال تدفق الشراء القياسي.
الإصدار 4.1 من Google Play Billing Library (23/02/2022)
تم الآن توفير الإصدار 4.1.0 من Google Play Billing Library والإضافات Kotlin المتوفرة.
يحتوي هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- تمت إضافة
BillingClient.showInAppMessages()
. للمساعدة في التعامل مع حالات رفض دفعات الاشتراك لمزيد من المعلومات حول كيف لاستخدام المراسلة داخل التطبيق في التعامل مع حالات رفض دفعات الاشتراكات، يمكنك الاطّلاع على التعامل مع حالات رفض الدفعات:
الإصدار 4.0 من Google Play Billing Library (18/05/2021)
تم الآن توفير الإصدار 4.0.0 من Google Play Billing Library وإضافات Kotlin المتوفرة.
ملخص التغييرات
تمت إضافة
BillingClient.queryPurchasesAsync()
ليحل محلBillingClient.queryPurchases()
والذي ستتم إزالته في إصدار مستقبلي.تمت إضافة وضع استبدال الاشتراك الجديد
IMMEDIATE_AND_CHARGE_FULL_PRICE
.تمت إضافة طريقة
BillingClient.getConnectionState()
لاسترداد حالة اتصال Play Billing Library.تم تعديل Javadoc والتنفيذ للإشارة إلى سلسلة المحادثات التي يمكن استدعاء طريقة منها ونتائج سلاسل المحادثات التي يتم نشرها.
تمت إضافة
BillingFlowParams.Builder.setSubscriptionUpdateParams()
كطريقة جديدة لبدء تعديلات الاشتراكات. يحل ذلك محلBillingFlowParams#getReplaceSkusProrationMode
وBillingFlowParams#getOldSkuPurchaseToken
وBillingFlowParams#getOldSku
وBillingFlowParams.Builder#setReplaceSkusProrationMode
وBillingFlowParams.Builder#setOldSku
التي تمت إزالتها.تمت إضافة
Purchase.getQuantity()
وPurchaseHistoryRecord.getQuantity()
.تمت إضافة
Purchase#getSkus()
وPurchaseHistoryRecord#getSkus()
. وهي تحل محلPurchase#getSku
وPurchaseHistoryRecord#getSku
اللذين تمت إزالتهما.تمت إزالة
BillingFlowParams#getSku
وBillingFlowParams#getSkuDetails
وBillingFlowParams#getSkuType
.
الإصدار 3.0.3 من Google Play Billing Library (12/03/2021)
الإصدار 3.0.3 من Google Play Billing Library والإضافة بلغة Kotlin وUnity هذا المكوّن الإضافي متاحة الآن.
إصلاح أخطاء Java وKotlin
- إصلاح تسرّب الذاكرة عند
endConnection()
البيانات. - حل مشكلة عند استخدام Google Play Billing Library من خلال التطبيقات التي تستخدم
وضع إطلاق مهمة واحدة. حاسمة
onPurchasesUpdated()
سيتم تشغيل معاودة الاتصال عند استئناف التطبيق من مشغّل Android وكان مربّع حوار الفوترة ظاهرًا قبل تعليقه.
إصلاح أخطاء Unity
- يجب التحديث إلى الإصدار 3.0.3 من Java لإصلاح تسرب الذاكرة وحل المشكلة التي تمنع عمليات الشراء عند استئناف أحد التطبيقات من مشغّل تطبيقات Android والفوترة كان هناك مربّع حوار قبل تعليقه.
الإصدار 3.0.2 من Google Play Billing Library (24/11/2020)
يتوفّر الآن الإصدار 3.0.2 من Google Play Billing Library والإضافة Kotlin.
إصلاح الأخطاء
- تم إصلاح خطأ في إضافة Kotlin حيث يخفق الكوروتين مع ظهور الخطأ "سبق أن تم استئنافه".
- تم إصلاح المراجع التي لم يتم حلها عند استخدام إضافة Kotlin مع الإصدار 1.4 من مكتبة kotlinx.coroutines والإصدارات الأحدث.
الإصدار 3.0.1 من Google Play Billing Library (30/09/2020)
يتوفّر الآن الإصدار 3.0.1 من Google Play Billing Library والإضافة Kotlin.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يؤدي إلى إيقاف التطبيق واستعادته أثناء عملية الفوترة.
قد لا يتم استدعاء "
PurchasesUpdatedListener
" لعرض نتيجة الشراء.
الإصدار 3.0 من Google Play Billing Library (08/06/2020)
الإصدار 3.0.0 من Google Play Billing Library، إضافة Kotlin، المكوّن الإضافي Unity متاح الآن.
ملخص التغييرات
- تمت إزالة دعم رموز التخزين التعريفية التي تضم مكافآت.
- تمت إزالة المعلمتَين
ChildDirected
وUnderAgeOfConsent
. - تمت إزالة طرق الحمولة المتوقّفة نهائيًا الخاصة بالمطوّرين.
- تمت إزالة الطرق المتوقّفة نهائيًا
BillingFlowParams.setAccountId()
وBillingFlowParams.setDeveloperId()
. - تمت إزالة الطرق المتوقّفة نهائيًا
BillingFlowParams.setOldSkus(String oldSku)
وBillingFlowParams.addOldSku(String oldSku)
. - تمت إضافة تعليقات توضيحية تشير إلى إمكانية قبول القيم.
إصلاح الأخطاء
SkuDetails.getIntroductoryPriceCycles()
تعرض الآنint
بدلاً منString
.- تم إصلاح خطأ التعامل مع تدفق الفوترة على أنه يحتوي على معلَمات إضافية حتى لو لم يتم تعيين معلمات إضافية.
الإصدار 2.2.1 من Google Play Billing Library (20/05/2020)
أصبح الإصدار 2.2.1 من مكتبة "الفوترة في Google Play" متاحًا الآن.
إصلاح الأخطاء
- تم تحديث الإصدار التلقائي من مكتبة فوترة Java Play والذي تعتمد إضافة Kotlin على تلك.
الإصدار 2.2.0 من Google Play Billing Library ودعم Unity (23/03/2020)
يوفّر الإصدار 2.2.0 من خدمة "الفوترة في Google Play" وظائف تساعد يتأكّد المطوّرون من أنّ عمليات الشراء مصدرها المستخدم الصحيح. هذه التغييرات ستحل الحاجة إلى إنشاء حلول مخصصة بناءً على حمولة البيانات لمطور البرامج. بالنسبة في إطار هذا التحديث، تم إيقاف وظيفة حمولة البيانات في المطوّر. وستتم إزالته في إصدار مستقبلي. لمزيد من المعلومات، بما في ذلك البدائل الموصى بها، فراجع حمولة المطوِّر
الإصدار 2 من Google Play Billing Library for Unity
بالإضافة إلى إصدارات Java وKotlin الحالية من خدمة "الفوترة في Google Play" المكتبة 2، أطلقنا نسخة من المكتبة لاستخدامها مع Unity. وضع اللعبة يمكن للمطوّرين الذين يستخدمون واجهة برمجة التطبيقات Unity لعمليات الشراء داخل التطبيق الترقية الآن الاستفادة من جميع ميزات Google Play Billing Library 2 عمليات الترقية اللاحقة إلى الإصدارات المستقبلية من Google Play Billing Library كثيرًا.
لمزيد من المعلومات، يُرجى مراجعة استخدام خدمة "الفوترة في Google Play" مع Unity
ملخص التغييرات
- مكتبة فوترة Google Play في Java
- ضِمن
AcknowledgePurchaseParams
، متوقفة نهائيًاsetDeveloperPayload()
أوgetDeveloperPayload()
الطرق. - ضِمن
ConsumeParams
، متوقفة نهائيًاsetDeveloperPayload()
أوgetDeveloperPayload()
الطرق. - ضِمن
BillingFlowParams
، تمت إعادة تسميتهsetAccountId()
إلىsetObfuscatedAccountId()
, ووثّقت قيودًا على الطول مكوَّنة من 64 حرفًا وقيودًا. عدم السماح بمعلومات تحديد الهوية الشخصية (PII) في هذا الحقل.setAccountId()
تم وضع علامة عليها على أنها متوقفة وستتم إزالتها في لإصدار المكتبة المستقبلي. - في "
BillingFlowParams
"، تمت الإضافةsetObfuscatedProfileId()
والذي يعمل بشكل مشابهsetObfuscatedAccountId()
لمزيد من المعلومات، يُرجى مراجعة تعديلات البيانات الأساسية للمطوّرين والبدائل - في
Purchase
، تمت إضافةgetAccountIdentifiers()
لعرض معرّفات الحسابات المشفَّرة التي تم تعيينها فيBillingFlowParams
- في
BillingClient
،loadRewardedSku()
تم وضع علامة عليها بأنّها متوقّفة نهائيًا كجزء من إيقاف رموز التخزين التعريفية التي تضم مكافأة. يمكنك العثور على مزيد من المعلومات عن عملية الإيقاف في مركز مساعدة Play Console
- ضِمن
الإصدار 2.1.0 من Google Play Billing Library وإصدار إضافة Kotlin 2.1.0 (10/12/2019)
الإصدار 2.1.0 من مكتبة "الفوترة في Google Play" وإضافة Kotlin الجديدة "متوفرة الآن". توفّر إضافة لغة البرمجة Kotlin في Play Billing Library أسلوبًا مفهومًا بدائل واجهة برمجة التطبيقات لاستهلاك Kotlin، مع توفير ميزات أمان فارغة الكوروتينات. للاطّلاع على أمثلة الرموز، يُرجى مراجعة استخدام Google Play Billing Library
يحتوي هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- في
BillingFlowParams
، تم إيقافها نهائيًا فيsetOldSku(String oldSku)
وتم استبدالها بـsetOldSku(String oldSku, String purchaseToken)
، لإزالة الغموض عند تمتلك حسابات متعددة على الجهاز رمز التخزين التعريفي نفسه.
الإصدار 2.0.3 من Google Play Billing Library (05/08/2019)
يتوفّر الآن الإصدار 2.0.3 من مكتبة "الفوترة في Google Play".
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يفشل في
querySkuDetailsAsync()
أحيانًا عند استخدام الرمز يمكنكDEVELOPER_ERROR
بدلاً من عرض نتيجة ناجحة.
الإصدار 2.0.2 من Google Play Billing Library (08/07/2019)
يتوفّر الآن الإصدار 2.0.2 من مكتبة "الفوترة في Google Play". هذا الإصدار يحتوي على تعديلات على المستندات المرجعية ولا يغيّر المكتبة الأخرى.
الإصدار 2.0.1 من Google Play Billing Library (06/06/2019)
يتوفّر الآن الإصدار 2.0.1 من مكتبة "الفوترة في Google Play". هذا الإصدار على التغييرات التالية.
إصلاح الأخطاء
- تم إصلاح الخطأ الذي كان يتم من خلاله عرض رسائل تصحيح الأخطاء كرسائل تصحيح الأخطاء
null
في بعض الحالات. - تم إصلاح مشكلة تسرُّب الذاكرة المحتملة.
الإصدار 2.0 من Google Play Billing Library (07/05/2019)
يتوفّر الآن الإصدار 2.0 من "مكتبة الفوترة في Google Play". هذا الإصدار على التغييرات التالية.
يجب الإقرار باستلام عمليات الشراء في غضون ثلاثة أيام
يتيح Google Play شراء المنتجات من داخل تطبيقك (داخل التطبيق).
خارج التطبيق (خارج التطبيق). لكي يضمن Google Play
تجربة شراء متسقة بغض النظر عن المكان الذي يشتري فيه المستخدم
المنتج، يجب الإقرار بجميع عمليات الشراء التي تم استلامها من خلال Google Play
واجهة Billing Library في أقرب وقت ممكن بعد منح الإذن للمستخدم. في حال حذف
عدم إقرارك بعملية شراء خلال ثلاثة أيام، سيتم تلقائيًا تحديد
استرداد الأموال، وإلغاء عملية الشراء من خلال Google Play. بالنسبة
المعاملات المعلّقة (الجديدة في الإصدار 2.0)، والفترة التي تبلغ ثلاثة أيام
تبدأ عملية الشراء عند انتقال عملية الشراء إلى حالة PURCHASED
، ولا ينطبق ذلك.
عندما تكون عملية الشراء في حالة PENDING
.
في ما يتعلق بالاشتراكات، عليك الإقرار بأي عملية شراء تتطلّب عملية شراء جديدة. الرمز المميز. هذا يعني أنّ جميع عمليات الشراء الأولية وتغييرات الخطة وعمليات إعادة الاشتراك بحاجة إلى الموافقة، لكن ليس عليك الإقرار بعمليات التجديد اللاحقة. إلى لتحديد ما إذا كانت عملية الشراء بحاجة إلى إقرار، يمكنك الاطّلاع على الإقرار في عملية الشراء.
يتضمن الكائن Purchase
الآن العنصر
isAcknowledged()
تشير إلى ما إذا تم الإقرار بعملية الشراء. بالإضافة إلى ذلك،
واجهة Google Play Developer API تتضمّن قيمًا منطقية للإقرار لكل من
Purchases.products
وPurchases.subscriptions
قبل الإقرار بعملية الشراء، احرص على استخدام الطرق التالية لتحديد ما إذا
تم الإقرار بعملية الشراء بالفعل.
يمكنك تأكيد عملية الشراء باستخدام إحدى الطرق التالية:
- بالنسبة إلى المنتجات الاستهلاكية، استخدِم السمة
consumeAsync()
، المتاحة في واجهة برمجة تطبيقات العميل. - بالنسبة إلى المنتجات التي لا يتم استهلاكها، يمكنك استخدام
acknowledgePurchase()
، وهي متوفرة في واجهة برمجة تطبيقات العميل. - يتوفّر أيضًا طريقة
acknowledge()
جديدة في Server API.
تمت إزالة BillingFlowParams.setSku() .
تمت إزالة طريقة BillingFlowParams#setSku()
التي تم إيقافها نهائيًا
في هذا الإصدار. قبل عرض المنتجات في مسار الشراء، يجب الآن طلب
BillingClient.querySkuDetailsAsync()
،
وتمرير الناتج
اعتراض SkuDetails
على
BillingFlowParams.Builder.setSkuDetails()
للاطّلاع على أمثلة الرموز، يُرجى مراجعة استخدام Google Play Billing Library
حمولة البيانات الخاصة بالمطوّر متوافقة
يوفِّر الإصدار 2.0 من مكتبة فوترة Google Play دعمًا لمطوّري البرامج حمولة البيانات: سلاسل عشوائية يمكن إرفاقها بعمليات الشراء. يمكنك إرفاق مَعلمة حمولة بيانات للمطوِّر بعملية شراء، ولكن فقط عند إجراء عملية الشراء الاعتراف به أو استهلاكه. يختلف ذلك عن حمولة المطوّرين في AIDL، حيث يمكن تحديد حمولة البيانات عند بدء مسار الشراء. لأنّ عمليات الشراء يمكن الآن تشغيلها من خارج تطبيقك، سيؤدي هذا التغيير ويضمن أن لديك دائمًا فرصة لإضافة حمولة إلى عمليات الشراء.
للوصول إلى الحمولة في المكتبة الجديدة، تتضمّن عناصر Purchase
الآن
getDeveloperPayload()
.
عروض متّسقة
عند تقديم رمز تخزين تعريفي مخفَّض، يُرجع Google Play الآن السعر الأصلي الذي يبلغ لكي تتمكّن من إعلام المستخدمين بأنّهم يحصلون على خصم
يحتوي العنصر SkuDetails
على سمتَين
الطرق الجديدة لاسترداد سعر رمز التخزين التعريفي الأصلي:
getOriginalPriceAmountMicros()
- السعر الأصلي غير المنسَّق لرمز التخزين التعريفي قبل الخصم.getOriginalPrice()
- يعرض السعر الأصلي مع تنسيق عملة إضافي.
المعاملات المعلّقة:
في حال استخدام الإصدار 2.0 من مكتبة "الفوترة في Google Play"، عليك تقديم الدعم عمليات الشراء التي يلزم فيها اتخاذ إجراء إضافي قبل منح الاستحقاق. بالنسبة على سبيل المثال، قد يختار المستخدم شراء المنتج داخل التطبيق في متجر الدفع نقدًا. يعني ذلك أنّ المعاملة قد اكتملت خارج تطبيقك. ضِمن في هذا السيناريو، يجب ألّا تمنح المستخدِم أذونات الوصول إلا بعد إكماله المعاملة.
لتفعيل عمليات الشراء المُعلّقة، يُرجى الاتصال
enablePendingPurchases()
كجزء من تهيئة تطبيقك.
استخدام Purchase.getPurchaseState()
لتحديد ما إذا كانت حالة الشراء PURCHASED
أو PENDING
. لاحظ أن
يجب ألا تمنح الأذونات إلّا عندما تكون الولاية هي PURCHASED
. عليك
يمكنك التحقّق من تحديثات الحالة Purchase
من خلال اتّباع الخطوات التالية:
- عند بدء تشغيل التطبيق، اتصل
BillingClient.queryPurchases()
لاسترداد قائمة المنتجات غير الاستهلاكية المرتبطة بالمستخدم. - طلب
Purchase.getPurchaseState()
على كل عنصرPurchase
تم إرجاعه. - نفِّذ
onPurchasesUpdated()
. للاستجابة للتغييرات على عناصرPurchase
.
بالإضافة إلى ذلك، تتضمّن Google Play Developer API حالة PENDING
.
مقابل Purchases.products
.
لا تتوفر المعاملات المعلّقة
الاشتراكات.
يقدِّم هذا الإصدار أيضًا نوعًا جديدًا من الإشعارات في الوقت الفعلي للمطوّرين،
OneTimeProductNotification
يحتوي نوع الإشعار هذا على رسالة واحدة
التي تكون قيمتها إما ONE_TIME_PRODUCT_PURCHASED
أو
ONE_TIME_PRODUCT_CANCELED
يتم إرسال هذا النوع من الإشعارات لعمليات الشراء فقط.
المرتبطة بطرق الدفع المتأخرة، مثل الدفع النقدي.
عند الإقرار بعمليات الشراء المُعلّقة، احرص على الإقرار فقط عند
حالة الشراء هي PURCHASED
وليست PENDING
.
التغييرات في واجهة برمجة التطبيقات
يتضمّن الإصدار 2.0 من Google Play Billing Library تغييرات متعدّدة في واجهة برمجة التطبيقات دعم الميزات الجديدة وتوضيح الوظائف الحالية.
ConumeAsync
consumeAsync()
يستغرق الآن
كائن ConsumeParams
بدلاً من purchaseToken
. يحتوي ConsumeParams
على purchaseToken
كـ
بالإضافة إلى حمولة اختيارية للمطور.
تمت إزالة الإصدار السابق من "consumeAsync()
" في هذا الإصدار.
سجلّ الشراء غير متزامن مع طلب البحث
لتقليل الالتباس،
queryPurchaseHistoryAsync()
تُرجع الآن
PurchaseHistoryRecord
بدلاً من كائن Purchase
. كائن PurchaseHistoryRecord
هو
هي نفسها كائن Purchase
، غير أنّها لا تعكس سوى القيم التي تعرضها
queryPurchaseHistoryAsync()
ولا يحتوي على autoRenewing
،
orderId
، وpackageName
حقلاً لاحظ أنه لم يحدث أي تغيير في
البيانات التي تم عرضها - تعرض queryPurchaseHistoryAsync()
البيانات نفسها
من قبل.
القيم المعروضة في BillingResult
تعرض واجهات برمجة التطبيقات التي كانت تعرض في السابق قيمة عدد صحيح BillingResponse
تعرض الآن
BillingResult
الخاص بك. يحتوي BillingResult
على العدد الصحيح BillingResponse
بالإضافة إلى
سلسلة لتصحيح الأخطاء التي يمكنك استخدامها لتشخيص الأخطاء. تستخدم سلسلة تصحيح الأخطاء en-US.
وليس الغرض منه عرضه للمستخدمين.
إصلاح الأخطاء
SkuDetails.getIntroductoryPriceAmountMicros()
تُرجع الآنlong
بدلاً منString
.
الإصدار 1.2.2 من Google Play Billing Library (07/03/2019)
أصبح الإصدار 1.2.2 من مكتبة "الفوترة في Google Play" متاحًا الآن. هذا الإصدار على التغييرات التالية.
إصلاح الأخطاء
- تم إصلاح مشكلة سلاسل المحادثات التي تم طرحها في الإصدار 1.2.1. لم تعُد المكالمات في الخلفية محظورة. سلسلة التعليمات الرئيسية.
تغييرات أخرى
- على الرغم من أنّه ما زال يوصى باستخدام سلسلة التعليمات الرئيسية، يمكنك الآن إنشاء مثيل Google Play Billing Library من سلسلة محادثات في الخلفية.
- تم نقل النسخة الفورية بالكامل إلى سلسلة المحادثات في الخلفية لتقليل الأكثر احتمالاً للتسبب في أخطاء ANR.
الإصدار 1.2.1 من Play Billing Library (04/03/2019)
يتوفّر الآن الإصدار 1.2.1 من مكتبة "الفوترة في Google Play". هذا الإصدار على التغييرات التالية.
التغييرات الرئيسية
- تمت إضافة دعم للمنتجات التي تتم مكافأتها. لمزيد من المعلومات حول خيارات تحقيق الربح، يُرجى مراجعة أضِف ميزات خاصة بالمنتجات التي تضم مكافآت.
تغييرات أخرى
- تمت إضافة أدوات إنشاء عامة لـ
PurchasesResult
وSkuDetailsResult
لتنفيذها الاختبار أسهل. - يمكن لكائنات
SkuDetails
استخدام طريقة جديدة، وهيgetOriginalJson()
. - تتم الآن معالجة جميع مكالمات خدمة AIDL من خلال سلاسل محادثات في الخلفية.
إصلاح الأخطاء
- لم تعُد أدوات معالجة معاودة الاتصال فارغة في واجهات برمجة التطبيقات العامة.
الإصدار 1.2 من Google Play Billing Library (18/10/2018)
يتوفّر الآن الإصدار 1.2 من Google Play Billing Library. هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- تم ترخيص Google Play Billing Library الآن بموجب اتفاقية ترخيص "حزمة تطوير البرامج لنظام Android"
- تمت إضافة واجهة برمجة التطبيقات
launchPriceChangeConfirmationFlow
التي تطلب من المستخدمين مراجعة تغيير معلّق في سعر الاشتراك - تمت إضافة الدعم لوضع تقسيم تناسبي جديد،
DEFERRED
، عند الترقية أو الرجوع إلى إصدار سابق من اشتراك المستخدم. - في الصف
BillingFlowParams
، تم استبدالsetSku()
بـsetSkuDetails()
. - إصلاح أخطاء بسيطة وإدخال تحسينات على الرمز
تأكيد تغيير السعر
يمكنك الآن تغيير سعر اشتراك في Google Play Console وإرسال طلب على المستخدمين مراجعة السعر الجديد والموافقة عليه عند دخولهم إلى تطبيقك.
لاستخدام واجهة برمجة التطبيقات هذه، يمكنك إنشاء عنصر PriceChangeFlowParams
باستخدام
skuDetails
للمنتج المتوفّر عند الاشتراك، ثم أجرِ الاتصال
launchPriceChangeConfirmationFlow()
نفِّذ
PriceChangeConfirmationListener
للتعامل مع النتيجة عند تغيُّر السعر.
سينتهي تدفق التأكيد، كما هو موضح في مقتطف الرمز التالي:
Kotlin
val priceChangeFlowParams = PriceChangeFlowParams.newBuilder() .setSkuDetails(skuDetailsOfThePriceChangedSubscription) .build() billingClient.launchPriceChangeConfirmationFlow(activity, priceChangeFlowParams, object : PriceChangeConfirmationListener() { override fun onPriceChangeConfirmationResult(responseCode: Int) { // Handle the result. } })
Java
PriceChangeFlowParams priceChangeFlowParams = PriceChangeFlowParams.newBuilder() .setSkuDetails(skuDetailsOfThePriceChangedSubscription) .build(); billingClient.launchPriceChangeConfirmationFlow(activity, priceChangeFlowParams, new PriceChangeConfirmationListener() { @Override public void onPriceChangeConfirmationResult(int responseCode) { // Handle the result. } });
خطوات تأكيد تغيير السعر تعرض مربّع حوار يتضمّن الأسعار الجديدة
المستخدم، فيطلب من المستخدمين قبول السعر الجديد. يُرجع هذا التدفق
رمز الاستجابة من النوع
BillingClient.BillingResponse
وضع التقسيم الجديد
عند ترقية اشتراك مستخدم أو الرجوع إلى إصدار سابق، يمكنك استخدام طريقة نسبية جديدة
الوضع، DEFERRED
. يعدِّل هذا الوضع اشتراك المستخدم في المرة التالية.
تجديد الاشتراك. لمعرفة المزيد من المعلومات عن طريقة ضبط وضع التقسيم هذا، اطّلِع على مقالة ضبط التناسب.
.
طريقة جديدة لضبط تفاصيل رمز التخزين التعريفي
في الفئة BillingFlowParams
، تم إيقاف طريقة setSku()
نهائيًا.
يهدف هذا التغيير إلى تحسين مسار "الفوترة في Google Play".
عند إنشاء نسخة جديدة من "BillingFlowParams
" في الفوترة داخل التطبيقات
ننصحك بالعمل مع كائن JSON مباشرةً باستخدام
setSkuDetails()
، كما هو موضح في مقتطف الرمز التالي:
في فئة Builder (المنشئ) في BillingFlowParams
، تم استخدام الطريقة setSku()
نهائيًا. بدلاً من ذلك، استخدِم الطريقة setSkuDetails()
كما هو موضّح في ما يلي
مقتطف الرمز يأتي الكائن الذي يتم تمريره إلى الكائن setSkuDetails()
من
querySkuDetailsAsync()
.
Kotlin
private lateinit var mBillingClient: BillingClient private val mSkuDetailsMap = HashMap<String, SkuDetails>() private fun querySkuDetails() { val skuDetailsParamsBuilder = SkuDetailsParams.newBuilder() mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build() ) { responseCode, skuDetailsList -> if (responseCode == 0) { for (skuDetails in skuDetailsList) { mSkuDetailsMap[skuDetails.sku] = skuDetails } } } } private fun startPurchase(skuId: String) { val billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap[skuId]) .build() }
Java
private BillingClient mBillingClient; private Map<String, SkuDetails> mSkuDetailsMap = new HashMap<>(); private void querySkuDetails() { SkuDetailsParams.Builder skuDetailsParamsBuilder = SkuDetailsParams.newBuilder(); mBillingClient.querySkuDetailsAsync(skuDetailsParamsBuilder.build(), new SkuDetailsResponseListener() { @Override public void onSkuDetailsResponse(int responseCode, List<SkuDetails> skuDetailsList) { if (responseCode == 0) { for (SkuDetails skuDetails : skuDetailsList) { mSkuDetailsMap.put(skuDetails.getSku(), skuDetails); } } } }); } private void startPurchase(String skuId) { BillingFlowParams billingFlowParams = BillingFlowParams.newBuilder() .setSkuDetails(mSkuDetailsMap.get(skuId)) .build(); }
الإصدار 1.1 من Play Billing Library (07/05/2018)
يتوفّر الآن الإصدار 1.1 من "مكتبة الفوترة في Google Play". هذا الإصدار على التغييرات التالية.
ملخص التغييرات
- تمت إضافة إمكانية تحديد وضع تقسيم الأرباح في
BillingFlowParams
. عند ترقية اشتراك حالي أو الرجوع إلى إصدار سابق منه - العلامة المنطقية
replaceSkusProration
فيBillingFlowParams
لم يعد مدعومًا. يمكنك استخدامreplaceSkusProrationMode
كبديل. launchBillingFlow()
يؤدي الآن إلى معاودة الاتصال للردود التي أخفقت.
تغييرات السلوك
يحتوي الإصدار 1.1 من Google Play Billing Library على السلوك التالي التغييرات.
يمكن للمطوّرين ضبط replaceSkusProrationMode
في الصف BillingFlowParams
.
توفّر ProrationMode
مزيدًا من التفاصيل حول نوع التقسيم عند ترقية مستوى خدمة أو الاشتراك في خطة أقلّ كلفة
اشتراك المستخدم.
Kotlin
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build()
Java
BillingFlowParams.newBuilder() .setSku(skuId) .setType(billingType) .setOldSku(oldSku) .setReplaceSkusProrationMode(replaceSkusProrationMode) .build();
في الوقت الحالي، يتيح Google Play أوضاع التقسيم التالية:
IMMEDIATE_WITH_TIME_PRORATION |
يسري الاستبدال على الفور، وسيتم تقسيم وقت انتهاء الصلاحية الجديد إضافتها أو تحصيل رسومها من المستخدم. هذا هو السلوك التلقائي الحالي. |
IMMEDIATE_AND_CHARGE_PRORATED_PRICE |
تسري عملية الاستبدال على الفور، وتظل دورة الفوترة كما هي. سعر
تحصيل الرسوم مقابل الفترة المتبقية
ملاحظة: هذا الخيار متاح فقط لترقية الاشتراكات. |
IMMEDIATE_WITHOUT_PRORATION |
يسري الاستبدال على الفور، وسيتم تحصيل السعر الجديد عند التكرار التالي. الوقت. وتظل دورة الفوترة كما هي. |
لم يعُد replaceSkusProration
متاحًا في الصف BillingFlowParams
.
كان المطوّرون قادرين على ضبط علامة منطقية لفرض رسوم نسبية مقابل الاشتراك
طلب ترقية. وبما أنّنا نتيح السمة ProrationMode
، التي تحتوي على معلومات أكثر تفصيلاً
تعليمات نسبية، فإن هذه العلامة المنطقية لم تعد متاحة.
يؤدي استخدام launchBillingFlow()
الآن إلى معاودة الاتصال للردود التي تعذّر تنفيذها.
ستشغِّل مكتبة الفوترة دائمًا PurhcasesUpdatedListener
معاودة الاتصال وإرجاع BillingResponse
بشكل غير متزامن. القيمة المعروضة المتزامنة BillingResponse
يتم الاحتفاظ به أيضًا.
إصلاح الأخطاء
- يتم الخروج بشكل صحيح مبكرًا في طرق غير متزامنة عندما تكون الخدمة غير متصلة.
Builder
لم تعد كائنات المَعلمات تؤدي إلى تبديل العناصر المصمَّمة.- المشكلة 68087141:
launchBillingFlow()
الآن إلى تشغيل معاودة الاتصال للردود التي أخفقت.
الإصدار 1.0 من Google Play Billing Library (19-09-2017، إعلان)
يتوفّر الآن الإصدار 1.0 من "مكتبة الفوترة في Google Play". هذا الإصدار على التغييرات التالية.
تغييرات مهمة
- إذن الفوترة المضمَّن في بيان المكتبة ليس من الضروري إضافة
يتوفّر إذن "
com.android.vending.BILLING
" في ملف بيان Android بعد الآن. - تمت إضافة أداة إنشاء جديدة إلى
BillingClient.Builder
. الصف. - تم تقديم نمط أداة إنشاء
SkuDetailsParams
. سيتم استخدامها في طرق الاستعلام عن رموز التخزين التعريفية. - تم تعديل عدة طرق لواجهة برمجة التطبيقات لتحقيق الاتساق (أسماء وسيطات الإرجاع نفسها وترتيبها).
تغييرات السلوك
يحتوي الإصدار 1.0 من Google Play Billing Library على السلوك التالي التغييرات.
فئة BillingClient.Builder
BillingClient.Builder
تتم الآن تهيئة عبر نمط newBuilder:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
يُطلق الآن على طريقة launchالفوترةFlow باستخدام فئة BillingFlowParams
لبدء عملية الفوترة لعملية شراء أو اشتراك، يجب
launchBillingFlow()
تتلقى طريقة
BillingFlowParams
المثيل الذي تم إعداده بمعلمات خاصة بالطلب:
Kotlin
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build() // Then, use the BillingFlowParams to start the purchase flow val responseCode = billingClient.launchBillingFlow(builder.build())
Java
BillingFlowParams.newBuilder().setSku(skuId) .setType(billingType) .setOldSku(oldSku) .build(); // Then, use the BillingFlowParams to start the purchase flow int responseCode = billingClient.launchBillingFlow(builder.build());
طريقة جديدة للاستعلام عن المنتجات المتاحة
وسيطات لـ queryPurchaseHistoryAsync()
وquerySkuDetailsAsync()
تم دمج الطرق في نمط أداة إنشاء:
Kotlin
val params = SkuDetailsParams.newBuilder() params.setSkusList(skuList) .setType(itemType) billingClient.querySkuDetailsAsync(params.build(), object : SkuDetailsResponseListener() { ... })
Java
SkuDetailsParams.Builder params = SkuDetailsParams.newBuilder(); params.setSkusList(skuList) .setType(itemType); billingClient.querySkuDetailsAsync(params.build(), new SkuDetailsResponseListener() {...})
يتم الآن إرجاع النتيجة عبر رمز النتيجة وقائمة
SkuDetails
بدلاً من فئة برنامج تضمين السابقة لتسهيل الأمر عليك وتحقيق اتساق عبر واجهة برمجة التطبيقات:
Kotlin
fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)
Java
public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)
تم تغيير ترتيب المَعلمات في طريقة onConsumeResponse()
ترتيب الوسيطات لـ onConsumeResponse
من ConsumeResponseListener
جميع التغييرات وأصبحت متسقة عبر واجهة برمجة التطبيقات:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
عنصر purchaseResult غير مرتبط
PurchaseResult
مكتمِلة لتكون متسقة عبر واجهة برمجة التطبيقات:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
إصلاح الأخطاء
- ما مِن رمز استجابة في الحزمة PURCHASES_UPDATED
- إصلاح المشاكل المتعلقة بميزتَي ProxyالفوترةActivity وPurchasesUpdatedListener أثناء تغيير الجهاز بالتناوب
إصدار معاينة المطوّر 1 (12-06-2017، إشعار)
تم إطلاق ميزة معاينة المطوّر بهدف تبسيط عملية التطوير في ما يتعلّق بالفوترة، ما يسمح للمطوّرين بتركيز جهودهم على تطبيق منطق خاص بتطبيق Android، مثل بنية التطبيقات وهيكل التنقل.
تضم المكتبة العديد من الصفوف والميزات الملائمة التي يمكنك استخدامها عند دمج تطبيقات Android التي تتضمّن Google Play Billing API كما توفر المكتبة طبقة تجريدية أعلى خدمة Android Interface Definition Language (AIDL)، ما يسهّل على المطوّرين تحديد الواجهة بين التطبيق وGoogle Play Billing API.