Realizar pagos “In-App” con Ionic Framework

Con Ionic Framework podemos aprovechar todo el potencial de Apache Cordova en nuestras aplicaciones, vamos a ver como realizar pagos dentro de una aplicación híbrida realizada con Ionic Framework. Este tutorial está enfocado al pago “InApp” con Android.

Antes de empezar necesitamos la clave de licencia, para ello tenemos que dar de alta la aplicación en Google Play, no es necesario subir el “.apk” de la aplicación de momento, solo tenemos que crear su ficha y copiar nuestra clave en la pestaña “Servicios y APIs“.

Vamos a usar el plugin “AndroidInAppBilling” para realizar los pagos, la instalación es muy sencilla, primero tenemos que clonar el repositorio en cualquier directorio:

Luego en la raíz de nuestro proyecto (aplicación Ionic), ejecutamos el siguiente comando, sustituyendo la ruta y clave por las correctas:

Ahora necesitamos el ID de un producto integrado en la aplicación (una compra), tenemos que crearla dentro de la pestaña “Productos integrados en la aplicación“, dentro de la ficha de la aplicación en Google Play, con nuestro ID ya creado, añadimos el siguiente código dentro de la función “ready” de Ionic Framework:

Sustituimos “productId1“, “productId2” con el código o códigos de nuestros productos. La función “getPurchases” devuelve todas las compras realizadas por el usuario actual, el formato de la respuesta es un array con los siguientes valores por cada compra:

Campo Descripción
orderId Código único que identifica la compra. Corresponde con el ID del pedido en Google Wallet.
packageName El nombre del paquete de la aplicación sobre la que se realizó la compra. (Ej: com.google.search)
productId Código del producto creado en Google Play.
purchaseTime Momento en el que se realizó la compra, dado en mili-segundos.
purchaseState El estado de la compra, los valores posibles son 0 (comprado), 1 (cancelado), 2 (devuelto).
purchaseToken Código único que identifica la compra de un producto para un usuario.

Luego para realizar una compra dentro de la aplicación podemos usar una función similar a esta:

Para probar la compra tenemos que firmar y subir el “.apk” a Google Play, ya sea en modo producción sin publicar (instalando directamente el mismo apk en nuestro dispositivo), o subir una versión beta. Para que los pagos de prueba no se hagan efectivos tenemos que asignar que cuentas de prueba vamos a usar, dentro de la configuración de la cuenta en la consola para desarrolladores de Google Play, en el campo “Cuentas de Gmail con acceso de prueba”, se pueden añadir hasta 400 cuentas separadas por comas.

Hay que tener en cuenta que el dispositivo que usemos para la compra, no puede tener como cuenta de Google principal, la misma cuenta de desarrollador. Para poder comprar dos veces el mismo producto con el mismo usuario (para realizar pruebas) tenemos que cancelar el pedido desde la cuenta de comerciante de Google Wallet, podemos acceder desde los datos de la cuenta de desarrollador y cancelar el pedido identificándolo por el “orderId“.

Más Información sobre las compras de prueba: http://developer.android.com/google/play/billing/billing_testing.html
Más Información en: https://github.com/poiuytrez/AndroidInAppBilling