React-native-iap: テストアカウントでAndroidアイテムを再購入することはできません

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

react-native-iapのバージョン

0.3.10

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

アンドロイド

予想される行動

テストしているだけなので、必要な回数だけアイテムを再購入できるはずです。

実際の動作

戻り値

Error: You already own this item.
    at createErrorFromErrorData (59522b9c-ca17-4e00-9e00-05cc989b1199:2016)
    at 59522b9c-ca17-4e00-9e00-05cc989b1199:1968
    at MessageQueue.__invokeCallback (59522b9c-ca17-4e00-9e00-05cc989b1199:2410)
    at 59522b9c-ca17-4e00-9e00-05cc989b1199:2155
    at MessageQueue.__guardSafe (59522b9c-ca17-4e00-9e00-05cc989b1199:2323)
    at MessageQueue.invokeCallbackAndReturnFlushedQueue (59522b9c-ca17-4e00-9e00-05cc989b1199:2154)
    at t (RNDebuggerWorker.js:1)

行動を再現する手順

テストアカウントを使用してアイテムを複数回購入する

🙏 help wanted

最も参考になるコメント

@ilyakarと同じ問題が


async componentDidMount() {
    const { itemSkus } = this.props;
    try {
      const result = await RNIap.initConnection()
      console.log('initiated connection?', result)
      const consumed = await RNIap.consumeAllItems();
      console.log('consumed all items?', consumed)
      let products = await RNIap.getProducts(itemSkus);
      console.log('loaded products', products)
    } catch (err) {
      console.warn(err);
    }
  };

全てのコメント16件

@ilyakarこれは消耗品ですか? あなたはそれを買い戻すためにItemを消費するべきです。 AndroidでIAPがどのように機能するかについてのガイドをお読みください。

こんにちは@dooboolab 、それは消耗品ではありません。 ユーザーは永遠にそれを持っています。 製品を復元する方法があるので、同じ製品をすでに購入しているため、同じ製品を再度購入できないことを本番環境でユーザーに知らせることをお勧めします。 しかし、テストの目的で、すべての購入が購入されるたびに異なるアカウントを使用しなければならないことは非常に不快になります。

0.2.17ではこの問題はなかったと思います

@ilyakarああ..すみません、混乱しました。 実際、 non-consumable商品の場合、実際に再購入することはできません。 それが0.2.17で可能だった場合、それは厄介に機能しているに違いありません。消耗品のみがそれを買い戻すことができます。 両方のプラットフォーム(iosとandroid)で同じです。 ユーザーがアイテムを復元したい場合は、オプションでそれを行う必要がありますが、 LINKのように、ユーザーに再度請求することはありません。 したがって、再購入によってユーザーに請求するアプリ内製品を設計する場合は、 consumable製品を作成する必要があると思います。

@ilyakar友人の開発者からフィードバックがあり、彼も同じ問題に直面しました。 そのため、私が使用して解決策を考え出したrefreshItemsだけで起こることの方法android 。 これは[email protected]使用できます。 prepareメソッドの後に使用してみてください。 私の友人は、購入した製品のトークンを見つけることができなかったため、この問題に直面していました。 したがって、このmethodは、 playstore依存する購入の履歴を気にしない場合に便利です。 購入履歴を収集する独自のバックエンドがある場合、これは問題の解決に役立ちます。 私はこれをさらに見なければなりません。 また、 readmeに従うと役に立ちます。 ご報告ありがとうございます!

PS上記の方法はnon-consumable製品でも機能すると思います。 また、この記事は、 refeshItemsがあなたを解決するものを理解するのに役立ちます。

IAPがテストアカウントで機能するとは思わないので、これはすでに解決されていると思います

そして、 @ dooboolabrefreshItemsのソリューションが進むべき道です

AndroidアプリにIAPを実装したのは1回だけですが、機能するかどうかは試したことがないため、noobの質問@dooboolabが1つあります😂

$0❓のようなお金を使わずに製品を購入できますか?

はい@ deadcoder0904 、これがAndroidテストアカウントの全体的な概念です(https://developer.android.com/google/play/billing/billing_testing.html)。 これはプラグインで問題なく動作しますが、私が指摘したように、同じ購入を2回行うことはできません。

@ilyakarあなたはそれがまだ機能していないと言っています。 製品を購入した後、 refreshItemsに電話をかけてみましたか? ここで説明されて

こんにちは@dooboolab 、私は以前の知識で@ deadcoder0904に応答していました。 私はあなたの解決策を試したことがないのではないかと思います。緊急の修正ではないので、おそらくしばらくは試しません。 でも、将来、私が持っているときにお知らせします。

@ilyakarは、ユーザーが購入したすべての製品を消費するため、 refreshItems使用に注意してください。 獲得したサーバーがあるため、プレイストアに保存されている情報を気にしない場合にのみ使用できます。 また、この問題は、13日前にここから投稿したように発生します。ユーザーがアイテムを払い戻した場合、ユーザーは同じアイテムを24時間再購入できない場合があります。

@ilyakarと同じ問題が


async componentDidMount() {
    const { itemSkus } = this.props;
    try {
      const result = await RNIap.initConnection()
      console.log('initiated connection?', result)
      const consumed = await RNIap.consumeAllItems();
      console.log('consumed all items?', consumed)
      let products = await RNIap.getProducts(itemSkus);
      console.log('loaded products', products)
    } catch (err) {
      console.warn(err);
    }
  };

@TylerNoblettこのソリューションは現在機能していません。

  • 私は試してみましたconsumeAllItemsAndroidの代わりにconsumeAllItems
    それ以上の助けをいただければ幸いです。

コンソール出力は次のとおりです。

setUpDeveloperTools.js:73 TypeError: _reactNativeIap.default.consumeAllItems is not a function
    at loadPurchases$ (NewGameScreen.js:167)
    at tryCatch (runtime.js:45)
    at Generator.invoke [as _invoke] (runtime.js:271)
    at Generator.prototype.<computed> [as next] (runtime.js:97)
    at tryCatch (runtime.js:45)
    at invoke (runtime.js:135)
    at runtime.js:145
    at tryCallOne (core.js:37)
    at core.js:123
    at JSTimers.js:289

オン:

    "react": "16.9.0",
    "react-native": "0.61.3",
    "react-native-iap": "^4.3.0",

@tulpn consumeAllItemsAndroidは正常に機能しているはずなので、モジュールが正しくインストールされていないようです。

@hyochan私のために働いていませんでした。

@ roots-aiどのバージョンを使用していますか? また、 example提供されているコードも参照してください。

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