React-native-iap: Membeli produk yang sama dua kali akan memberikan kesalahan

Dibuat pada 18 Apr 2018  ·  5Komentar  ·  Sumber: dooboolab/react-native-iap

Versi reaksi-asli-iap

0.3.13

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

iOS

Perilaku yang diharapkan

Diharapkan untuk membeli produk tanpa masalah

Perilaku sebenarnya

Pertama kali saya membeli product_A pada perangkat "baru" - itu berfungsi.
Kedua kalinya saya mencoba membeli product_A yang sama (tidak peduli apakah saya me-restart aplikasi atau tidak)
tidak akan berfungsi. Pesan kesalahannya adalah: "Terjadi kesalahan yang tidak diketahui atau tidak terduga. Silakan coba lagi nanti."

Langkah-langkah untuk mereproduksi perilaku

1.Implementasikan IAP seperti di ReadME.

try {
      const msg = await RNIap.prepare()
      const products = await RNIap.getProducts([`${productId}`])
      const purchase = await RNIap.buyProduct(productId)
      this.props.purchaseCoinsPack(coinsPack)
      await RNIap.consumePurchase(purchase.transactionReceipt)
    } catch (err) {
      alert(err.message);
    }

_Untuk berjaga-jaga jika saya memiliki kode ini di componentDidMount() dan componentWillUnmount():_

getPurchases = async () => {
    try {
      const purchases = await RNIap.getAvailablePurchases();
      purchases.forEach(async purchase => {
        const boughtPack = R.find(R.propEq('androidStoreId', purchase.productId))(this.props.coinsPacks)
        if (boughtPack) {
          this.props.purchaseCoinsPack(boughtPack);
          await RNIap.consumePurchase(purchase.transactionReceipt);
        }
      })
    } catch (err) {
      console.warn(err); // standardized err.code and err.message available
    } finally {
      this.setState({ isLoading: false })
    }
  }

  async componentDidMount() {
    try {
      await RNIap.prepare()
    } catch (err) {
      console.warn(err);
    }
    this.getPurchases()
  }

  async componentWillUnmount() {
    RNIap.endConnection()
  }

2. Pembelian pertama berfungsi dengan baik.
Silakan coba lagi nanti."

Komentar yang paling membantu

v0.3.15 terbaru akan memberi Anda error code dengan sebuah pesan.
Jadi bisakah Anda mencoba lagi rilis terbaru dan apa kode kesalahannya?
Jika kode kesalahannya adalah -1001, itu mungkin masalah sandbox sementara dari Apple.
Saya akan melihat masalah ini juga.

Semua 5 komentar

Apakah produk habis pakai atau tidak habis pakai?

@JJMoon habis pakai.
2018-04-19_07h40_09

v0.3.15 terbaru akan memberi Anda error code dengan sebuah pesan.
Jadi bisakah Anda mencoba lagi rilis terbaru dan apa kode kesalahannya?
Jika kode kesalahannya adalah -1001, itu mungkin masalah sandbox sementara dari Apple.
Saya akan melihat masalah ini juga.

Setelah pembaruan ke 0.3.15 masalah menghilang di iOS.
Android juga bekerja dengan baik.
Terima kasih!

Senang untuk mendengarnya!
Ini mungkin masalah sementara dari Apple karena rilis baru tidak mengubah apa pun kecuali log.
Ada begitu banyak masalah ketika kami menguji dengan kotak pasir.
Sebagian besar kasus tidak terjadi dalam produksi yang dirilis oleh App Store.

Apakah halaman ini membantu?
0 / 5 - 0 peringkat