[Universal Apps] Monetización con Fortumo Mobile Payments

Hola a todos!

Después de un descanso de vacaciones y escribir algo menos de lo normal para dedicar tiempo a otros proyectos… aquí vuelvo a la carga. Además, con uno de los temas que más nos interesan a los devs… ¡Como ganar dinero!.

Bueno, en este caso concreto, veremos realmente como hacer más fácil al usuario gastarse el dinero. Por defecto, podemos integrar de forma muy sencilla las APIs de In App Purchase de WinRT en nuestras aplicaciones universales. El único problema, por buscar alguno, es que el método de pago será una tarjeta de crédito asociada a la cuenta de la tienda. En algunos países, Microsoft ya soporta pagos con el operador móvil, pero son los menos.

El echo es que mucha gente no gusta de incluir una tarjeta de crédito en su cuenta de la tienda y en un gran número de países, no todo el mundo tiene acceso a una. Esto puede crear una situación, anecdótica para el usuario, pero muy preocupante para nosotros: El usuario quiere pagarnos, pero ¡NO PUEDE!

Es curioso, pero es un problema… en el que nadie suele pensar. Desarrollas tu app, pones opciones de pago y la lanzas al mercado. Luego en las analíticas ves que mucha gente presiona el botón de quitar publicidad o de comprar items… pero en la tienda, tus compras reales son mucho menores… Y piensas que es que la gente se ha arrepentido (que seguro que un porcentaje lo ha hecho). Pero la realidad es que hay una parte de esa gente, que ha tenido que cancelar la operación por que no le dabas opciones validas con las que pagar. Creo que es algo, que pocos se plantean, aunque después de pensar en ello 5 minutos digas, ¡Como lo he podido pasar por alto!

Lo que si que tiene todo el mundo, o al menos la gran mayoría, que posee un smartphone es una tarjeta SIM y un contrato (o saldo prepago) con una operadora. De esta forma, si encontrásemos la forma de que el usuario nos pagase con su móvil directamente, todos podrían pagar. Este es el momento en el que alguien podría decir… eh espera, Microsoft soporta pago por operador en Windows Phone. Si y no:

  • Es verdad que Microsoft soporta pago por operador, solo en 37 países de los 191 donde se encuentra presente la tienda.
  • En cada país solo soporta pagos si el operador de tu SIM está adherido. Por ejemplo en España soporta pagos si tu operador es Movistar o Vodafone. Si es Yoigo, Orange, u otro… mala suerte
  • Está soportado en Windows Phone, NO en Windows Store. Esto complica el desarrollo de apps universales.

En este terreno es donde entran empresas como Fortumo Mobile Payments, que incrementa y mejora las opciones de pago que nos ofrece Microsoft:

  • En primer lugar, Fortumo está disponible ahora mismo en 81 paises. Eso son 44 más que el operator billing de Microsoft.
  • En mi opinión, los países presentes en Fortumo son más importantes. Es muy probable que cualquiera en Finlandia, Francia o Estados Unidos tenga una tarjeta de credito. Pero países como India, Moldavia, Nigeria, Pakistan o Korea pueden ser más proclives para el pago con operador. Fortumo incluye todos estos paises y Microsoft no.
  • Fortumo es compatible con Android, Windows Store y Windows Phone (8 y 8.1) con lo que es una solución ideal para nuestras aplicaciones universales. También dispone de un api web, que nos permite integrarlo en páginas web.

Ahora la pregunta es, ¿Que esfuerzo nos requiere Fortumo? Pues sorprendentemente, es muy sencillo de integrar en nuestras aplicaciones. Lo primero que necesitaremos, será registrarnos en su web www.fortumo.com/register. Una vez hecho esto, podremos ver la página de servicios y crear un nuevo servicio:

image

Tras presionar el botón “Create new service”, veremos una lista de los servicios disponibles. En este ejemplo seleccionaremos “In App purchasing for Windows Phone & Windows 8”. En la siguiente página, solo tenemos que pulsar “Start now” para comenzar a configurar el servicio:

StartNow

Ahora llega el momento de configurar nuestro servicio de pago. En primer lugar, ¿En que países funcionará? Podemos escoger país por país o seleccionarlos todos y además marcar la opción “Auto add new territories when they become available”, que añadirá nuevos países cuando estén disponibles. Hablando con la gente de Fortumo me han dicho que normalmente el ritmo es de un par nuevo de territorios cada trimestre.

addTerritories

A continuación, nos piden información sobre el tipo de app o juego en el que queremos implementar Fortumo. En la mayoría de paises no se permiten servicios de pago de juego o con contenido adulto explícito, por lo que no podremos usar Fortumo en ese caso. También nos pedirán el tipo de item a vender. Podremos escoger entre un elemento de la app o juego o créditos virtuales. Por último necesitamos indicar un nombre para el servicio:

 

configureitem1

Y llegamos a la parte interesante. Cuanto queremos cobrar por nuestro producto:

configureprice

