Método de pagos móviles para APPS de android a través de SMS usando PayGol!

18
Método de pago basado en mensajes SMS es seguro, fácil y rápido de usar. Sin necesidad de ingresar tu información bancaria, ofreciendo nuestra completa cobertura de paises, este es el método mas completo que puedas elegir para tus Aplicaciones Android! Pagos Móviles para Aplicaciones Android http://www.paygol.com/android/implementation Para referencias visita nuestra seccion Android en:

Transcript of Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Page 1: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Método de pago basado en mensajes SMS es seguro, fácil y rápido de usar.

Sin necesidad de ingresar tu información bancaria, ofreciendo nuestra completa cobertura de paises, este es el método mas completo que puedas elegir para tus Aplicaciones Android!

Pagos Móviles para Aplicaciones Android

http://www.paygol.com/android/implementationPara referencias visita nuestra seccion Android en:

Page 2: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

1 Solicitud de pago In-App 2 Acepta para confirmar tu pago

3 Listo!

Las Posibilidades son Ilimitadas! Una forma fácil y rápida de realizar tus pagos In-App.

Pagos Móviles para Aplicaciones Android

Page 3: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

¿Por qué PayGol?

¿Cuan conveniente y fácil de usar es tu actual método de pago para tus clientes? ¿Es obligatorio para tus usuarios entregar la información bancaria y número de tarjeta de crédito para comprar?

¿Se sienten inseguros tus usuarios al entregar su información bancaria o de trajeta de crédito? ¿Será posible tener un nuevo, sencillo y eficaz método de pago que no requiera entregar datos? Afortunadamente la respuesta es Sí!

PayGol te entrega una nueva forma de pago usando mensajes de texto SMS. Cuando un usuario decide comprar un servicio, este envía el pago mediante un mensaje SMS, sin proveer ningún dato adicional. La tecnología de PayGol es practica, segura, fácil de integrar y conveniente tanto para los desarrolladores.

Page 4: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Vista General

En este artículo presentamos el SDK de PayGol para Android y explicamos en detalle cómo un desarrollador puede integrarlo fácilmente en su aplicación Android. El SDK de PayGol para Android es una librería JAR para dispositivos móviles con sistema Android y es usado para hacer pagos usando mensajes SMS. La siguiente figura explica en general como funciona PayGol:

Figure 1

Page 5: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Realizando un pago usando PayGol Android SDK consiste de los siguientes pasos:

1. Se hace una petición(request) de pago al servidor de PayGol. Este paso es inicializado programaticamente por la integración de la aplicación y corresponde a la flecha 1 en la Figura 1. 2. Si la petición ha sido aceptada, PayGol retornará los parametros necesarios al PayGol Android SDK. Este paso corresponde a la flecha 2 en la Figura 1. 3. Después que una petición de pago ha sido aceptada por el servidor de PayGol, PayGol Android SDK automaticamente ejecuta los siguientes tres pasos:

a. El SDK comunica programaticamente los parametros de pago que el servidor de PayGol para la integración del software. Esta es la parte 3 de la Figura 1. b. El SDK despliega los parametros de pago que el servidor de PayGol ha retornado, así son desplegados al usuario final y se le pregunta si acepta pagar. Esto tambien es parte del paso 3 en la Figura 1. c. Si el usuario final acepta las condiciones de pago, el SDK procede con el envío del SMS(s) para completar el pago. Esto está mostrado como 4 en la Figura 1. 4. El servidor de PayGol se comunica con "La red de Operadores Móviles" para verificar si el pago ha sido satisfactorio o no. Esto es el 5 en la Figura 1. Este paso es ejecutado por el servidor y no es parte de la integración de PayGol Android SDK en una aplicación. 5. Después que el o los SMS han sido enviados por el PayGol SDK, como último paso, la aplicación de integración debería saber si el pago ha sido aceptado o no. Para este propósito se hace una llamada final al servidor de PayGol. Este paso es iniciado programaticamente por la aplicación de integración y corresponde a la flecha 6 de la Figura 1. El servidor de PayGol responde de vuelta con la información obtenida desde "La red de Operadores Móviles". Este es el paso 7 en la Figura 1.

La siguiente sección explica todos los pasos necesarios en detalle para configurar e integrar PayGol Android SDK en cualquier aplicación Android.

Page 6: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

¿Cómo usar el SDK de PayGol para Android?

El PayGol Android SDK:

