Aitor Sánchez - Blog - Oct. 31, 2023, 7:43 p.m.
¿Necesitas incluir compras dentro de la aplicación y has pensado en el componente In App Pucharses Ionic? O, quizás ya sabes cómo se hace, pero te falta algún detallito más para terminar de implementarlo correctamente ¿verdad?
Mi nombre es Aitor Sánchez, soy desarrollador de apps desde 2014, y en este artículo, de una manera clara y accionable, aprenderás a cobrar a tu usuario desde tu aplicación para así comenzar a vender productos digitales en ella.
Pero antes de continuar, esta es la Flutter Mafia. Es mi newsletter donde tu vas a aprender a hacer apps y a ganar dinero con ellas junto con otros genietes que ya están dentro. Y si te suscribes te regalo mi ebook "Duplica los ingreso de tus apps en 5 minutos" No es broma, quizás te interese.
Y ahora si, comenzamos. Let´s go!
Pues, básicamente, se trata de una api que nos proporciona un sistema robusto para poder ofrecer al usuario compras y suscripciones dentro de nuestra aplicación programada en Ionic.
Cómo con todos los componentes desacoplados del core, y este no iba a ser menos, necesitamos instalarlo en nuestra app. Para tal fin, vamos a utilizar las dos siguiente líneas de código:
$ ionic cordova plugin add cordova-plugin-inapppurchase
$ npm install @ionic-native/in-app-purchase
La primera instalará el plugin que nos permitirá la comunicación nativa con el sistema donde se ejecute la app.
La segunda será el puente de código TS necesario para que nos podamos comunicar desde nuestro código con el plugin que hemos instalado en el paso anterior.
A diferencia de la mayoría de componentes, en los que no son necesarias configuraciones, en este sí.
Para que todo funcione guay tendremos que crear los productos, o las suscripciones, que se van a vender en la app en cada una de las consolas de desarrollo.
Para aligerar el artículo, por que se podría hacer otro tuto solo para eso, aquí te dejo el enlace de Google donde explica cómo se puede hacer.
Y en caso de iOS, aunque un poco más enrevesado en este enlace, se puede utilizar perfectamente. Tendremos que seguir el punto “Implementación Paso a Paso” del ejemplo.
Una vez terminado esto, hay un paso más. En caso de que estés usando Ionic 4, y el módulo NGX, no será necesario que hagas esto. De lo contrario, tendrás que agregar el módulo a los providers de la app de la siguiente manera:
providers: [
…,
InAppPurchase,
…
]
Recuerdo que no será necesario que incluyas el módulo en el global de la app, solo donde vayas a hacer uso de él. Así estarás incurriendo en buenas prácticas de desarrollo y en la mejora de rendimiento de la app.
Actualmente, el componente soporta las siguientes:
Pues bien, cómo en todos los artículos, vamos a situarnos primero ante un trozo funcional de código para así después pasar a comentarlo más adelante y entenderlo mejor.
import { InAppPurchase } from '@ionic-native/in-app-purchase/ngx';
constructor(private iap: InAppPurchase) { }
...
this.iap
.getProducts(['prod1', 'prod2', ...])
.then((products) => {
console.log(products);
// [{ productId: 'com.yourapp.prod1', 'title': '...', description: '...', price: '...' }, ...]
})
.catch((err) => {
console.log(err);
});
this.iap
.buy('prod1')
.then((data)=> {
console.log(data);
// {
// transactionId: ...
// receipt: ...
// signature: ...
// }
})
.catch((err)=> {
console.log(err);
});
Bien, cómo hemos visto aquí, hemos realizado una compra a través del servicio de compras in app. Ahora bien, vamos a ver el resto de cosas que podemos hacer, porque, por ejemplo, si queremos saber si un usuario ha comprado algo, o no, tendremos que ver cómo se hace. Venga, vamos al lio.
Cómo he mencionado en el párrafo anterior, solo con el ejemplo no vale. Para poder hacer uso completo de dicho módulo, tenemos que conocer los siguientes métodos más a fondo.
Recuerdo que estos métodos y campos que vamos a ver ahora corresponden directamente a esta clase. Los de los “parents” no serán mostrados aquí.
Con esta función podremos acceder a la información de los productos que tenemos registrados en los stores. Estos productos sirven para poder realizar la compra posteriormente o para mostrarlos a los usuarios.
Esta función lanza un diálogo para que el usuario pueda comprar el producto que hemos solicitado mediante el parámetro.
Esta función lanza un diálogo para que el usuario pueda suscribirse al producto que hemos solicitado mediante el parámetro.
Esta función nos servirá para que podamos consumir los productos que el usuario ha comprado.
Hay que tener cuidado con esto, porque es posible que estemos dándole al usuario las ventajas de haber comprado algo y la posibilidad de rembolsarlo cuando quiera en caso de que no lo consuma. Ojo con esto, lo digo po experiencia :)
Esta función nos permitirá acceder a las comprar que ha realizado el usuario que está usando la aplicación filtrado por la cuenta de Google Play, o la de App Store, asociada a la tienda.
En la promesa llegarán todas las compras realizadas y con toda su información para que podamos evaluar lo que necesitemos.
En primer lugar, esta función solo está disponible para iOS, en Android no es necesaria. Y lo que hace, cómo he comentado en el retorno, podemos obtener los datos del comprobante de compra.
Se suele utilizar cuando vamos a consumir un producto con el método “consume”, cómo hemos visto antes. Por eso he dicho que sería bueno guardarlo, y si no es lo que quiere, puedes recuperarlo de esta manera.
Mira, en el momento que tu mejoras el logo de una app que tengas publicada en Google Play, las descargas y los ingresos que esta aplicación genera aumentan. Esto es así. Mejor logo es igual a más dinero.
Basándonos en esto, hemos creado esta herramienta que te permite evaluar, optimizar y mejorar los logos de tus apps para que reciban más descargas. No te quiero espoilear, dentro hay un video explicativo. Entra en el enlace.
Nos vemos en el siguiente artículo. Hasta entonces, que vaya bien.