React-native-iap: Der zweimalige Kauf des gleichen Produkts führt zu einem Fehler

Erstellt am 18. Apr. 2018  ·  5Kommentare  ·  Quelle: dooboolab/react-native-iap

Version von React-native-iap

0.3.13

Plattformen, auf denen der Fehler aufgetreten ist (IOS oder Android oder beides?)

iOS

Erwartetes Verhalten

Erwartet, ein Produkt ohne Probleme zu kaufen

Tatsächliches Verhalten

Ich kaufe zum ersten Mal ein Produkt_A auf einem "neuen" Gerät - es funktioniert.
Beim zweiten Mal versuche ich, dasselbe Produkt_A zu kaufen (egal ob ich die App neu starte oder nicht)
wird nicht funktionieren. Die Fehlermeldung lautet: "Ein unbekannter oder unerwarteter Fehler ist aufgetreten. Bitte versuchen Sie es später erneut."

Schritte zum Reproduzieren des Verhaltens

1.Implementieren Sie IAP wie in 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);
    }

_Nur für den Fall, dass ich diesen Code in meinem componentDidMount() und componentWillUnmount() habe:_

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.Erstkauf funktioniert ok.
Bitte versuchen Sie es später noch einmal."

Hilfreichster Kommentar

Die neueste v0.3.15 gibt Ihnen die error code mit einer Nachricht.
Können Sie also bitte die neueste Version erneut versuchen und wie lautet der Fehlercode?
Wenn der Fehlercode -1001 lautet, handelt es sich möglicherweise um ein temporäres Sandbox-Problem von Apple.
Ich werde mir dieses Thema auch anschauen.

Alle 5 Kommentare

Ist das Produkt verbrauchbar oder nicht verbrauchbar?

@JJMoon Verbrauchsmaterial.
2018-04-19_07h40_09

Die neueste v0.3.15 gibt Ihnen die error code mit einer Nachricht.
Können Sie also bitte die neueste Version erneut versuchen und wie lautet der Fehlercode?
Wenn der Fehlercode -1001 lautet, handelt es sich möglicherweise um ein temporäres Sandbox-Problem von Apple.
Ich werde mir dieses Thema auch anschauen.

Nach dem Update auf 0.3.15 verschwand das Problem auf iOS.
Android funktioniert auch super.
Danke schön!

Gut das zu hören!
Es kann sich um ein vorübergehendes Problem von Apple handeln, da die neue Version nur das Protokoll geändert hat.
Es gab so viele Probleme, als wir mit der Sandbox testeten.
Die meisten Fälle treten nicht in der vom App Store veröffentlichten Produktion auf.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

jvandenaardweg picture jvandenaardweg  ·  4Kommentare

coldfins picture coldfins  ·  3Kommentare

safciplak picture safciplak  ·  3Kommentare

chetstone picture chetstone  ·  4Kommentare

MacMillan13 picture MacMillan13  ·  3Kommentare