Register now for Android Dev Summit 2019!

Menambahkan fitur khusus produk sekali beli

Dokumen ini menjelaskan cara menerapkan fungsionalitas khusus untuk produk sekali beli.

Layanan Penagihan Google Play mendukung jenis produk sekali beli berikut:

  • Produk sekali beli non-consumable, yaitu produk yang memberikan efek permanen, seperti upgrade premium. Agar pengguna tidak perlu membeli kembali produk ini, jangan menyatakannya sebagai sedang dikonsumsi.

  • Produk sekali beli consumable, yaitu produk yang memberikan manfaat sementara dan dapat dibeli kembali, seperti tambahan mata uang atau nyawa ekstra dalam game. Agar produk sekali beli consumable bisa dibeli lagi, Anda perlu mengirim permintaan konsumsi ke Google Play.

Menunjukkan produk sekali beli telah digunakan

Untuk menunjukkan bahwa produk sekali beli telah digunakan, panggil consumeAsync() pada instance BillingClient dan sertakan token pembelian yang disediakan Google Play untuk pembelian kembali. Anda juga harus meneruskan objek yang mengimplementasikan antarmuka ConsumeResponseListener. Objek ini menangani hasil operasi konsumsi. Anda dapat mengganti metode onConsumeResponse() pada antarmuka ConsumeResponseListener, yang dipanggil oleh Library Layanan Penagihan Google Play setelah operasi selesai.

Pembelian yang berhasil akan memunculkan token pembelian, yakni ID unik yang mewakili satu produk dalam aplikasi yang dibeli oleh pengguna. Anda juga dapat mengambil token yang terkait dengan memanggil getPurchaseToken() pada objek Purchase.

Contoh berikut menggambarkan konsumsi produk menggunakan token pembelian yang terkait:

Kotlin

val consumeParams =
    ConsumeParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build()

billingClient.consumeAsync(consumeParams, { billingResult, outToken ->
    if (billingResult.responseCode == BillingResponse.OK) {
        // Handle the success of the consume operation.
        // For example, increase the number of coins inside the user's basket.
    }
})

Java

ConsumeParams consumeParams =
    ConsumeParams.newBuilder()
        .setPurchaseToken(/* token */)
        .setDeveloperPayload(/* payload */)
        .build();

ConsumeResponseListener listener = new ConsumeResponseListener() {
    @Override
    public void onConsumeResponse(BillingResult billingResult, String outToken) {
            if (billingResult.getResponseCode() == BillingResponse.OK) {
                // Handle the success of the consume operation.
                // For example, increase the number of coins inside the user's basket.
    }
};

billingClient.consumeAsync(consumeParams, listener);

Karena permintaan konsumsi terkadang bisa gagal, Anda harus memeriksa server backend aman untuk memastikan bahwa setiap token pembelian belum digunakan. Cara lainnya, Anda dapat menunggu sampai Anda menerima respons konsumsi berhasil dari Google Play sebelum menyediakan item tersebut. Jika Anda memilih untuk menahan pembelian dari pengguna hingga Google Play mengirimkan respons konsumsi berhasil, Anda harus sangat berhati-hati agar tidak kehilangan jejak pembelian setelah permintaan konsumsi tersebut.

Menerapkan promosi untuk produk sekali beli

Promosi, atau kode promosi, memungkinkan Anda memberikan produk sekali beli atau uji coba langganan secara gratis kepada beberapa pengguna dalam jumlah yang terbatas. Guna menerapkan kode promosi untuk produk sekali beli, buka Menerapkan promosi.

Langkah berikutnya

Setelah Anda menambahkan fitur khusus produk sekali beli, lihat Praktik Terbaik.