Aquí, tenemos varias opciones. Tenemos que entender que el sistema de pago con Fortumo se basa en mensajes SMS especiales. Debido a esto, existen un mínimo y un máximo que podemos cobrar, que puede ser diferente en cada país. Así, tenemos tres opciones:

  • El precio más barato posible. Por ejemplo esto es 2 euros en Austria, 30 céntimos de euro en Bosnia, 1.31 euros en Chipre y 10 céntimos de euro en Venezuela.
  • El precio más caro posible. Esto nos sube a 10 euros en Austria, 1.76 euros en Bosnia, 4.04 euros en Chipre y 10 céntimos de euro en Venezuela. Aquí podemos ver que con este sistema de pago, jugamos al son de las regulaciones de cada país. En Venezuela solo vamos a poder cobrar 10 céntimos de euro.
  • Por último, un valor aproximado al valor que indiquemos en euros. Si indicamos 1.5 euros, En Austria marcará 2 euros, porque es el mínimo, en Chipre subirá a 1.31 euros, en Bosnia al máximo 1.76 euros y así…

También en esta pantalla podremos ver el porcentaje de ese dinero que nos llevamos, que también varía de un país a otro, pues aquí jugamos con las operadoras y las regulaciones. Tenemos países con un share revenue del 85% y otros con un 20%. Puede parecer en un primer momento una locura en cuanto a lo poco que ganamos, pero un 20% de 100 euros es más que un 70% de 0 euros. Aquí el truco está en llegar a captar dinero que antes se nos estaba escapando.

Una vez configurado nuestro “target” de precio, tendremos que indicar información de soporte para los usuarios, nombre del servicio, etc…

ConfigureBillingData

Ya solo nos queda aceptar las regulaciones especiales de cada país y finalizar el proceso confirmando los precios de cada país:

countryRegulations

Y voila! nuestro servicio está creado. El setup nos dirige automáticamente a la página de descarga del SDK, en el menú superior podremos ir a la sección “General” donde podremos hacer varias cosas:

image

En primer lugar, tenemos el botón “Go Live”. Por defecto el servicio se crea en modo pruebas, una vez que publiquemos nuestra app debemos cambiar el servicio para que los pagos se puedan realizar.

A continuación vemos el tipo de servicio y los países disponibles. Y lo más importante al final: El Service ID y el Secret que tendremos que incluir en nuestra aplicación para realizar pagos. Ahora vamos a descargar el SDK. Como estamos haciendo una app universal, solo tendremos que descargar el de Windows Store, que podremos referenciar tanto en el proyecto Windows 8.1 como Windows Phone 8.1. Una vez que lo tengamos referenciado, empezar a trabajar es realmente fácil. Solo tendremos que trabajar con la clase Payment del namespace FortumoWindows:

Make a Payment with Fortumo
public Task<bool> ShowPayment(IDictionary<string, string> parameters)
{
    TaskCompletionSource<bool> tcs = new TaskCompletionSource<bool>();

    Payment payment = new Payment(«ServiceId», «Secret»);
    if (parameters != null)
    {
        foreach (var parameter in parameters)
        {
            payment.AddParameter(parameter.Key, parameter.Value);
        }
    }

    payment.Completed += (sender, paymentArgs) =>
    {
        if (paymentArgs.status == PaymentStatus.ok)
        {
            tcs.TrySetResult(true);
        }
        else
        {
            tcs.TrySetResult(false);
        }
    };
    payment.Show();

    return tcs.Task;
}

En el código podemos ver todo lo necesario para hacer un pago. En primer lugar creamos una instancia de la clase Payment pasándole el ServiceID y el Secret que obtuvimos al crear el servicio. A continuación, incluimos parámetros, si existen. Los parámetros disponibles los podemos ver en la web de ayuda de Fortumo.

A continuación, manejamos el evento Completed. En este evento nos llegará el resultado de la operación, de forma que podamos actuar en relación a ella. paymentArgs incluye información como el país y la moneda de pago, el operador móvil, el precio pagado, el id de producto… de forma que podamos verificar o almacenar la información que necesitemos.

Por último, mostramos la ventana de pago con el método Show. Esto lanza la propia página de Fortumo para que el usuario pueda realizar el pago:

image

image

Y listo! Ya tenemos nuestro nuevo sistema de pagos integrado en nuestra app. Con muy poco código, podemos poner a funcionar este sistema en nuestras aplicaciones, incluso combinarlo con el sistema de IAP que ofrece la propia tienda, de forma que el usuario pueda escoger como pagar en cada momento y nosotros obtengamos más ingresos.

Como siempre, aquí tenéis el ejemplo totalmente funcional usado en este artículo. He creado un servicio que se encarga de realizar el pago. Solo tenéis que poner el ServiceID y Secret de vuestra cuenta y debería funcionar perfectamente en cualquier app universal.

Antes de terminar, decir que la gente de Fortumo está haciendo grandes promociones, regalando crédito de Adduplex para los que integren esta solución de pago en sus aplicaciones, como podéis ver en este artículo en su blog,  así que aprovechad la oportunidad!!

Un saludo y Happy Coding!