React-native-iap: iOS: Pembelian dalam aplikasi ini telah dibeli.

Dibuat pada 12 Sep 2018  ·  16Komentar  ·  Sumber: dooboolab/react-native-iap

Versi react-native-IAP

"react-native-iap": "^2.0.3",

Platform yang Anda hadapi kesalahan (IOS atau Android atau keduanya?)

iOS

Perilaku yang diharapkan

Melakukan pembelian

const pembelian = menunggu RNIap.buyProductWithoutFinishTransaction (productId)
const {transactionReceipt, purchaseToken} = pembelian
sendToServer (transactionReceipt, {
onSuccess: () => {
RNIap.finishTransaction ()
RNIap.consumeAllItems ()
}})

Perilaku sebenarnya

Dialog: “Pembelian dalam aplikasi ini telah dibeli”. Ini hanya terjadi untuk satu SKU, yang lainnya berfungsi dengan baik. Sepertinya aplikasi dalam keadaan buruk dan saya tidak melihat cara untuk memperbaikinya. Saya lelah menelepon finishTransaction dan consumeAllItems pada inisialisasi tetapi itu tidak memperbaikinya. SKU lain yang dapat saya beli beberapa kali tanpa masalah. Tidak ada yang dikembalikan untuk getPurchaseHistory .

Lingkungan yang diuji (Emulator? Perangkat Nyata?)

Perangkat (kotak pasir)

Langkah-langkah untuk mereproduksi perilaku

Saya tidak yakin.

📱 iOS 🙏 help wanted

Komentar yang paling membantu

Saya memanggil kode asli ini .

Ketika saya memanggilnya di didFinishLaunchingWithOptions currentQueue.transactions kosong, tetapi memanggilnya di applicationDidBecomeActive berfungsi.

Ini berhasil:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  // take current payment queue
  SKPaymentQueue* currentQueue = [SKPaymentQueue defaultQueue];
  [currentQueue restoreCompletedTransactions];
  // finish ALL transactions in queue
  //  [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
  [currentQueue.transactions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [currentQueue finishTransaction:(SKPaymentTransaction *)obj];
  }]; 
}

Saya tidak yakin bagaimana tapi mungkin kita bisa mengekspos fungsi ini di perpustakaan?

Semua 16 komentar

@Sideris Ya aneh. Saya sudah menambal masalah ini seperti yang diceritakan di stackoverflow tetapi masih terjadi di beberapa perangkat. Saya bersedia memperbaikinya juga. Perangkat mana yang Anda gunakan?

@siderakis Ini mungkin menyelesaikan aplikasi Anda dalam kondisi buruk, saya kira. Bisakah kamu mencobanya?

Saya mencobanya dan tidak berhasil. Saya juga menginstal ulang aplikasi dan itu tidak membantu. Ini berjalan di iPad.

Saya menetapkan breakpoint dan sepertinya currentQueue.transactions kosong

Dari SKPaymentQueue.h

// Array of unfinished SKPaymentTransactions.  Only valid while the queue has observers.  Updated asynchronously.
@property(nonatomic, readonly) NSArray<SKPaymentTransaction *> *transactions NS_AVAILABLE_IOS(3_0);

<strong i="6">@end</strong>

Mungkin aku meneleponnya terlalu cepat

Saya memanggil kode nanti dalam eksekusi program dan memperbaiki masalah.

@siderakis Maaf sudah mengganggu. Tapi, kode apa yang Anda panggil?
Array transactions adalah properti, bukan metode, yang tidak ada dalam kode kita.
Apakah maksud Anda finishTransaction ?

Saya memanggil kode asli ini .

Ketika saya memanggilnya di didFinishLaunchingWithOptions currentQueue.transactions kosong, tetapi memanggilnya di applicationDidBecomeActive berfungsi.

Ini berhasil:

- (void)applicationDidBecomeActive:(UIApplication *)application
{
  // take current payment queue
  SKPaymentQueue* currentQueue = [SKPaymentQueue defaultQueue];
  [currentQueue restoreCompletedTransactions];
  // finish ALL transactions in queue
  //  [[SKPaymentQueue defaultQueue] finishTransaction:transaction];
  [currentQueue.transactions enumerateObjectsUsingBlock:^(id obj, NSUInteger idx, BOOL *stop) {
    [currentQueue finishTransaction:(SKPaymentTransaction *)obj];
  }]; 
}