1. Trabaja de forma asincránica. Las llamadas a su interface no son por bloques. Por lo tanto PayGol Android SDK nunca va a causar un error ANR.

2. Siempre trabaja en el hilo de contexto correcto. Cuando sea necesario de desplegar un popup(pequeña pantalla emergente), ejecuta la sentencia correspondiente en la UI; de otra forma lo ejecutará de fondo. Por lo tanto un desarrollador no tiene que pensar en enviar hilos de contexto cuando realiza una llamada a los metodos de interfaz de PayGol SDK.

La explicación en esta sección asume que la IDE usa Eclipse.

Page 7: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Configurar PayGol Android SDK en Eclipse

PayGol Android SDK JAR libreria de archivos (ej. PayGolSDK.jar) debería ser agregado a un JAR externo a la ruta del Java Build:(Figura 2)

Page 8: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Configurar PayGol Android SDK in Eclipse

Clic en 'Properties' para abrir las propiedades del proyecto. Vaya a la pestaña 'JavaBuild Path' y 'Libraries'. (Figura 3) :

Clic en 'Add External JARs' y dirijase donde se encuentra PayGolSDK.jarfile.

Page 9: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Agregando permisos en el AndroidManifest.xml

Los siguientes tres permisos deberian ser agregados en AndroidManifest.xml:

<uses-permission android:name="android.permission.INTERNET" /><uses-permission android:name="android.permission.SEND_SMS" /><uses-permission android:name="android.permission.READ_PHONE_STATE" />El permiso "android.permission.INTERNET" es necesario porque la conexión de internet es necesaria para la comunicación con el servidor de PayGol para realizar los pagos.

El permiso "android.permission.SEND_SMS" es requerido porque el modelo de pagos está basado en el modelo de envio de SMS.

PayGol Android SDK adjunta el IMEI a la petición de pagos para la transacción única de identificación. El permiso "android.permission.READ_PHONE_STATE" es necesario para leer el IMEI del teléfono móvil.

Page 10: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Integrando PayGol Android SDK

Una vez que PayGolSDK.jar ha sido configurado en la configuración del proyecto y los permisos han sido agregados en el archivo manifest, estaras listo para usar PayGol Android SDK en el código. Los pasos de abajo explican en detalle cada paso necesario a seguir. La Figura 4 despliega la secuencia de diagrama de la integración.

Page 11: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Paso 1 – Crear instancia

Instanciar PayGol SDK object. Existen dos constructores a elegir:

PayGolSDK(Context context)PayGolSDK(Context context, PayGolSDKConfig config)Ambos constructores toman la aplicación como par´metro. El segundo constructor toma el objeto de configuración como parámetro. Para mayor información con respecto al objeto de configuración y a la configuración de parametros por defecto por favor referirse a la sección 'PayGolSDKConfigObject'.

Paso 2 – Configurar (Opcional)

PayGol SDK puede ser configurado después del paso de creación de instancias. En realidad PayGol SDK puede ser configurado en cualquier paso. Para este proposito puedes usar el siguiente método del PayGol SDK object:

void SetPayGolSDKConfig(PayGolSDKConfig config)Para mayor informacion con respecto a la configuracion del objeto y a los parametros de configuracion por defecto por favor referirse a la seccion 'PayGolSDKConfigObject'.

Page 12: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Paso 3 – Haciendo una solicitud de pagoCuando un pago debe ser realizado, es necesario realizar una peticion de pago al servidor de PayGol. Para este proposito se deberia llamar a MakePaymentmethod del PayGol SDK. Hay 4 posibles opciones de sobrecarga:

void MakePayment(final PayGolSDKProduct product, final String language, final Activity activity, final PayGolSDKListener.OnMakePaymentListener listener)void MakePayment(final PayGolSDKProduct product, final String language, final Activity activity, final PayGolSDKListener.OnMakePaymentListener listener, final Object userArgs)void MakePayment(final PayGolSDKProduct product, final String language, final Activity activity, final PayGolSDKListener.OnMakePaymentListener listener, final String custom)void MakePayment(final PayGolSDKProduct product, final String language, final Activity activity, final PayGolSDKListener.OnMakePaymentListener listener, final String custom, final Object userArgs)

Page 13: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

PayGolSDKProduct object tiene tres miembros: tu service_id(is del servicio), price(precio) y currency(moneda) de la peticion de pago. Por favor referirse a la seccion 'PayGolSDKProduct Object'.

