Dokumen ini berisi catatan rilis untuk Google Play Billing Library.
Rilis Google Play Billing Library 8.1.0 (06-11-2025)
Google Play Billing Library versi 8.1.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Langganan yang ditangguhkan
Parameter baru telah ditambahkan ke metode
BillingClient.queryPurchasesAsync()untuk menyertakan langganan yang ditangguhkan saat membuat kueri untuk langganan. Langganan yang ditangguhkan masih diatribusikan kepada pengguna, tetapi tidak aktif, baik karena pengguna menjeda langganan atau metode pembayaran perpanjangannya ditolak.Objek
Purchaseyang ditampilkan di pemroses akan menampilkanisSuspended() = trueuntuk langganan yang ditangguhkan. Dalam hal ini, Anda tidak boleh memberikan akses ke langganan yang dibeli, dan sebagai gantinya, arahkan pengguna ke pusat langganan tempat pengguna dapat mengelola metode pembayaran atau status jeda untuk mengaktifkan kembali langganan.Pembaruan pada langganan:
Objek
BillingFlowParams.ProductDetailsParamskini memiliki metodesetSubscriptionProductReplacementParams()yang dapat Anda gunakan untuk menentukan informasi penggantian tingkat produk.Objek
SubscriptionProductReplacementParamsmemiliki dua metode setter:setOldProductId: Produk lama yang perlu diganti dengan produk dalamProductDetailssaat ini.setReplacementMode: Ini adalah mode penggantian tingkat item. Pada dasarnya, mode ini sama dengan SubscriptionUpdateParams, tetapi pemetaan nilai telah diperbarui. Mode penggantian baruKEEP_EXISTINGdiperkenalkan yang memungkinkan Anda mempertahankan jadwal pembayaran yang ada untuk suatu item.
SubscriptionUpdateParams setSubscriptionReplacementMode akan dihentikan. Sebagai gantinya, Anda harus menggunakan
SubscriptionProductReplacementParams.setReplacementMode.
Memperbarui
minSdkVersionmenjadi 23.Mengaktifkan API praorder untuk produk sekali beli
API
ProductDetails.oneTimePurchaseOfferDetails.getPreorderDetails()yang mendapatkan detail praorder kini tersedia untuk digunakan.Google Play Billing Library kini mendukung Kotlin versi 2.2.0.
Rilis Google Play Billing Library 8.0.0 (30-06-2025)
Library Layanan Penagihan Google Play versi 8.0.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Item dalam aplikasi kini akan disebut sebagai produk sekali beli.
Beberapa opsi pembelian dan penawaran untuk produk sekali beli.
Anda kini dapat memiliki beberapa opsi pembelian dan penawaran untuk produk sekali beli. Hal ini memberi Anda fleksibilitas dalam cara menjual produk dan mengurangi kompleksitas pengelolaannya.
Meningkatkan kualitas metode
queryProductDetailsAsync().Sebelum PBL 8.0.0, metode
queryProductDetailsAsync()tidak menampilkan produk yang tidak dapat diambil. Hal ini dapat terjadi karena beberapa alasan, seperti produk tidak ditemukan atau tidak ada penawaran yang tersedia untuk pengguna. Dengan PBL 8.0.0, produk yang belum diambil akan ditampilkan dengan kode status tingkat produk baru yang memberikan informasi tentang produk yang belum diambil. Perhatikan bahwa ada perubahan pada tanda tanganProductDetailsResponseListener.onProductDetailsResponse()yang memerlukan perubahan pada aplikasi Anda. Untuk mengetahui informasi selengkapnya, lihat memproses hasil.Koneksi ulang layanan otomatis.
Parameter
BillingClient.Builder.enableAutoServiceReconnection()builder baru memungkinkan developer memilih untuk mengaktifkan koneksi ulang layanan otomatis, yang menyederhanakan pengelolaan koneksi dengan menangani koneksi ulang ke Layanan Penagihan Play secara otomatis dan menghilangkan kebutuhan untuk memanggilstartConnection()secara manual jika terjadi pemutusan koneksi layanan. Untuk mengetahui informasi selengkapnya, lihat Menyambungkan Kembali Koneksi Secara Otomatis.Kode sub-respons untuk metode
launchBillingFlow().BillingResult yang ditampilkan dari
launchBillingFlow()kini akan mencakup kolom kode sub-respons. Kolom ini hanya akan diisi dalam beberapa kasus untuk memberikan alasan kegagalan yang lebih spesifik. Dengan PBL 8.0.0, sub-kode PAYMENT_DECLINED_DUE_TO_INSUFFICIENT_FUNDS ditampilkan untuk kasus ketika dana pengguna kurang dari harga item yang coba dibeli.Menghapus metode
queryPurchaseHistory().Metode
queryPurchaseHistory()yang sebelumnya ditandai sebagai tidak digunakan lagi kini telah dihapus. Lihat Query Purchase History untuk mengetahui detail tentang API alternatif yang dapat digunakan.Menghapus metode
querySkuDetailsAsync().Metode
querySkuDetailsAsync()yang sebelumnya ditandai sebagai tidak digunakan lagi kini telah dihapus. Sebagai gantinya, Anda harus menggunakan queryProductDetailsAsync.Menghapus metode
BillingClient.Builder.enablePendingPurchases().Metode
enablePendingPurchases()tanpa parameter yang sebelumnya ditandai sebagai tidak digunakan lagi kini telah dihapus. Anda harus menggunakanenablePendingPurchases(PendingPurchaseParams params)sebagai gantinya. Perhatikan bahwaenablePendingPurchases()yang tidak digunakan lagi secara fungsional setara denganenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).Menghapus metode
queryPurchasesAsync()yang kelebihan muatan yang mengambil skuType.Metode
queryPurchasesAsync(String skuType, PurchasesResponseListener listener)yang sebelumnya ditandai sebagai tidak digunakan lagi kini telah dihapus. Atau, gunakanqueryPurchasesAsync(QueryPurchasesParams queryPurchasesParams, PurchasesResponseListener listener).
Rilis Google Play Billing Library 7.1.1 (03-10-2024)
Library Layanan Penagihan Google Play versi 7.1.1 dan ekstensi Kotlin kini tersedia.
Perbaikan bug
- Memperbaiki bug di Play Billing Library 7.1.0 yang terkait dengan kode respons
BillingResultpengujian.
Rilis Google Play Billing Library 7.1.0 (19-09-2024)
Google Play Billing Library versi 7.1.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
- Peningkatan keamanan thread terkait status dan pengelolaan koneksi.
- Memperkenalkan perubahan parsial untuk menguji kode respons [
BillingResult][billing-result] yang dirilis sepenuhnya di Play Billing Library 7.1.1. Untuk menguji integrasi menggunakan fitur ini, Anda harus mengupgrade ke Play Billing Library 7.1.1. Ada bug yang hanya akan memengaruhi aplikasi dengan [pengujian penggantian penagihan diaktifkan][enable-billing-overrides-testing] dan tidak memengaruhi penggunaan reguler. Untuk mengetahui informasi selengkapnya, lihat Kode responsBillingResult. [billing-result]: /reference/com/android/billingclient/api/BillingResult [enable-billing-overrides-testing]: /google/play/billing/test-response-codes#enable-billing-overrides-testing
Rilis Google Play Billing Library 7.0.0 (14-05-2024)
Library Layanan Penagihan Google Play versi 7.0.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Menambahkan API untuk mendukung langganan cicilan.
- Menambahkan [
ProductDetails.InstallmentPlanDetails][installment-details] untuk paket dasar cicilan yang dapat dibeli oleh pengguna yang memenuhi syarat. API ini membantu aplikasi Anda mengidentifikasi paket cicilan dan penyiapan komitmennya untuk memberikan informasi terkait kepada pengguna. Untuk mempelajari lebih lanjut, lihat [panduan cicilan langganan][installments]. [installment-details]: /reference/com/android/billingclient/api/ProductDetails.InstallmentPlanDetails [installments]: /google/play/billing/subscriptions#installments
- Menambahkan [
Menambahkan
PendingPurchasesParamsdanBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)untuk menggantikanBillingClient.Builder.enablePendingPurchases(), yang tidak digunakan lagi dalam rilis ini.enablePendingPurchases()yang tidak digunakan lagi secara fungsional setara denganenablePendingPurchases(PendingPurchasesParams.newBuilder().enableOneTimeProducts().build()).
Menambahkan API untuk mendukung transaksi tertunda untuk paket prabayar langganan:
- Gunakan
PendingPurchasesParams.Builder.enablePrepaidPlans()bersama denganBillingClient.Builder.enablePendingPurchases(PendingPurchaseParams)untuk mengaktifkan transaksi tertunda untuk paket prabayar langganan. Saat menambahkan dukungan, pastikan aplikasi Anda juga mengelola siklus proses langganan dengan benar. Untuk mempelajari lebih lanjut, lihat panduan pembelian tertunda kami. - Menambahkan
Purchase.PendingPurchaseUpdatedanPurchase.getPendingPurchaseUpdate()untuk mengambil isi ulang, upgrade, atau downgrade yang tertunda ke langganan yang sudah ada.
- Gunakan
Menghapus
BillingClient.Builder.enableAlternativeBilling(),AlternativeBillingListener, danAlternativeChoiceDetails.- Developer harus menggunakan
BillingClient.Builder.enableUserChoiceBilling()denganUserChoiceBillingListenerdanUserChoiceDetailsdi callback pemroses sebagai gantinya.
- Developer harus menggunakan
Menghapus
BillingFlowParams.ProrationMode,BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode(), danBillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode(). - Developer harus menggunakanBillingFlowParams.SubscriptionUpdateParams.ReplacementModedenganBillingFlowParams.SubscriptionUpdateParams.Builder#setSubscriptionReplacementMode(int)sebagai gantinya. -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceProrationMode(). -BillingFlowParams.SubscriptionUpdateParams.Builder.setReplaceSkusProrationMode().Menghapus
BillingFlowParams.SubscriptionUpdateParams.Builder#setOldSkuPurchaseToken(). - Developer harus menggunakanBillingFlowParams.SubscriptionUpdateParams.Builder#setOldPurchaseToken(java.lang.String)sebagai gantinya.BillingClient.queryPurchaseHistoryAsync()tidak digunakan lagi dan akan dihapus dalam rilis mendatang. Sebagai gantinya, developer harus menggunakan alternatif berikut:- Pembelian yang diakui dan tertunda: Gunakan
BillingClient.queryPurchasesAsync()untuk mengambil pembelian aktif. - Pembelian yang digunakan: Developer harus melacak pembelian yang digunakan di server mereka sendiri.
- Pembelian yang dibatalkan: Gunakan voided-purchases Developer API.
- Untuk mengetahui detail selengkapnya, lihat Membuat Kueri Histori Pembelian
- Pembelian yang diakui dan tertunda: Gunakan
BillingFlowParams.ProductDetailsParams.setOfferToken()kini akan menampilkan pengecualian saat developer menentukanofferTokenkosong.Memperbarui
minSdkVersionmenjadi 21 dantargetSdkVersionmenjadi 34.
Rilis Google Play Billing Library 6.2.1 (16-04-2024)
Library Layanan Penagihan Google Play versi 6.2.1 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
- Memperbaiki bug di
BillingClient.showAlternativeBillingOnlyInformationDialog()yang menyebabkanAlternativeBillingOnlyInformationDialogListenermungkin tidak dipanggil dalam kasus tertentu saat dialog selesai.
Rilis Google Play Billing Library 6.2.0 (06-03-2024)
Library Layanan Penagihan Google Play versi 6.2.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
- Menambahkan API untuk mendukung penawaran eksternal
- Menambahkan
BillingClient.Builder.enableExternalOffer()untuk mengaktifkan kemampuan memberikan penawaran eksternal. - Menambahkan
BillingClient.isExternalOfferAvailableAsync()untuk memeriksa ketersediaan fungsi penawaran eksternal. - Menambahkan
BillingClient.showExternalOfferInformationDialog()untuk menampilkan dialog informasi kepada pengguna sebelum mengarahkan pengguna ke luar aplikasi. - Menambahkan
BillingClient.createExternalOfferReportingDetailsAsync()untuk membuat payload yang diperlukan untuk melaporkan transaksi yang dilakukan melalui penawaran eksternal.
- Menambahkan
Rilis Google Play Billing Library 6.1.0 (14-11-2023)
Google Play Billing Library versi 6.1.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
- Menambahkan API untuk mendukung penagihan alternatif saja (yaitu tanpa pilihan pengguna)
- Menambahkan
BillingClient.Builder.enableAlternativeBillingOnly()untuk secara fungsional mengaktifkan kemampuan penawaran penagihan alternatif saja. - Menambahkan
BillingClient.isAlternativeBillingOnlyAvailableAsync()untuk memeriksa ketersediaan penawaran penagihan alternatif saja. - Menambahkan
BillingClient.showAlternativeBillingOnlyInformationDialog()untuk menampilkan dialog informasi guna memberi tahu pengguna saat penagihan alternatif saja sedang digunakan. - Menambahkan
BillingClient.createAlternativeBillingOnlyReportingDetailsAsync()untuk membuat payload yang diperlukan untuk melaporkan transaksi yang dilakukan melalui penagihan alternatif saja.
- Menambahkan
- Mengupdate API penagihan sesuai pilihan pengguna
- Menambahkan
UserChoiceBillingListeneruntuk menggantikan AlternativeBillingListener yang telah ditandai sebagai tidak digunakan lagi. - Menambahkan
UserChoiceDetailsuntuk menggantikanAlternativeChoiceDetailsyang telah ditandai sebagai tidak digunakan lagi. - Menambahkan
BillingClient.Builder.enableUserChoiceBilling()untuk menggantikanBillingClient.Builder.enableAlternativeBilling()yang telah ditandai sebagai tidak digunakan lagi.
- Menambahkan
- Menambahkan
BillingClient.getBillingConfigAsync()untuk mengambil negara Google Play.
Rilis Library Layanan Penagihan Google Play 6.0.1 (22-06-2023)
Library Layanan Penagihan Google Play versi 6.0.1 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Mengupdate Play Billing Library agar kompatibel dengan Android 14.
Rilis Library Layanan Penagihan Google Play 6.0 (10-05-2023)
Library Layanan Penagihan Google Play versi 6.0.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Menambahkan enum
ReplacementModebaru untuk menggantikanProrationMode.Perhatikan bahwa
ProrationModemasih tersedia untuk alasan kompatibilitas mundur.Menghapus ID pesanan untuk pembelian
PENDING.Sebelumnya, ID pesanan akan selalu dibuat meskipun pembelian tertunda. Mulai versi 6.0.0, ID pesanan tidak akan dibuat untuk pembelian yang tertunda, dan untuk pembelian ini, ID pesanan akan diisi setelah pembelian dipindahkan ke status
PURCHASED.Menghapus metode
queryPurchasesdanlaunchPriceConfirmationFlow.Metode
queryPurchasesdanlaunchPriceConfirmationFlowyang sebelumnya ditandai sebagai tidak digunakan lagi kini telah dihapus di Library Layanan Penagihan Play 6.0.0. Developer harus menggunakanqueryPurchasesAsync, bukanqueryPurchases. Untuk alternatiflaunchPriceConfirmationFlow, lihat Perubahan harga.Menambahkan kode respons error jaringan baru.
Kode respons error jaringan baru,
NETWORK_ERROR, telah ditambahkan mulai dari PBL versi 6.0.0. Kode ini ditampilkan saat terjadi error karena ada masalah koneksi jaringan. Error koneksi jaringan ini sebelumnya dilaporkan sebagaiSERVICE_UNAVAILABLE.Memperbarui
SERVICE_UNAVAILABLEdanSERVICE_TIMEOUT.Mulai dari PBL versi 6.0.0, error karena waktu tunggu dalam pemrosesan habis akan ditampilkan sebagai
SERVICE_UNAVAILABLE, bukanSERVICE_TIMEOUTsaat ini.Perilaku ini tidak berubah pada PBL versi sebelumnya.
Menghapus
SERVICE_TIMEOUT.Mulai PBL versi 6.0.0,
SERVICE_TIMEOUTtidak akan ditampilkan lagi. PBL versi sebelumnya akan tetap menampilkan kode ini.Menambahkan logging tambahan.
Rilis Play Billing Library 6 menyertakan logging tambahan, yang memberikan insight tentang penggunaan API (seperti keberhasilan dan kegagalan) serta masalah koneksi layanan. Informasi ini akan digunakan untuk meningkatkan performa Library Layanan Penagihan Play dan memberikan dukungan yang lebih baik untuk error.
Rilis Library Layanan Penagihan Google Play 5.2.1 (22-06-2023)
Library Layanan Penagihan Google Play versi 5.2.1 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Mengupdate Play Billing Library agar kompatibel dengan Android 14.
Rilis Library Layanan Penagihan Google Play 5.2 (06-04-2023)
Library Layanan Penagihan Google Play versi 5.2.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
- Menambahkan class untuk mendukung alur penagihan alternatif di perangkat seluler/tablet untuk pengguna di Korea Selatan:
- Menambahkan metode
BillingFlowParams.SubscriptionUpdateParams.Builder.setOriginalExternalTransactionId()untuk menentukan ID transaksi eksternal langganan asal. - Menambahkan
BillingClient.Builder.enableAlternativeBilling()metode agar pengguna di Korea Selatan dapat memilih opsi penagihan alternatif.
Rilis Library Layanan Penagihan Google Play 5.1 (31-10-2022)
Library Layanan Penagihan Google Play versi 5.1.0 dan ekstensi Kotlin kini tersedia.
Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Menambahkan metode
ProductDetails.SubscriptionOfferDetails.getOfferId()untuk mengambil ID penawaran. - Menambahkan metode
ProductDetails.SubscriptionOfferDetails.getBasePlanId()untuk mengambil ID paket dasar. - Mengupdate
targetSdkVersionke versi 31.
Rilis Library Layanan Penagihan Google Play 5.0 (11-05-2022)
Library Layanan Penagihan Google Play versi 5.0.0 dan ekstensi Kotlin kini tersedia.
Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Memperkenalkan model baru untuk langganan, termasuk entitas baru yang memungkinkan Anda membuat beberapa penawaran untuk satu produk langganan. Untuk informasi selengkapnya, lihat panduan migrasi.
- Menambahkan
BillingClient.queryProductDetailsAsync()untuk menggantikanBillingClient.querySkuDetailsAsync(). - Menambahkan metode
setIsOfferPersonalized()untuk persyaratan pengungkapan penetapan harga yang dipersonalisasi Uni Eropa. Untuk mempelajari lebih lanjut cara menggunakan metode ini, lihat Menunjukkan harga yang dipersonalisasi. - Menghapus
queryPurchases(), yang sebelumnya tidak digunakan lagi dan digantikan oleh queryPurchasesAsync yang diperkenalkan di Library Layanan Penagihan Google Play 4.0.0. launchPriceChangeFlowtidak digunakan lagi dan akan dihapus dalam rilis mendatang. Untuk mempelajari alternatif lebih lanjut, lihat Meluncurkan alur konfirmasi perubahan harga.- Menghapus
setVrPurchaseFlow(), yang sebelumnya digunakan saat membuat instance alur pembelian. Pada versi sebelumnya, metode ini mengalihkan pengguna untuk menyelesaikan pembelian di perangkat berteknologi Android mereka. Setelah Anda menghapus metode ini, pengguna akan menyelesaikan pembelian melalui alur pembelian standar.
Rilis Library Layanan Penagihan Google Play 4.1 (23-02-2022)
Library Layanan Penagihan Google Play versi 4.1.0 dan ekstensi Kotlin kini tersedia.
Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Menambahkan
BillingClient.showInAppMessages()untuk membantu menangani penolakan pembayaran langganan. Untuk mempelajari lebih lanjut cara menggunakan pesan dalam aplikasi untuk menangani penolakan pembayaran langganan, lihat Menangani penolakan pembayaran.
Rilis Library Layanan Penagihan Google Play 4.0 (18-05-2021)
Library Layanan Penagihan Google Play versi 4.0.0 dan ekstensi Kotlin kini tersedia.
Ringkasan perubahan
Menambahkan
BillingClient.queryPurchasesAsync()untuk menggantikanBillingClient.queryPurchases()yang akan dihapus dalam rilis mendatang.Menambahkan mode penggantian langganan baru
IMMEDIATE_AND_CHARGE_FULL_PRICE.Menambahkan metode
BillingClient.getConnectionState()untuk mengambil status koneksi Library Layanan Penagihan Play.Mengupdate Javadoc dan implementasi untuk menunjukkan thread yang dapat dipanggil oleh metode dan hasil thread yang diposting.
Menambahkan
BillingFlowParams.Builder.setSubscriptionUpdateParams()sebagai cara baru untuk memulai pembaruan langganan. Ini menggantikanBillingFlowParams#getReplaceSkusProrationMode,BillingFlowParams#getOldSkuPurchaseToken,BillingFlowParams#getOldSku,BillingFlowParams.Builder#setReplaceSkusProrationMode,BillingFlowParams.Builder#setOldSkuyang telah dihapus.Menambahkan
Purchase.getQuantity()danPurchaseHistoryRecord.getQuantity().Menambahkan
Purchase#getSkus()danPurchaseHistoryRecord#getSkus(). Keduanya menggantikanPurchase#getSkudanPurchaseHistoryRecord#getSkuyang telah dihapus.Menghapus
BillingFlowParams#getSku,BillingFlowParams#getSkuDetails, danBillingFlowParams#getSkuType.
Rilis Library Layanan Penagihan Google Play 3.0.3 (12-03-2021)
Library Layanan Penagihan Google Play versi 3.0.3, ekstensi Kotlin, dan plugin Unity kini tersedia.
Perbaikan Bug Java dan Kotlin
- Memperbaiki kebocoran memori saat
endConnection()dipanggil. - Memperbaiki masalah saat Library Layanan Penagihan Google Play digunakan oleh aplikasi yang menggunakan
mode peluncuran tugas tunggal. Callback
onPurchasesUpdated()akan dipicu saat aplikasi dilanjutkan dari peluncur Android dan dialog penagihan terlihat sebelum ditangguhkan.
Perbaikan Bug Unity
- Update ke Java versi 3.0.3 untuk memperbaiki kebocoran memori dan menyelesaikan masalah yang mencegah pembelian saat aplikasi dilanjutkan dari peluncur Android dan dialog penagihan terlihat sebelum ditangguhkan.
Rilis Library Layanan Penagihan Google Play 3.0.2 (24-11-2020)
Library Layanan Penagihan Google Play versi 3.0.2 dan ekstensi Kotlin kini tersedia.
Perbaikan bug
- Memperbaiki bug di ekstensi Kotlin saat coroutine gagal dengan error "Already resumed".
- Memperbaiki referensi yang belum terselesaikan saat ekstensi Kotlin digunakan dengan library kotlinx.coroutines versi 1.4+.
Rilis Library Layanan Penagihan Google Play 3.0.1 (30-09-2020)
Library Layanan Penagihan Google Play versi 3.0.1 dan ekstensi Kotlin kini tersedia.
Perbaikan bug
- Memperbaiki bug yang menyebabkan jika aplikasi dihentikan dan dipulihkan selama alur penagihan,
PurchasesUpdatedListenermungkin tidak dipanggil dengan hasil pembelian.
Rilis Library Layanan Penagihan Google Play 3.0 (08-06-2020)
Library Layanan Penagihan Google Play versi 3.0.0, ekstensi Kotlin, dan plugin Unity kini tersedia.
Ringkasan perubahan
- Menghapus dukungan SKU yang diberikan.
- Menghapus parameter
ChildDirecteddanUnderAgeOfConsent. - Menghapus metode payload developer yang tidak digunakan lagi.
- Menghapus metode
BillingFlowParams.setAccountId()danBillingFlowParams.setDeveloperId()yang tidak digunakan lagi. - Menghapus metode
BillingFlowParams.setOldSkus(String oldSku)danBillingFlowParams.addOldSku(String oldSku)yang tidak digunakan lagi. - Menambahkan anotasi nullability.
Perbaikan bug
SkuDetails.getIntroductoryPriceCycles()sekarang menampilkanint, bukanString.- Memperbaiki bug yang menyebabkan alur penagihan dianggap memiliki parameter tambahan meskipun tidak ada parameter tambahan yang ditetapkan.
Rilis Library Layanan Penagihan Google Play 2.2.1 (20-05-2020)
Library Layanan Penagihan Google Play versi 2.2.1 sekarang tersedia.
Perbaikan bug
- Mengupdate versi default Java Play Billing Library yang menjadi dependensi ekstensi Kotlin.
Rilis Library Layanan Penagihan Google Play 2.2.0 dan dukungan Unity (23-03-2020)
Layanan Penagihan Google Play versi 2.2.0 menyediakan fungsi yang membantu developer memastikan pembelian diatribusikan kepada pengguna yang benar. Perubahan ini menggantikan kebutuhan mem-build solusi kustom berdasarkan payload developer. Sebagai bagian dari update ini, fungsi payload developer kini sudah tidak digunakan lagi dan akan dihapus pada rilis mendatang. Untuk informasi selengkapnya, termasuk alternatif yang direkomendasikan, lihat Payload developer.
Library Penagihan Layanan Penagihan Google Play 2 untuk Unity
Selain versi Java dan Kotlin Library Layanan Penagihan Google Play 2 saat ini, kami juga merilis versi library yang dapat digunakan dengan Unity. Sekarang developer game yang menggunakan API pembelian dalam aplikasi Unity dapat mengupgrade untuk memanfaatkan semua fitur Library Layanan Penagihan Google Play 2 dan untuk memudahkan upgrade selanjutnya ke versi Library Layanan Penagihan Google Play yang akan datang.
Untuk mempelajari lebih lanjut, lihat Menggunakan Layanan Penagihan Google Play dengan Unity.
Ringkasan perubahan
- Library Layanan Penagihan Google Play Java
- Dalam
AcknowledgePurchaseParams, metodesetDeveloperPayload()dangetDeveloperPayload()tidak digunakan lagi. - Dalam
ConsumeParams, metodesetDeveloperPayload()dangetDeveloperPayload()tidak digunakan lagi. - Dalam
BillingFlowParams, mengganti namasetAccountId()menjadisetObfuscatedAccountId(), dan mendokumentasikan batasan panjang 64 karakter dan batasan yang melarang Informasi Identitas Pribadi (PII) dalam kolom ini.setAccountId()telah ditandai sebagai tidak digunakan lagi dan akan dihapus dalam versi library mendatang. - Di
BillingFlowParams, menambahkansetObfuscatedProfileId()yang berfungsi serupa dengansetObfuscatedAccountId(). Untuk mengetahui informasi selengkapnya, lihat Update dan alternatif payload developer. - Dalam
Purchase, menambahkan metodegetAccountIdentifiers()untuk menampilkan kumpulan ID akun yang di-obfuscate dalamBillingFlowParams. - Dalam
BillingClient, metodeloadRewardedSku()telah ditandai sebagai tidak digunakan lagi sebagai bagian dari penghentian SKU yang sudah diberi reward. Anda dapat menemukan informasi selengkapnya tentang penghentian ini di Pusat Bantuan Konsol Play.
- Dalam
Rilis Library Layanan Penagihan Google Play 2.1.0 dan Rilis Ekstensi Kotlin 2.1.0 (10-12-2019)
Library Layanan Penagihan Google Play versi 2.1.0 dan ekstensi Kotlin baru sekarang tersedia. Ekstensi Kotlin Library Layanan Penagihan Play menyediakan alternatif API idiomatis untuk konsumsi Kotlin, yang mengutamakan coroutine dan keamanan null yang lebih baik. Untuk contoh kode, lihat Menggunakan Library Layanan Penagihan Google Play.
Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Di
BillingFlowParams,setOldSku(String oldSku)tidak digunakan lagi dan diganti dengansetOldSku(String oldSku, String purchaseToken), untuk membedakan jika beberapa akun di perangkat memiliki SKU yang sama.
Rilis Library Layanan Penagihan Google Play 2.0.3 (05-08-2019)
Library Layanan Penagihan Google Play versi 2.0.3 kini telah tersedia.
Perbaikan bug
- Memperbaiki bug yang menyebabkan
querySkuDetailsAsync()terkadang mengalami kegagalan dengan kodeDEVELOPER_ERROR, bukan menampilkan hasil yang sukses.
Rilis Library Layanan Penagihan Google Play 2.0.2 (08-07-2019)
Google Play Billing Library versi 2.0.2 kini tersedia. Rilis ini berisi pembaruan pada dokumentasi referensi dan tidak mengubah fungsi library.
Rilis Library Layanan Penagihan Google Play 2.0.1 (06-06-2019)
Library Layanan Penagihan Google Play versi 2.0.1 sekarang tersedia. Versi ini berisi perubahan berikut.
Perbaikan bug
- Memperbaiki bug yang menyebabkan pesan debug ditampilkan sebagai
nulldalam beberapa kasus. - Memperbaiki potensi masalah kebocoran memori.
Rilis Library Layanan Penagihan Google Play 2.0 (07-05-2019)
Library Layanan Penagihan Google Play versi 2.0 sekarang tersedia. Versi ini berisi perubahan berikut.
Pembelian harus dikonfirmasi dalam waktu tiga hari
Google Play mendukung pembelian produk dari dalam aplikasi Anda (in-app) atau
di luar aplikasi Anda (out-of-app). Agar Google Play dapat memberikan
pengalaman pembelian yang konsisten di mana pun pengguna membeli produk
Anda, Anda harus mengonfirmasi semua pembelian yang diterima melalui Library Layanan Penagihan
Google Play sesegera mungkin setelah memberikan hak kepada pengguna. Jika
Anda tidak mengonfirmasi pembelian dalam waktu tiga hari, pengguna akan otomatis
menerima pengembalian dana, dan Google Play akan mencabut pembelian tersebut. Untuk transaksi yang tertunda (baru pada versi 2.0), rentang waktu tiga hari ini dimulai saat pembelian berstatus PURCHASED dan tidak berlaku selama pembelian berstatus PENDING.
Untuk langganan, Anda harus mengonfirmasi setiap pembelian yang memiliki token pembelian baru. Ini berarti semua pembelian awal, perubahan paket, dan pendaftaran ulang harus dikonfirmasi, tetapi Anda tidak perlu mengonfirmasi perpanjangan selanjutnya. Untuk menentukan apakah pembelian memerlukan konfirmasi, Anda dapat memeriksa kolom konfirmasi pada pembelian.
Objek Purchase kini menyertakan
metode isAcknowledged() yang menunjukkan apakah pembelian telah dikonfirmasi atau belum. Selain itu, Google Play Developer API juga menyertakan nilai boolean konfirmasi untuk Purchases.products dan Purchases.subscriptions.
Sebelum mengonfirmasi pembelian, pastikan Anda menggunakan metode ini untuk menentukan apakah
pembelian telah dikonfirmasi atau belum.
Anda dapat mengonfirmasi pembelian menggunakan salah satu metode berikut:
- Untuk produk habis pakai, gunakan
consumeAsync(), yang tersedia dalam API klien. - Untuk produk tidak habis pakai, gunakan
acknowledgePurchase(), yang tersedia dalam API klien. - Metode
acknowledge()baru juga tersedia dalam API Server.
BillingFlowParams.setSku() telah dihapus
Metode BillingFlowParams#setSku() yang sebelumnya sudah tidak digunakan lagi telah dihapus
dalam rilis ini. Sebelum merender produk dalam alur pembelian, Anda sekarang harus memanggil
BillingClient.querySkuDetailsAsync(),
yang meneruskan
objek SkuDetails yang menjadi hasilnya ke
BillingFlowParams.Builder.setSkuDetails().
Untuk contoh kode, lihat Menggunakan Library Layanan Penagihan Google Play.
Payload developer didukung
Library Layanan Penagihan Google Play versi 2.0 menambahkan dukungan untuk payload developer—string arbitrer yang dapat ditambahkan ke pembelian. Anda dapat menambahkan parameter payload developer ke pembelian, tetapi hanya setelah pembelian dikonfirmasi atau dipakai. Hal ini berbeda dengan payload developer di AIDL, karena payload dapat ditentukan saat memulai alur pembelian. Karena pembelian kini dapat diinisialisasi dari luar aplikasi, perubahan ini memastikan bahwa Anda selalu memiliki kesempatan untuk menambahkan payload ke pembelian.
Untuk mengakses payload dalam library yang baru, objek Purchase kini menyertakan
metode
getDeveloperPayload().
Penawaran yang konsisten
Saat Anda menawarkan SKU diskon, Google Play sekarang menampilkan harga asli SKU tersebut sehingga Anda dapat menunjukkan kepada pengguna bahwa mereka mendapatkan diskon.
SkuDetails berisi dua
metode baru untuk mengambil harga SKU asli:
getOriginalPriceAmountMicros()- menampilkan harga asli SKU tanpa format sebelum diskon.
getOriginalPrice()- menampilkan harga asli dengan format mata uang tambahan.
Transaksi tertunda
Pada library Layanan Penagihan Google Play versi 2.0, Anda harus mendukung pembelian yang memerlukan tindakan tambahan sebelum hak diberikan. Misalnya, pengguna mungkin memilih untuk membeli produk dalam aplikasi Anda di toko fisik menggunakan uang tunai. Hal ini berarti transaksi diselesaikan di luar aplikasi Anda. Dalam skenario ini, sebaiknya Anda hanya memberikan izin setelah pengguna menyelesaikan transaksi tersebut.
Untuk mengaktifkan pembelian tertunda, panggil
enablePendingPurchases()
sebagai bagian dari proses inisialisasi aplikasi Anda.
Gunakan
Purchase.getPurchaseState()
untuk menentukan apakah status pembelian adalah PURCHASED atau PENDING. Perlu diketahui bahwa
sebaiknya Anda hanya memberikan izin jika pembelian tersebut berstatus PURCHASED. Anda harus
memeriksa pembaruan status Purchase dengan melakukan hal berikut:
- Saat memulai aplikasi, panggil
BillingClient.queryPurchases()untuk mengambil daftar produk tidak habis pakai yang terkait dengan pengguna. - Panggil
Purchase.getPurchaseState()pada setiap objekPurchaseyang ditampilkan. - Implementasikan metode
onPurchasesUpdated()untuk merespons perubahan pada objekPurchase.
Selain itu, Google Play Developer API menyertakan status PENDING untuk
Purchases.products.
Transaksi yang tertunda tidak didukung untuk langganan.
Rilis ini juga memperkenalkan jenis notifikasi developer real-time baru,
OneTimeProductNotification. Jenis notifikasi ini berisi satu pesan
yang nilainya antara ONE_TIME_PRODUCT_PURCHASED atau
ONE_TIME_PRODUCT_CANCELED. Jenis notifikasi ini hanya dikirim untuk pembelian
yang terkait dengan metode pembayaran yang tertunda, seperti uang tunai.
Saat mengonfirmasi pembelian tertunda, pastikan Anda hanya melakukan konfirmasi jika
pembelian berstatus PURCHASED, bukan PENDING.
Perubahan API
Library Layanan Penagihan Google Play versi 2.0 memuat beberapa perubahan API untuk mendukung fitur baru dan memperjelas fungsionalitas yang telah ada.
consumeAsync
consumeAsync()
sekarang menggunakan
objek ConsumeParams,
bukan purchaseToken. ConsumeParams berisi purchaseToken
serta payload developer opsional.
Versi consumeAsync() sebelumnya telah dihapus dalam rilis ini.
queryPurchaseHistoryAsync
Untuk meminimalkan kebingungan,
queryPurchaseHistoryAsync()
kini menampilkan
objek PurchaseHistoryRecord,
bukan Purchase. Objek PurchaseHistoryRecord
sama dengan objek Purchase, tetapi objek pertama hanya mencerminkan nilai yang ditampilkan oleh
queryPurchaseHistoryAsync() dan tidak berisi kolom autoRenewing,
orderId, dan packageName. Perlu diketahui bahwa tidak ada yang berubah dengan
data yang ditampilkan; queryPurchaseHistoryAsync() menampilkan data
yang sama seperti sebelumnya.
Nilai BillingResult yang ditampilkan
API yang sebelumnya menampilkan nilai bilangan bulat BillingResponse kini menampilkan
objek
BillingResult. BillingResult berisi bilangan bulat BillingResponse serta
string debug yang dapat Anda gunakan untuk mendiagnosis error. String debug ini menggunakan lokal en-US
dan tidak dimaksudkan untuk ditampilkan kepada pengguna akhir.
Perbaikan bug
SkuDetails.getIntroductoryPriceAmountMicros()kini menampilkanlong, bukanString.
Rilis Library Layanan Penagihan Google Play 1.2.2 (07-03-2019)
Library Layanan Penagihan Google Play versi 1.2.2 sekarang tersedia. Versi ini berisi perubahan berikut.
Perbaikan bug
- Perbaikan untuk masalah threading yang diperkenalkan pada v1.2.1. Panggilan latar belakang tidak lagi memblokir thread utama.
Perubahan lainnya
- Meskipun penggunaan thread utama tetap direkomendasikan, sekarang Anda dapat membuat instance Library Layanan Penagihan Google Play dari thread latar belakang.
- Pembuatan instance telah dimigrasikan sepenuhnya ke thread latar belakang untuk mengurangi kemungkinan terjadinya ANR (aplikasi tidak merespons).
Rilis Library Layanan Penagihan Play 1.2.1 (04-03-2019)
Library Layanan Penagihan Google Play versi 1.2.1 sekarang tersedia. Versi ini berisi perubahan berikut.
Perubahan utama
- Menambahkan dukungan untuk produk bonus. Untuk mengetahui informasi selengkapnya tentang opsi monetisasi, lihat Menambahkan fitur khusus produk reward.
Perubahan lainnya
- Menambahkan konstruktor publik untuk
PurchasesResultdanSkuDetailsResultguna mempermudah pengujian. - Objek
SkuDetailsdapat menggunakan metode baru,getOriginalJson(). - Semua panggilan layanan AIDL kini ditangani oleh thread latar belakang.
Perbaikan bug
- Pemroses callback null tidak lagi diteruskan ke API publik.
Rilis Library Layanan Penagihan Google Play 1.2 (18-10-2018)
Library Layanan Penagihan Google Play versi 1.2 sekarang tersedia. Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Library Layanan Penagihan Google Play sekarang dilisensikan berdasarkan Perjanjian Lisensi Software Development Kit Android.
- Menambahkan API
launchPriceChangeConfirmationFlow, yang meminta pengguna untuk meninjau perubahan dalam proses pada harga langganan. - Menambahkan dukungan untuk mode penghitungan prorata baru,
DEFERRED, saat mengupgrade atau mendowngrade langganan pengguna. - Dalam class
BillingFlowParams, menggantisetSku()dengansetSkuDetails(). - Perbaikan bug minor dan pengoptimalan kode.
Konfirmasi perubahan harga
Sekarang Anda dapat mengubah harga langganan di Konsol Google Play serta meminta pengguna meninjau dan menerima harga baru saat mereka membuka aplikasi Anda.
Untuk menggunakan API ini, buat objek PriceChangeFlowParams menggunakan
skuDetails dari produk langganan, lalu panggil
launchPriceChangeConfirmationFlow(). Implementasikan
PriceChangeConfirmationListener untuk menangani hasilnya saat alur konfirmasi
perubahan harga selesai, seperti dalam cuplikan kode berikut:
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. } });
Alur konfirmasi perubahan harga menampilkan dialog yang berisi informasi
harga baru, yang meminta pengguna untuk menerima harga baru tersebut. Alur ini menampilkan kode respons jenis BillingClient.BillingResponse.
Mode penghitungan prorata baru
Saat mengupgrade atau mendowngrade langganan pengguna, Anda dapat menggunakan mode
penghitungan prorata baru, DEFERRED. Mode ini memperbarui langganan pengguna pada perpanjangan berikutnya.
Untuk mempelajari lebih lanjut cara menetapkan mode penghitungan prorata ini, lihat Menetapkan
mode penghitungan prorata.
Metode baru untuk menetapkan detail SKU
Dalam class BillingFlowParams, metode setSku() sudah tidak digunakan lagi.
Perubahan ini dimaksudkan untuk mengoptimalkan alur Layanan Penagihan Google Play.
Saat membuat instance BillingFlowParams baru dalam klien
penagihan via Google Play, sebaiknya kerjakan dengan objek JSON secara langsung menggunakan
setSkuDetails(), seperti dalam cuplikan kode berikut:
Dalam class Builder BillingFlowParams, metode setSku() sudah
tidak digunakan lagi. Sebaiknya gunakan metode setSkuDetails() seperti dalam cuplikan kode
berikut ini. Objek yang diteruskan ke objek setSkuDetails() berasal dari
metode
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(); }
Rilis Library Layanan Penagihan Play 1.1 (07-05-2018)
Library Layanan Penagihan Google Play versi 1.1 sekarang tersedia. Versi ini berisi perubahan berikut.
Ringkasan perubahan
- Menambahkan dukungan untuk menentukan mode penghitungan prorata dalam
BillingFlowParamssaat mengupgrade/mendowngrade langganan yang sudah ada. - Tanda boolean
replaceSkusProrationdalamBillingFlowParamskini sudah tidak didukung lagi. Sebagai gantinya, gunakanreplaceSkusProrationMode. launchBillingFlow()kini akan memicu callback untuk respons yang gagal.
Perubahan perilaku
Library Layanan Penagihan Google Play versi 1.1 memuat perubahan perilaku berikut ini.
Developer dapat menetapkan replaceSkusProrationMode dalam class BillingFlowParams
ProrationMode memberikan penjelasan lebih lanjut tentang jenis penghitungan prorata saat mengupgrade atau mendowngrade langganan pengguna.
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 mendukung mode penghitungan prorata berikut:
IMMEDIATE_WITH_TIME_PRORATION |
Penggantian akan langsung diterapkan, dan waktu habis masa berlaku yang baru akan dihitung secara prorata dan dikreditkan atau ditagihkan kepada pengguna. Ini merupakan perilaku default saat ini. |
IMMEDIATE_AND_CHARGE_PRORATED_PRICE |
Penggantian akan langsung diterapkan, dan siklus penagihan tetap sama. Harga untuk
periode yang tersisa akan ditagih.
Catatan: Opsi ini hanya tersedia untuk upgrade langganan. |
IMMEDIATE_WITHOUT_PRORATION |
Penggantian akan langsung diterapkan, dan harga baru akan ditagih pada waktu pengulangan berikutnya. Siklus penagihan tetap sama. |
replaceSkusProration sudah tidak didukung lagi dalam class BillingFlowParams
Sebelumnya, developer dapat menetapkan flag boolean untuk menagih jumlah prorata untuk permintaan upgrade langganan. Mengingat kami mendukung ProrationMode, yang memuat instruksi penghitungan prorata yang lebih terperinci, flag boolean ini tidak lagi didukung.
launchBillingFlow() sekarang akan memicu callback untuk respons yang gagal
Billing Library akan selalu memicu callback
PurhcasesUpdatedListener
dan menampilkan
BillingResponse
secara asinkron. Nilai tersinkron yang ditampilkan
BillingResponse
juga akan dipertahankan.
Perbaikan bug
- Keluar lebih awal dengan benar dalam metode asinkron saat koneksi layanan terputus.
- Objek parameter
Buildertidak lagi mengubah objek yang telah dibuat. - Masalah 68087141:
launchBillingFlow()kini akan memicu callback untuk respons yang gagal.
Rilis Library Layanan Penagihan Google Play 1.0 (19-09-2017, Pengumuman)
Library Layanan Penagihan Google Play versi 1.0 sekarang tersedia. Versi ini berisi perubahan berikut.
Perubahan penting
- Menyematkan izin penagihan dalam manifes library. Anda tidak perlu lagi menambahkan izin
com.android.vending.BILLINGdalam manifes Android. - Builder baru ditambahkan ke class
BillingClient.Builder. - Memperkenalkan pola builder untuk class
SkuDetailsParamsyang akan digunakan pada metode untuk mengkueri SKU. - Beberapa metode API telah diperbarui agar konsisten (urutan dan nama argumen yang ditampilkan tetap sama).
Perubahan perilaku
Google Play Billing Library versi 1.0 berisi perubahan perilaku berikut ini.
Class BillingClient.Builder
BillingClient.Builder
kini diinisialisasi melalui pola newBuilder:
Kotlin
billingClient = BillingClient.newBuilder(context).setListener(this).build()
Java
billingClient = BillingClient.newBuilder(context).setListener(this).build();
Metode launchBillingFlow sekarang dipanggil menggunakan class BillingFlowParams
Untuk menginisialisasi alur penagihan bagi pembelian atau langganan, metode
launchBillingFlow() akan menerima
instance BillingFlowParams
yang diinisialisasi dengan parameter khusus permintaan:
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());
Cara baru untuk mengkueri produk yang tersedia
Argumen untuk metode
queryPurchaseHistoryAsync() dan
querySkuDetailsAsync() telah digabungkan
ke pola Builder:
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() {...})
Hasilnya kini ditampilkan melalui kode hasil dan sejumlah objek
SkuDetails, bukan class wrapper sebelumnya, agar lebih memudahkan Anda dan agar konsisten dalam semua API kami:
Kotlin
fun onSkuDetailsResponse(@BillingResponse responseCode: Int, skuDetailsList: List<SkuDetails>)
Java
public void onSkuDetailsResponse(@BillingResponse int responseCode, List<SkuDetails> skuDetailsList)
Urutan parameter diubah pada metode onConsumeResponse()
Urutan argumen untuk
onConsumeResponse dari antarmuka
ConsumeResponseListener
telah diubah agar konsisten di seluruh API kami:
Kotlin
fun onConsumeResponse(@BillingResponse responseCode: Int, outToken: String)
Java
public void onConsumeResponse(@BillingResponse int responseCode, String outToken)
Objek PurchaseResult kini tidak digabungkan lagi
PurchaseResult
kini tidak digabungkan lagi agar konsisten dalam semua API kami:
Kotlin
fun onPurchaseHistoryResponse(@BillingResponse responseCode: Int, purchasesList: List<Purchase>)
Java
void onPurchaseHistoryResponse(@BillingResponse int responseCode, List<Purchase> purchasesList)
Perbaikan bug
- Tidak ada kode respons dalam Paket PURCHASES_UPDATED
- Perbaikan untuk masalah ProxyBillingActivity dan PurchasesUpdatedListener selama rotasi perangkat
Rilis Pratinjau Developer 1 (12-06-2017, Pengumuman)
Pratinjau developer diluncurkan, dengan tujuan menyederhanakan proses pengembangan yang berhubungan dengan penagihan, agar developer dapat memfokuskan upaya mereka dalam mengimplementasikan logika khusus aplikasi Android, seperti arsitektur aplikasi dan struktur navigasi.
Library ini mencakup beberapa class dan fitur praktis yang dapat Anda gunakan saat mengintegrasikan aplikasi Android dengan Google Play Billing API. Library ini juga menyediakan lapisan abstraksi di atas layanan Android Interface Definition Language (AIDL), sehingga memudahkan developer menentukan antarmuka antara aplikasi dan Google Play Billing API.