Está en la página 1de 9

UTILIZAR mSDK

Dependencias Utilizadas
 http:^0.12.2
 get_ip:^0.4.0

Agregarlas al pubspec.yaml y realizar un pub get.

Archivos
1. DataWeb.dart: Este archivo posee una clase llamada DataWeb donde esta toda la lógica de
comunicación entre el APP, mSDK y OPPWA.

Nota: como este archivo utiliza objetos y parámetros de los archivos ColorsIOS.dart y DataWebObj.dart
hay que realizar las importaciones correctamente.

 Posee las siguientes metodos:


 getCheckOutId: Encargado de solicitar la generación de un CheckOutID, antes de
utilizarlo se debe haber instanciado correctamente la clase DWCheckOutReq. Este
método recibe como parámetro un objeto de tipo DWCheckOutReq.
 ProcessPayment: Encargado de la comunicación entre la APP en Flutter y el servicio
OPPWA. Este método recibe como parámetros un String (CheckoutId) y un entero (el
tipo de pago ya sea diferido, corriente, etc). En este método se debe crear 2 Mapeos uno
de tipo <String,String> y otro de <String, dynamic>

<STRING, STRING>
 Config_Ambiente: Permite configurar el servicio OPPWA en ambiente prueba (TEST) o
producción (LIVE), en caso de no ser utilizado el servicio se configurará por defecto en
modo de pruebas (TEST). Los valores permitidos son (TEST o LIVE) en formato String.
 Config_Brands: Permite configurar las marcas que utilizara el servicio OPPWA, en caso
de no ser utilizado el servicio utilizara por defecto Visa y Mastercard. Los valores
permitidos son (VISA, AMEX, DINERS, DISCOVER) en formato String separados por
comas y sin espacios.
 Config_MostrarTotal: Permite mostrar el total de la compra realizada en el servicio
OPPWA, en caso de no ser utilizado el servicio no mostrara ningún totalizado. Los
valores permitidos son las palabras “true” o “false”, en formato String.
 Config_SkipCVV: Permite al servicio OPPWA solicitar el CVV para todas las tarjetas o
solo para las almacenadas, los valores permitidos son “false” (Nunca solicitar) o “true”
(Omite la verificación CVV para tarjetas almacenadas.), en formato String. En caso de no
ser utilizado el valor por defecto es “false”.
 Config_Tokenize: Permite al servicio OPPWA almacenar los detalles de pago, los
valores permitidos son: “0” (los detalles de pago no se guardarán), “1” (el comprador
debe confirmar si desea guardar la información de pago para las compras posteriores o
no.) y “2” (los detalles de pago del comprador se guardarán para cada nuevo pago), dicho
valores son en formato String.
 Config_TipoPayment: Permite visualizar las opciones de cuotas, los valores permitidos
son: “0” no visualiza opciones de cuota (Pago Corriente), otros valores permite visualizar
opciones de pago, valores en formato String.
 Pago_Diferidos: Permite configurar las opciones de cuotas, el valor permitido es una
cadena numérica en formato string separados por coma.
 Estilo_Idioma: permite configurar el idioma del servicio OPPWA, los valores
permitidos son "es_ES" (español) y “en_US” (ingles), en formato String.

2. ColorsIOS.dart: Objeto utilizado para configurar los colores del servicio OPPWA, solo funciona
para aplicaciones iOS. Para poder utilizarlo primero se debe realizar la instancia del objeto, dicho
objeto posee un constructor que posee 16 parámetros, luego se procede serializar el objeto con el
método toJson, como se puede observar en la siguiente imagen.

Nota: este objeto puede ser modificado según las necesidades de la organización, el único detalle que se
debe respetar son las claves del JSON.
3. DataWebObj.dart: Este archivo posee las siguientes clases:

 DWCheckOutReq: Esta clase nos permite crear un objeto que será utilizado para realizar el
consumo de la API de CheckOut. Este objeto se puede modificar según las necesidades de la
organización.
 DWCheckOutRsp: Esta clase nos permite crear un objeto que será utilizado como respuesta al
consumo de la API de CheckOut, el formato es mandatorio y no debe ser modificado.
 DWStatusReq: Esta clase nos permite almacenar temporalmente el ChechoutID devuelto del
