Amazon IAP SDK: No hay respuesta al probar IAPs en Live App Testing
Estoy intentando integrar la última versión de la Amazon IAP API en mi aplicación Android 4+. Todo parece funcionar bien cuando la aplicación se carga en mis dispositivos de prueba (Nexus 5 y Kindle Fire) y se utiliza con el probador de aplicaciones de Amazon. Los IAP se pueden comprar sin ningún problema.
Sé que he subido una versión de "Aplicación de prueba en vivo" de la aplicación a la tienda de Amazon y la he instalado en mis dispositivos de prueba. Ejecutar estas versiones IAPs no son posibles.
- Android en la verificación de compra de facturación de aplicaciones no se pudo
- En la facturación de la aplicación no funciona después de la actualización - Google Store
- ¿Cuál es la respuesta del producto de suscripción cancelado del desarrollador de google? Api android
- Comprobación de la firma del servidor de compras de Android en la aplicación mediante php OpenSSL
- Métodos alternativos de compra en la aplicación para Android
Esta es la salida de registro cuando se utiliza la versión de sideloaded con App Tester:
D/PTLog (14109): IAPManager - init - using Amazon D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener registered: xyz.IAPManager@425fe410 D/d (14109): In App Purchasing SDK - Sandbox Mode: PurchasingListener Context: xyz D/c (14109): In App Purchasing SDK - Sandbox Mode: sendPurchaseUpdatesRequest/sendGetUserData first:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.appUserId flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:87 com.amazon.device.iap.internal.aca:150 D/c (14109): In App Purchasing SDK - Sandbox Mode: sendItemDataRequest W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.itemData flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:137 com.amazon.device.iap.internal.da:103 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse I/c (14109): sendGetPurchaseUpdates with user idl3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU= I/c (14109): send PurchaseUpdates with user id:l3HL7XppEMhrOGDnur9-ulvqomrSg6qyODKmah76lJU=;reset flag:true, local cursor:null, parsed from old requestId:GET_USER_ID_FOR_PURCHASE_UPDATES_PREFIX:1:fca787d5-4b9d-42e4-840f-ff28f3d13ac4 W/ContextImpl(14109): Implicit intents with startService are not safe: Intent { act=com.amazon.testclient.iap.purchaseUpdates flg=0x10000000 (has extras) } android.content.ContextWrapper.startService:494 com.amazon.device.iap.internal.aca:421 com.amazon.device.iap.internal.ace:388 D/c (14109): In App Purchasing SDK - Sandbox Mode: handleResponse
Como se puede ver el SDK de compras se inicializa muy bien. Ahora, al usar la versión de prueba de la aplicación en vivo, el registro muestra lo siguiente:
D/PTLog (18032): IAPManager - init - using Amazon D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener registered: xyz.aad@410435f8 D/Kiwi (18032): In App Purchasing SDK - Production Mode: d: PurchasingListener Context: xyz@41021558 D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetPurchaseUpdates D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task. D/Kiwi (18032): In App Purchasing SDK - Production Mode: a: sendGetProductDataRequest D/Kiwi (18032): Kiwi: WARNING: Use of deprecated method detected. E/Kiwi (18032): Kiwi: Kiwi subsystem is not fully initialized. Cannot process task.
Como puede ver, parece que existe un problema con el SDK de compras:
"Kiwi: WARNING: Use of deprecated method detected."
No importa si la versión Live App Testing se usa en Kindle o en el Nexus con la última versión de la aplicación Amazon Store. El resultado es exactamente el mismo: los IAP no son posibles.
¿Se trata de un problema conocido? ¿Cómo se puede resolver esto?
Muchas gracias
- "Error al recuperar información del servidor RPC S-7 AEC-0" al probar la facturación de Google en la aplicación
- Token que identifica al usuario
- Obtener el ID de Google utilizado en una compra de facturación integrada en la aplicación
- ¿Dónde puedo obtener el precio del artículo, el impuesto total y los gastos de envío al realizar un seguimiento de las compras en Android?
- Compras de Android en la aplicación con Phonegap
- Verificación de la firma de compra en la aplicación con PHP openssl
- Suscripción móvil multiplataforma (Android + iOS)
- Proguarding Android Apps - lo esencial es (especialmente en relación con los pagos en la aplicación)
Finalmente encontré una solución para los problemas descritos en mi pregunta. Lo siento por no publicar esto antes …
Hay una pista en los documentos de API de Amazon que describe que hay algunas limitaciones que se pueden usar para ofuscar el código. Parece que algunos API no funciona más si la ofuscación es demasiado fuerte.
¿Está registrando el oyente de devolución de llamada de Amazon en su MainActivity.onCreate (…)?
PurchasingService.registerListener (this.getApplicationContext (), nuevo YourCallbackPurchasingListener ());
Si no lo hace, pruebe eso.
- Maven: Uso de bibliotecas Java 8 en aplicaciones instrumentadas con retrolambda-maven-plugin y DEX-ed con android-maven-plugin
- Después de actualizar los servicios de reproducción de Google a las notificaciones de envío 8.4.0 mostradas por ellos mismos