Saya telah mencoba menyiapkan penagihan dalam aplikasi untuk aplikasi pertama saya, dan telah menggunakan sku android.test.purchased. Pembelian berhasil, dan saya berhasil memasukkan SKU ke dalam inventaris saya, tetapi, seperti judulnya, onIabPurchaseFinished, tidak pernah dipanggil.
Saya pikir itu mungkin ada hubungannya dengan Log ini: "Tidak dapat menyimpan tampilan mana yang memiliki fokus karena tampilan terfokus com.android.internal.policy.impl.PhoneWindow$DecorView@406743d0 tidak memiliki id". Itu muncul, tepat sebelum pergi ke Google Play. Saya tidak begitu yakin apa artinya itu ...
Meluncurkan pembelian:
mHelper.launchPurchaseFlow(this, sku, 10001, mPurchaseFinishedListener, "");
Dan Pendengar:
IabHelper.OnIabPurchaseFinishedListener mPurchaseFinishedListener = new IabHelper.OnIabPurchaseFinishedListener() {
@Override
public void onIabPurchaseFinished(IabResult result, Purchase info) {
System.out.println("Purchase Finish heard something");
if (result.isFailure()) {
Log.d(TAG, "Error purchasing: " + result);
return;
} else{
Log.d(TAG,"Success!");
}
}
};
android
in-app-billing
AAAton
sumber
sumber
Jawaban:
Coba tambahkan ini ke Aktivitas yang memanggil
mHelper.launchPurchaseFlow(..)
:sumber
saya baru saja menemukan hal penting lainnya: kode permintaan yang digunakan untuk meluncurkan aliran pembelian harus> = 0!
saya menggunakan "new Random (). nextInt ()" untuk menghasilkan requestCode acak, dan terkadang berhasil, terkadang tidak. sekarang saya menemukan dalam dokumentasi berikut, bahwa requestCode tidak boleh berupa angka negatif:
http://developer.android.com/reference/android/app/Activity.html#startActivityForResult%28android.content.Intent,%20int%29
sumber
Saya memiliki masalah yang sama dan onActivityResult juga tidak dipanggil.
Terinspirasi dari jawaban @ Ghulam, saya menyadari bahwa aktivitas onActivityResult tidak memanggil onActivityResult fragmen secara otomatis, jadi saya harus melakukannya secara manual.
sumber
Anda perlu memanggil onActivityResult () yang dilindungi void; Di Aktivitas orang tua Anda, bukan MainActivity (Trivial Drive) di mana dari Anda memanggil MainActivity Anda yaitu Aktivitas Drive Trivial.
Anda akan menerima nilai kode hasil -1 jika pembelian berhasil jika tidak 0.
sumber
Saya menghadapi masalah yang sama dan solusi yang diterima sudah diterapkan tetapi tidak tahu apa yang menyebabkan ini. Pindah ke Library Layanan Penagihan Google Play 1.0 yang baru (dirilis pada 19 September 2017) telah memperbaiki masalah saya!
Saya berharap tautan berikut akan membantu seseorang yang ingin menerapkan perpustakaan baru:
Entri blog Google tentang rilis tersebut
Video youtube Google
Mainkan Kelas Pelatihan Perpustakaan Penagihan
Contoh Trivial Drive v2 Google
Codelab Play Billing Library yang dipublikasikan selama Google I / O 2017
Mainkan Dokumen Perpustakaan Penagihan
Referensi resmi untuk kelas dan metode
Merilis catatan
sumber