React-native-iap: 同じ商品を2回購入すると、エラーが発生します

作成日 2018年04月18日  ·  5コメント  ·  ソース: dooboolab/react-native-iap

react-native-iapのバージョン

0.3.13

エラーに直面したプラットフォーム(IOSまたはAndroid、あるいはその両方?)

iOS

予想される行動

問題なく製品を購入する予定です

実際の動作

「新しい」デバイスでproduct_Aを初めて購入すると、機能します。
2回目は同じproduct_Aを購入しようとします(アプリを再起動するかどうかは関係ありません)
動作しないでしょう。 エラーメッセージは次のとおりです。「不明または予期しないエラーが発生しました。後でもう一度やり直してください。」

行動を再現するための手順

1.ReadMEのようにIAPを実装します。

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);
    }

_このコードがcomponentDidMount()と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.最初の購入は問題ありません。
後でもう一度やり直してください。」

最も参考になるコメント

最新のv0.3.15では、メッセージ付きのerror codeが提供されます。
では、最新リリースをもう一度試してみてください。エラーコードは何ですか。
エラーコードが-1001の場合は、Appleからの一時的なサンドボックスの問題である可能性があります。
この問題も調べます。

全てのコメント5件

製品は消耗品ですか、それとも非消耗品ですか?

@JJMoon消耗品。
2018-04-19_07h40_09

最新のv0.3.15では、メッセージ付きのerror codeが提供されます。
では、最新リリースをもう一度試してみてください。エラーコードは何ですか。
エラーコードが-1001の場合は、Appleからの一時的なサンドボックスの問題である可能性があります。
この問題も調べます。

0.3.15にアップデートした後、この問題はiOSで解消されました。
Androidもうまく機能します。
ありがとう!

それは良かったです!
新しいリリースではログ以外は何も変更されていないため、Appleからの一時的な問題である可能性があります。
サンドボックスでテストするとき、非常に多くの問題がありました。
ほとんどの場合、AppStoreからリリースされた本番環境では発生しません。

このページは役に立ちましたか?
0 / 5 - 0 評価