React-native-iap: Comprar o mesmo produto duas vezes dará um erro

Criado em 18 abr. 2018  ·  5Comentários  ·  Fonte: dooboolab/react-native-iap

Versão do react-native-iap

0.3.13

Plataformas que você enfrentou o erro (IOS ou Android ou ambos?)

iOS

Comportamento esperado

Espera-se comprar um produto sem problemas

Comportamento real

Primeira vez que compro um product_A em um dispositivo "novo" - funciona.
Segunda vez que tento comprar o mesmo produto_A (não importa se reinicio o aplicativo ou não)
não funciona. A mensagem de erro é: "Ocorreu um erro desconhecido ou inesperado. Tente novamente mais tarde."

Passos para reproduzir o comportamento

1.Implemente o IAP como no 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);
    }

_Apenas no caso de eu ter esse código no meu componentDidMount() e 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. A primeira compra funciona bem.
Por favor, tente novamente mais tarde."

Comentários muito úteis

última v0.3.15 lhe dará o error code com uma mensagem.
Então, você pode tentar a versão mais recente novamente e qual é o código de erro?
Se o código de erro for -1001, pode ser um problema temporário do sandbox da Apple.
Vou olhar esta questão também.

Todos 5 comentários

O produto é consumível ou não consumível?

consumível @JJMoon .
2018-04-19_07h40_09

última v0.3.15 lhe dará o error code com uma mensagem.
Então, você pode tentar a versão mais recente novamente e qual é o código de erro?
Se o código de erro for -1001, pode ser um problema temporário do sandbox da Apple.
Vou olhar esta questão também.

Após a atualização para 0.3.15, o problema desapareceu no iOS.
O Android também funciona muito bem.
Obrigada!

Bom ouvir isso!
Pode ser um problema temporário da Apple, já que a nova versão não mudou nada além do log.
Houve tantos problemas quando testamos com o sandbox.
A maioria dos casos não acontece na produção liberada pela App Store.

Esta página foi útil?
0 / 5 - 0 avaliações