consumo de la API de CheckOut, para un posterior uso, Este objeto puede ser modificado según
las necesidades de la organización.
 DWStatusRsp: Esta clase nos permite crear un objeto que será utilizado como respuesta del
consumo de la API de status, este objeto puede ser modificado según las necesidades de la
organización.

4. MainActivity.java: Puente entre la aplicación hibrida y nativa. (Android)


5. AppDelegate.swift: Puente entre la aplicación hibrida y nativa. (iOS)
6. ColorsCheckout.swift: Este archivo contiene un método llamado toHexString() que convierte el
string hexadecimal a un UIColo.
7. Constant.swift: Este archivo contiene constantes utilizadas en el proyecto, entre una de ellas están
los valores por defecto y el canal.
8. Language.swift: Este archivo contiene una clase llamada LanguageMsdk que a su vez posee un
método llamado convertLanguage, que convierte el parámetro string del lenguaje al formato utilizado
por el servicio OPPWA en iOS.

USO
Para poder utilizar el mSDK se debe realizar los siguientes pasos:

1. Copiar los archivos (ColorsIOS.dart, DataWeb.dart, DataWebObj.dart) en la capeta LIB o en


subdirectorios de la carpeta LIB, realizar las correcciones de las importaciones de acuerdo con el
directorio usado.

2. Instalar el SDK (OPPWA), para ello se debe realizar lo siguiente:

ANDROID:

 Primero, desde su Android Studio, importe el módulo oppwa.mobile.aar a su proyecto.


(Archivo-> Nuevo-> Módulo-> Seleccione importar paquete .jar / aar -> Seleccione su
archivo .aar desde la ubicación)

 Agregue las siguientes dependencias a su build.gradle(Module App):


implementation project(':oppwa.mobile')
implementación 'com.android.support:support-v4:29.0.0'
implementación 'com.android.support:appcompat-v7:29.0.0'
implementación 'com.android.support:design:29.0.0'
implementación 'com. android.support:customtabs:29.0.0 '
implementación' com.google.android.gms: play-services-wallet: 16.0.1 '

 Modifique su archivo AndroidManifest.xml

En el espacio de nombre <manifest> agregar xmlns:tools="http://schemas.android.com/tools".

Declare el servicio de conexión dentro de la etiqueta de la aplicación:

<service
android:name="com.oppwa.mobile.connect.service.ConnectService"
android:exported="false"/>

Declare dentro de la etiqueta aplicación el estilo para el CheckoutActivity, ete paso es opcional, puede
usar @style/Theme.Checkout.Light, @style/Theme.Checkout.Dark o uno personalizado en este caso
usaremos el DFTheme.
En caso de usar el estilo personalizado agregar al archivo style.xml:

<style name="DFTheme" parent="Theme.Checkout.Light">


<item name="headerBackground">@color/checkout_header_color</item>
<item name="cancelButtonTintColor">@color/checkout_cancel_color</item>
<item name="listMarkTintColor">@color/accent_color</item>
<item name="cameraTintColor">@color/accent_color</item>
<item name="checkboxButtonTintColor">@color/accent_color</item>
<item name="checkoutButtonStyle">@style/NewCheckoutTheme.Button</item>
</style>

<style name="NewCheckoutTheme.Button" parent="Checkout.Button.Light">


<item name="android:background">@color/accent_color</item>
</style>

Agregar colores a su gusto.

3. Crear un puente nativo para Android, reemplazar el archivo MainActivity.java ubicado en


la carpeta java en la vista Proyecto, y modificar la referencial del paquete principal y modificar
es la constante CHANNEL, cambiarlo por el nombre del paquete o canal utilizado.
IOS (SWIFT)
1. Lo primero que se debe realizar es un pod install, en el directorio iOS.

2. Agregar el SDK OPPWA (Framework y Resource), para ello arrastre los dos
archivos OPPWAMobile.frameworky OPPWAMobile-Resources.bundle, a la carpeta
Frameworks, asegúrese de tener marcada la opción Copiar elementos si es necesario.

3. Verificar que las 2 configuraciones de compilación (Build Settings) estén activadas:

 Enable Modules (C and Objective-C)


 Link Frameworks Automatically

4. Construir el puente nativo de iOS

Copiar los siguientes archivos en la carpeta Runner del proyecto:

 Language.swif
 Constant.swift
 ColorsCheckout.swift
