0.3.10
Android
Devo ser capaz de recomprar um item quantas vezes eu precisar, já que estou apenas testando
Devoluções
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)
Compre um item mais de uma vez usando uma conta de teste
@ilyakar Este é um produto consumível? Você deve consumi-lo para recomprá-lo. Leia alguns guias sobre como o IAP funciona no Android.
Olá @dooboolab , não é um produto consumível. Os usuários têm para sempre. Existe uma maneira de restaurar o produto, por isso é bom informar aos usuários na produção que não podem comprar o mesmo produto novamente, pois já o compraram. Mas, para fins de teste, fica muito desconfortável ter que usar uma conta diferente cada vez que todas as compras são compradas.
Eu não acho que tive esse problema em 0.2.17
@ilyakar Ah .. Desculpe, eu estava confuso. Na verdade, se for non-consumable
produto, você não pode recomprá-lo. Se isso fosse possível em 0.2.17
isso deve estar funcionando de forma inadequada. Somente produtos consumíveis podem recomprá-lo. É o mesmo em ambas as plataformas (iOS e Android). Se o usuário quiser restaurar o item, ele terá que fazê-lo opcionalmente, mas como em LINK , ele não cobrará do usuário novamente. Portanto, se você estiver projetando produtos no aplicativo que deseja cobrar dos usuários através da recompra, acho que você deve criar consumable
produto.
@ilyakar Recebi feedback do meu amigo desenvolvedor e ele também enfrentou o mesmo problema. Portanto, eu vim com a solução para usar o método refreshItems
que ocorre apenas em android
. Você pode usar isso em [email protected]
. Tente usá-lo após o método prepare
. Meu amigo estava enfrentando esse problema porque não conseguia encontrar a ficha do produto comprado para consumir. Portanto, este method
é apenas para sua comodidade se você não se preocupa com o histórico de compras que depende de playstore
. Quando você tem seu próprio back-end para coletar o histórico de compras, isso o ajudará a resolver o problema. Eu tenho que dar uma olhada neste mais difícil. Além disso, seguir readme
ajudaria você. Obrigado pelo seu relatório!
PS: Acho que o método acima também funcionará em non-consumable
product. Além disso, este artigo o ajudará a entender o que refeshItems
resolveria você.
Acho que isso já está resolvido, pois não acho que o IAP funciona com conta de teste
E a solução de @dooboolab de refreshItems
é o caminho a percorrer
Uma pergunta noob @dooboolab, pois só implementei o IAP uma vez em um aplicativo Android, mas nunca tentei se funciona
Podemos comprar um produto sem gastar nenhum dinheiro como $ 0❓
Sim, @ deadcoder0904 , esse é todo o conceito de contas de teste Android (https://developer.android.com/google/play/billing/billing_testing.html). Que funcionam bem com o plug-in, mas, como indiquei, você não pode fazer a mesma compra duas vezes.
@ilyakar Você está dizendo que ainda não está funcionando. Você tentou ligar para refreshItems
após comprar o produto? Conforme descrito aqui , isso pode causar algum atraso na playstore. No entanto, você pode forçar o consumo do produto para poder recomprá-lo novamente. Também estou curioso para saber por que isso funciona .. Também tome cuidado se você confia nas compras no histórico do Google Play e não na coleta em seu backend.
Olá @dooboolab , só estava respondendo a @ deadcoder0904 com meu conhecimento anterior. Infelizmente, não tentei sua solução e provavelmente não tentarei por algum tempo, pois não é uma solução urgente. Mas eu vou deixar você saber no futuro quando eu tiver.
@ilyakar tenha cuidado ao usar refreshItems
porque irá consumir todos os produtos que o usuário comprou. Você só pode usá-lo se não se importar com as informações armazenadas na playstore porque você tem seu servidor won. Além disso, esse problema costuma ocorrer como eu postei 13 dias atrás a partir daqui , se o usuário reembolsou o item, ele não pode recomprar o mesmo item por 24 horas.
Eu estava tendo o mesmo problema que @ilyakar e, usando o código abaixo, consegui limpar a compra de não consumíveis e testá-la novamente.
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 Esta solução não está funcionando no momento.
consumeAllItemsAndroid
vez de consumeAllItems
.A saída do console é:
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
Sobre:
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-iap": "^4.3.0",
@tulpn Parece que você não instalou corretamente nosso módulo, pois consumeAllItemsAndroid
deve estar funcionando bem.
@hyochan Não funcionou para mim.
@ root-ai Qual versão você está usando? Além disso, consulte o código que fornecemos em example
também.
Comentários muito úteis
Eu estava tendo o mesmo problema que @ilyakar e, usando o código abaixo, consegui limpar a compra de não consumíveis e testá-la novamente.