El párametro language puede tener uno de los siguientes valores: en, de, fr, es, que especifica el lenguaje a ser usado en el pago (ej. el lenguaje mostrado al usuario final). La siguiente actividad de párametro es la actual actividad visible de tu aplicacion Android, mientras el pago esta en progreso. Este párametro es necesario porque PayGol SDK va a desplegar un dialogo al usuario final y se le preguntara a este si acepta las condiciones del pago o no. El codigo a desplegar este dialogo siempre corre en el contexto UiThread, asi que el desarrollador no tiene la necesidad de pensar en cambiar este thread context. Para hacer correr un trozo de codigo en UiThread context es necesario tener acceso a la actividad del objeto actual desplegado. Por lo tanto es necesaria la actividad del párametro al metodo PayGolSDK.MakePayment.

PayGolSDKListener.OnMakePaymentListener es un listener object que comunica el resultado de la peticion del pago. El paso 3.1 explica PayGolSDKListener.OnMakePaymentListener mas en detalle.

El párametro opcional custom puede ser usado para diferentes propositos. Uno de los usos tipicos es de almacenar el identificador unico del usuario final. Este unico identificador puede ser el id del usuario o la id de la sesion en un juego en linea, de esta manera el servidor de PayGol sabra exactamente que usuario esta comprando un servicio. Finalmente el párametro opcional userArgs es cualquier objeto que pasas a MakePayment y posteriormente recibes cuando los metodos onAction y onData methods de PayGolSDKListener.OnMakePaymentListener han sido invocados. Esto es muy conveniente This is very convenient cuando deseas aumentar las peticiones de pago con mayor data para ser desplegada o procesada una vez que el pago ha sido realizado satisfactoriamente por ejemplo.

Page 14: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

Paso 3.1 – Implementar PayGolSDKListener.OnMakePaymentListener

PayGol SDK define PayGolSDKListener.OnMakePaymentListener, el cual es una interfaz que deberias implementar y pasar su instancia a MakePayment una vez que has hecho una solicitud de pago. La implementacion deberia anular tres metodos:

voidvoid onAction(int which, Object userArgs)PayGol SDK invoca onAction para reportar cual es el estado del pago actual. Algunos de los escenarios tipicos son: cuando el servidor de PayGol rechaza el pago, cuando el SMS no puede ser enviado cuando el SMS ha sido enviado. La documentacion enumera cada caso cuando se llama a onAction.

El párametro cual almacena un codigo mostrando el ultimo estado del pago.

El párametro userArgs es el objeto de argument que pasas a MakePayment. En caso que no se haya pasado a MakePayment el argumento de objeto al usuario, entonces userArgs almacenara null.

Page 15: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

void onData(PayGolSDKProduct product, Object userArgs)El metodo onData es llamado cuando el servidor de PayGol ha aceptado la peticion de pago. Los parametros de pago los cuales especifican cuando se ha realizado una peticion de pago (ver la seccion 'PayGolSDKProduct Object') no son los necesariamente aceptados por el servidor de PayGol. PayGol server, cuando es necesario, ajusta el precio y moneda, basado en el costo de envio de SMS de acuerdo a la ubicacion del usuario final. Cuando un pago ha sido aceptado, onData programaticamente comunica a tu aplicacion via parametros enviados desde el servidor de PayGol que el pago ha sido aceptado.

El párametro product es el objeto el cual almacena los parametros del pago que el servidor de PayGol ha aceptado. Para una mayor explicacion de este objeto, ver la seccion 'PayGolSDKProductObject'. Similar a onAction, el párametro userArgs es el objeto de argumento del usuario el cual pasa a MakePayment. Si ningun objeto de argumento del usuario ha sido pasado a MakePayment, entonces userArgs almacena null.

void onResult(PayGolSDKPayment payment)Cuando el mensaje de texto, necesario para realizar el pago, ha sido enviado satisfactoriamente, PayGol SDK invoca el metodo onResult. Este metodo pasa a tu aplicacion un objeto PayGolSDKPayment (ej. pago) el cual es necesario posteriormente para verificar que el pago ha sido realizado o no.Paso 4 – Verificar si el pago ha sido satisfactorioUna vez que el SMS ha sido enviado satisfactoriamente y el metodo onResult de PayGolSDKListener.OnMakePaymentListener ha sido llamado, antes de considerar la transaccion como satisfactoria deberia de verificar si el pago ha sido realmente satisfactorio o no en el servidor de PayGol. Para este proposito puedes usar el metodo IsPaymentSuccessful de PayGolSDKPayment el cual lo obtienes desde onResult. IsPaymentSuccessful corre periodicamente por un especificado periodo de tiempo; si detecta que el pago ha sido satisfactorio comunicara un codifo satisfactorio a tu aplicacion. En el caso que no pueda detectar que el pago ha sido satisfactorio antes del periodo especificado de tiempo, comunicara un codigo de time-out. El periodo y el tiempo maximo IsPaymentSuccessful son parte de los parametros de configuracion PayGol SDK; para mayor informacion ver la seccion 'PayGolSDKConfig Object'.

