0.3.10
Androide
Debería poder recomprar un artículo tantas veces como sea necesario, ya que solo estoy probando
Devoluciones
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 un artículo más de una vez con una cuenta de prueba
@ilyakar ¿Es este un producto consumible? Debes consumir el artículo para recomprarlo. Lea algunas guías sobre cómo funciona IAP en Android.
Hola @dooboolab , no es un producto consumible. Los usuarios lo tienen para siempre. Hay una forma de restaurar el producto, por lo que es bueno informar a los usuarios en producción que no pueden volver a comprar el mismo producto porque ya lo compraron. Pero a efectos de prueba, resulta muy incómodo tener que utilizar una cuenta diferente cada vez que se han realizado todas las compras.
No creo que haya tenido este problema en 0.2.17
@ilyakar Ah .. Lo siento, estaba confundido. En realidad, si se trata de un producto non-consumable
, no se puede volver a comprar. Si eso fuera posible en 0.2.17
debe estar funcionando mal. Sólo los productos consumibles pueden recomprarlo. Es lo mismo en ambas plataformas (ios y android). Si el usuario desea restaurar el elemento, debe hacerlo opcionalmente, pero como en LINK , no volverá a cobrarle al usuario. Por lo tanto, si está diseñando productos integrados en la aplicación que desea cobrar a los usuarios mediante la recompra, creo que debería crear el producto consumable
.
@ilyakar Recibí comentarios de mi amigo desarrollador y él también enfrentó el mismo problema. Por lo tanto, se me ocurrió una solución para usar el método refreshItems
que solo ocurre en android
. Puede usar esto en [email protected]
. Intente usarlo después del método prepare
. Mi amigo se enfrentaba a este problema porque no podía encontrar la ficha del producto comprado para consumir. Por lo tanto, este method
es solo para su comodidad si no le importa el historial de compras que se basa en playstore
. Cuando tenga su propio backend que recopile el historial de compras, esto lo ayudará a resolver el problema. Tengo que echarle un vistazo a este más duro. Además, seguir el readme
lo ayudaría. ¡Gracias por tu informe!
PD: Creo que el método anterior también funcionará en el producto non-consumable
. Además, este artículo te ayudará a comprender lo que refeshItems
te resolvería.
Creo que esto ya está resuelto porque no creo que IAP funcione con la cuenta de prueba
Y la solución de @dooboolab de refreshItems
es el camino a seguir
Una pregunta de novato @dooboolab, ya que solo he implementado IAP una vez en una aplicación de Android, pero nunca lo intenté si funciona
¿Podemos comprar un producto sin gastar dinero como $ 0?
Sí, @ deadcoder0904 , ese es todo el concepto de cuentas de prueba de Android (https://developer.android.com/google/play/billing/billing_testing.html). Que funcionan bien con el complemento, pero como he señalado, no puede realizar la misma compra dos veces.
@ilyakar Estás diciendo que todavía no funciona. ¿Intentó llamar refreshItems
después de comprar el producto? Como se describe aquí , puede causar cierto retraso en Play Store. Sin embargo, puede forzar el consumo del producto para poder recomprarlo nuevamente. Sin embargo, también tengo curiosidad por saber por qué esto funciona ... También ten cuidado si confías en las compras en el historial de Google Play y no lo recopilas en tu backend.
Hola @dooboolab , estaba respondiendo a @ deadcoder0904 con mis conocimientos previos. Me temo que no he probado tu solución y probablemente no lo haré por algún tiempo, ya que no es una solución urgente. Pero te lo haré saber en el futuro cuando lo haya hecho.
@ilyakar ten cuidado con refreshItems
porque consumirá todos los productos que el usuario haya comprado. Solo puede usarlo si no le importa la información almacenada en PlayStore porque tiene su servidor ganado. Además, este problema suele ocurrir como publiqué hace 13 días desde aquí , si el usuario ha reembolsado el artículo, el usuario no puede volver a comprar el mismo artículo durante 24 horas.
Me estaba encontrando con el mismo problema que @ilyakar , y usando el código a continuación pude borrar la compra no consumible y probarla nuevamente.
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 solución no funciona en este momento.
consumeAllItemsAndroid
lugar de consumeAllItems
.La salida de la consola es:
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
En:
"react": "16.9.0",
"react-native": "0.61.3",
"react-native-iap": "^4.3.0",
@tulpn Parece que no ha instalado correctamente nuestro módulo ya que consumeAllItemsAndroid
debería estar funcionando bien.
@hyochan no funcionó para mí.
@ roots-ai ¿Qué versión estás usando? Además, consulte el código que proporcionamos en example
también.
Comentario más útil
Me estaba encontrando con el mismo problema que @ilyakar , y usando el código a continuación pude borrar la compra no consumible y probarla nuevamente.