Importar el marco OPPWA en el archivo Runner-Bridging-Header.h.

Reemplazar el archivo AppDelegate.swift y modificar la constante CHANNEL por el canal usado.

3. Para utilizar los servicios se debe utilizar el método getCheckOutId de la calse DWCheckOutRsp
y luego el método ProcessPayment de la clase DWStatusRsp, como se muestra a continuación:

DWCheckOutRsp rsp = await DataWeb.getCheckOutId(req);


DWStatusRsp status = await DataWeb.ProcessPayment(rsp.checkoutId,tpayment);

IOS (OBJETIVE C)
1. Lo primero que se debe realizar es un pod install, en el directorio iOS.

2. Agregar el SDK OPPWA (Framework y Resource), para ello arrastre los dos
archivos OPPWAMobile.frameworky OPPWAMobile-Resources.bundle, a la carpeta
Frameworks, asegúrese de tener marcada la opción Copiar elementos si es necesario.
3. Verificar que las 2 configuraciones de compilación (Build Settings) estén activadas:

 Enable Modules (C and Objective-C)


 Link Frameworks Automatically
4. Reemplazar o modificar el archivo AppDelegate.m. Si ya se posee una estructura del archivo
AppDelegate.m la opción que elijia es modificar para ello realizar lo siguiente:
a. Agregar la siguiente importación #import <OPPWAMobile/OPPWAMobile.h>
b. Copiar el método handleMethodCall, este método se puede modificar según las
necesidades de la organización.
c. Crear el registro del canal de flutter, como se muestra a continuación.

FlutterViewController * controller = (FlutterViewController *) self.window.rootV
iewController;
    FlutterMethodChannel *nativeChannel = [FlutterMethodChannel methodChannelWit
hName: @"com.df.dataweb_flutter.paymentMethod" binaryMessenger:controller];
    [nativeChannel setMethodCallHandler:^(FlutterMethodCall* call, FlutterResult 
result) {
        if ([@"getPaymentMethod" isEqualToString:call.method]){
            [ self handleMethodCall: call result:result ];
        }else {
            result(FlutterMethodNotImplemented);
        }
    }];

OPPWA CON IOS NATIVO


SWIFT

1. Si se opta por trabajar con cocopoad lo primero que se debe realizar es un pod init y luego un pod
install, en el directorio del proyecto.

2. Agregar el SDK OPPWA (Framework y Resource), para ello arrastre los dos
archivos OPPWAMobile.frameworky OPPWAMobile-Resources.bundle, a la carpeta
Frameworks, asegúrese de tener marcada la opción Copiar elementos si es necesario.
3. Verificar que las 2 configuraciones de compilación (Build Settings) estén activadas:

 Enable Modules (C and Objective-C)


 Link Frameworks Automatically

4. La estructura del proyecto es la siguiente, y puede ser modificada según las necesidades de la
organización:

Grupo / Carpeta Model: Se almacenará los modelos utilizados para el demo, son objetos que se utilizan
para enviar y recibir peticiones del servidor dicho grupo puede ser modificado según las necesidades de la
organización.

CheckoutRespoonse.swift: Clase utilizada para serializar la respuesta enviada por el servidor a realizar
una solicitud de checkout.

DWCheckoutRequest.swift: Clase utilizada para armar el objeto que será enviado por método get al
servidor para solicitar un ckeckout, consta de los datos del cliente.

ConfigResponse.swift: Clase utilizada para configurar la interfaz OPPWA.

DWStatusReq.swift: Clase de requerimiento de status del pago realizado.

DWStatusRsp.swift: Clase utilizada para serializar la respuesta enviada por el servidor al realizar una
consulta de estados.

Product.swift: Clase utilizada para dibujar los item en el UITableView, (Mostrar elementos similares al
recycle view de Android, los productos que serán agregados al carrito de compras)

5. Copiar los siguientes archivos:

Constants.swif: Archivo de constantes que serán utilizados en el proyecto como valores por defecto.
Request.swift: Envia y recibe peticiones del servidor.
Utils.swift: Archivo utilizado para realizar la configuración del Checkout
HomeController.swift: Copiar o modificar el controlador según las necesidades de la organización.
ProductTableViewCell.swift: Utilizado para realizar un Custom UITableView

También podría gustarte