Page 16: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

void IsPaymentSuccessful(PayGolSDKListener.OnIsPaymentSuccessfulListener listener)PayGolSDKListener.OnIsPaymentSuccessfulListener es un objeto listener el cual comunica el resultadosi el pago ha sido satisfactorio o no. Mas informacion en el paso 4.1. Paso 4.1 – ImplementPayGolSDKListener.OnIsPaymentSuccessfulListener

Esta es una interfaz que deberias implementar y pasar su instancia a IsPaymentSuccessful. La implementacion deberia anular un metodo:

void onAction(int which, PayGolSDKPayment payment)El párametro cual almacena un codigo mostransdo si el pago ha sido satisfactorio o no.

Finalmente, el párametro payment es un puntero del objeto PayGolSDKPayment desde el cual el metodo IsPaymentSuccessful ha sido llamado. Esto es conveniente cuando deseas saber cual transaccion de on Action ha sido invocada.

Page 17: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

PayGolSDKConfig Object

PayGolSDKConfig permite a un desarrollador configurar las siguientes opciones del PayGol SDK: 1. Si PayGol SDK va a generar un log de informacion o no. Este es necesario y muy util cuando depuras la integracion de PayGol SDK. El miembro correspondiente es PayGolSDKConfig.enableDebug y el valor por defecto es false.

2. Si la transaccion sera realizada en modo real o pruebas. El modo real es cuando el SMS ha sido enviado para realizar un pago. Modo de pruebas es cuando se envia un SMS entre PayGol SDK y el servidor de PayGol. El modo de pruebas ha sido diseñado y muy util durante la fase de implementacion cuando el desarrollador necesita probar la integracion sin la necesidad de gastar creditos de su telefono movil. Por favor contactar a PayGol support para verificar el servicio id para usar en caso de moso de pruebas. El miembro correspondiente es PayGolSDKConfig.isSimulation y su valor por defecto es false. (El resto de la configuracion de parametros afecta la ejecucion de PayGolSDKPayment.IsPaymentSuccessful) 3. El maximo de tiempo, en terminos de segundos, cuando PayGolSDKPayment.IsPaymentSuccessful se ejecuta para verificar si el correspondiente pago ha sido satisfactorio o no. El miembro correspondiente es PayGolSDKConfig.maxTimeControlPayment y el valor por defecto es 60(sesenta) segundos.

4. El periodo base, en terminos de segundos, cuando PayGolSDKPayment.IsPaymentSuccessful se ejecuta para verificar si el correspondiente pago ha sido satisfactorio o no. El miembro correspondiente es PayGolSDKConfig.periodControlPayment y el valor por defecto es 10(diez) segundos.

5. Las diferencias de constantes del periodo base. El correspondiente miembro es PayGolSDKConfig.changePeriodControlPayment y su valor por defecto es 0(cero) segundos. Por ejemplo, en lugar de controlar si el pago ha sido satisfactorio o no en 10, 20, 30 veces... si deseas controlar a 10, 25, 45 veces... deberias especificar periodControlPayment=10 y changePeriodControlPayment=5.

Page 18: Método de pagos móviles para APPS de android a través de SMS usando PayGol!

PayGolSDKProduct Object

PayGolSDKProduct encapsula tres campos necesarios para definir un producto durante la transaccion en PayGol. Estos campos son service_id, price y currency. PayGolSDKProduct es pasado como un párametro a MakePayment al momento de hacer una peticion de pago al servidor de PayGol y recuperado en el metodo listener onData de PayGolSDKListener.OnMakePaymentListener despues de que el servidor de PayGol acepata una peticion de pago (posiblemente con ajustes de precio y moneda).

Eso es todo !

Para referencia visita nuesta sección Android en:

http://www.paygol.com/android/implementation