Saya tidak yakin bagaimana tapi mungkin kita bisa mengekspos fungsi ini di perpustakaan?

@sider_kita Itulah yang saya maksud dalam edisi # 259.
Saya rasa tindakan itu bisa dilakukan di mana saja setelah applicationDidBecomeActive.
Jadi, saya akan mengekspos metode itu ke sisi JS, pengguna itu dapat memanggilnya kapan saja.
Terima kasih atas saran Anda.

@JJMoon , Saya memiliki masalah yang sama, Kapan kami dapat mengharapkan resolusi untuk mengungkap metode seperti yang Anda sebutkan di atas. Terima kasih.

@sivrihuseyin Masalah sudah diketahui sekarang. Kami akan membuat tambalan akhir pekan ini. Terima kasih untuk semua penerbit.

Kami telah merilis solusi yang diharapkan dalam 2.2.0 . Bisakah Anda mengikuti readme dan mencoba baris kode ini?

Halo Hyo Chan,

Terima kasih untuk informasinya.

Saya telah menginstal versi 2.2.0 dan mencoba kodenya. Sayangnya
masalah belum diperbaiki. berpikir bahwa fungsinya, * clearTransaction * belum
telah diekspor. Di lingkungan reactNative tidak ada clearTransaction
berfungsi di dalam RNIap.

Saya memeriksa file index.d.ts dan saya tidak bisa melihat fungsinya sebagai
clearTransaction ini. mengajukan.

Salam,

Huseyin

Pada hari Minggu, 16 Sep 2018 pukul 14:25 Hyo Chan Jang [email protected]
menulis:

Tutup # 257 https://github.com/dooboolab/react-native-iap/issues/257
melalui a5f225d
https://github.com/dooboolab/react-native-iap/commit/a5f225d470af0a85417325d24357667e54aa7078
.

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/dooboolab/react-native-iap/issues/257#event-1848183078 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AiH7bOp96EzsoX82UVxKHK2LkN7PNWVAks5ubjUogaJpZM4WmG_0
.

Halo Hyo Chan,

Saya minta maaf atas informasi yang salah. ITU TETAP. Tidak ada masalah
lagi.

Terima kasih atas tanggapan cepat dan solusi hebat Anda.

Salam,

Huseyin

Pada Minggu, 16 Sep 2018 pukul 14.56 Huseyin Sivri [email protected]
menulis:

Halo Hyo Chan,

Terima kasih untuk informasinya.

Saya telah menginstal versi 2.2.0 dan mencoba kodenya. Sayangnya
masalah belum diperbaiki. berpikir bahwa fungsi, * clearTransaction * memiliki
belum diekspor. Di lingkungan reactNative tidak ada clearTransaction
berfungsi di dalam RNIap.

Saya memeriksa file index.d.ts dan saya tidak bisa melihat fungsinya sebagai
clearTransaction ini. mengajukan.

Salam,

Huseyin

Pada hari Minggu, 16 Sep 2018 pukul 14:25 Hyo Chan Jang [email protected]
menulis:

Tutup # 257 https://github.com/dooboolab/react-native-iap/issues/257
melalui a5f225d
https://github.com/dooboolab/react-native-iap/commit/a5f225d470af0a85417325d24357667e54aa7078
.

-
Anda menerima ini karena Anda disebutkan.
Balas email ini secara langsung, lihat di GitHub
https://github.com/dooboolab/react-native-iap/issues/257#event-1848183078 ,
atau nonaktifkan utasnya
https://github.com/notifications/unsubscribe-auth/AiH7bOp96EzsoX82UVxKHK2LkN7PNWVAks5ubjUogaJpZM4WmG_0
.

Itu diperbaiki dengan versi 2.2.0 dengan menerapkan fungsi clearTransaction. Terima kasih
@JJJ

Untuk karyawan Google di masa mendatang yang meningkatkan versi dari v2 ke v3-5, saya merasa ini berguna

https://github.com/dooboolab/react-native-iap/blob/de0fc084966fc4d36a9c45f4e27cb166243d4319/README_DEPRECATED.md

Apakah halaman ini membantu?
0 / 5 - 0 peringkat