Uso del SDK para android

Uso del SDK para android

Inicialización del SDK

Importe los paquetes de GreenPay SDK con los objetos necesarios. Un ejemplo es:
import com.greenpay.sdk.GreenPay;
import com.greenpay.sdk.config.GreenPayConfig;
import com.greenpay.sdk.exceptions.ConfigurationException;
import com.greenpay.sdk.exceptions.GreenPayException;
import com.greenpay.sdk.models.GreenPayAddress;
import com.greenpay.sdk.models.GreenPayCheckoutOrderResult;
import com.greenpay.sdk.models.GreenPayCreditCard;
import com.greenpay.sdk.models.GreenPayOrderInfo;
import com.greenpay.sdk.models.GreenPayOrderResult;
import com.greenpay.sdk.models.GreenPayProduct;
import com.greenpay.sdk.models.GreenPayTokenizeCardCheckoutOrderResult;
import com.greenpay.sdk.models.GreenPayTokenizeCardOrderInfo;
import com.greenpay.sdk.models.GreenPayTokenizedCard;
import com.greenpay.sdk.utils.ResponseCallback;

Debe crear un objeto GreenPay GreenPayConfig para configurar el SDK con la información de su cuenta. Esta información será proporcionada por el equipo de GreenPay cuando cree su cuenta GreenPay.
GreenPayConfig greenPayConfig = new GreenPayConfig();
greenPayConfig.setGreenPaySecret(""); //secret key provided by Greenpay
greenPayConfig.setGreenPayMerchandId(""); //merchantId provided by Greenpay
greenPayConfig.setGreenPayTerminal(""); //terminalId provided by Greenpay
greenPayConfig.setGreenPayPublicKey(""); //public key provided by Greenpay

Obtenga una referencia para GreenPay SDK e inicialice el SDK:
  1. Un contexto de Android (la actividad actual (esto) o el contexto de la aplicación (this.getApplicationContext () o el contexto de Android deseado para usar.
  2. El objeto de configuración que contiene la configuración del usuario.
  3. Booleano para habilitar el modo sandbox.
GreenPay greenPay = GreenPay.getInstance();
greenPay.initGreenPaySDK(this.getApplicationContext(), greenPayConfig, true);

Puede habilitar la salida de registro en la consola Logcat de Android (de forma predeterminada, el SDK no registra la salida en la consola).
greenPay.setEnableLogs(true);

Tokenizar una tarjeta

Primero, se debe crear un pedido desde su backend a GreenPay. Esto generará un ID de sesión y un Token de transacción. Necesita estos valores para tokenizar una tarjeta. Deberá crear un objeto GreenPayOrderResult para contener estos valores.
greenPay.createNewTokenizeCardGreenPayOrder(gpTokenizeCardOrderInfo, new ResponseCallback<GreenPayOrderResult>(){

public void onSuccess(GreenPayOrderResult response){

Log.d("GreenPayTestApp", "Create Tokenize Card Order Response from Activity: " + response.getSecurityInfo().getSession() + ", " + response.getSecurityInfo().getToken());
}

@Override
public void onError(String errorReason) {

}
});

En segundo lugar, desde su aplicación puede llamar a checkoutExistingTokenizeCardOrder con la tarjeta de crédito para tokenizar y el ID de sesión y el token de transacción obtenidos de su backend.
greenPay.checkoutExistingTokenizeCardOrder(gpCreditCard, response, new ResponseCallback<GreenPayTokenizeCardCheckoutOrderResult>() {
@Override
public void onSuccess(GreenPayTokenizeCardCheckoutOrderResult response) {
Log.d("GreenPayTestApp", "Checkout Tokenize Card Order Response from Activity: " + response.getToken());
Toast.makeText(getApplicationContext(), "Tokenized Card. Token: " + response.getToken(), Toast.LENGTH_LONG).show();

gpTokenizedCard = new GreenPayTokenizedCard();
gpTokenizedCard.setToken(response.getToken());
checkoutTokenizedCardButton.setEnabled(true);
}

@Override
public void onError(String errorReason) {
Toast.makeText(getApplicationContext(), "Error tokenizing the card: " + errorReason, Toast.LENGTH_LONG).show();
}
});

Realizar un pago con tarjeta

  1. Primero, se debe crear una orden de pago desde su backend a GreenPay. Esto generará un ID de sesión y un Token de transacción. Necesita estos valores para realizar un pago. Deberá crear un objeto GreenPayOrderResult  para contener estos valores. Sin embargo, el SDK permite crear la orden de pago ejecutando la función createNewGreenPayOrder.
  2. Cree un objeto GreenPayCreditCard para contener la información de la tarjeta.
  3. Desde su aplicación puede llamar a checkoutExistingOrder  con la tarjeta de crédito para procesar y el ID de sesión y el token de transacción obtenidos de su backend.
// Este ejemplo contiene la creación de la orden y el checkout. Sin embargo, la creación de la orden la puede realizar desde el backend.
try {
//Create gpOrder, in this case order is create when globally
GreenPayProduct product = new GreenPayProduct();
product.setDescription("Telefono celular");
product.setPrice(340000.00);
product.setQuantity(1);
product.setSkuId("COD120");
product.setType("Fisico");
List<GreenPayProduct> products = new ArrayList<GreenPayProduct>();
products.add(product);
GreenPayAddress address = new GreenPayAddress("CR", "C087 Freses");
GreenPayOrderInfo gpOrderInfo = new GreenPayOrderInfo("John Doe", "jdoe@example.com", address, address, 100.00, "CRC", "My order", "Android-or-412389", products);

greenPay.createNewGreenPayOrder(gpOrderInfo, new ResponseCallback<GreenPayOrderResult>() {
@Override
public void onSuccess(GreenPayOrderResult response) {
Log.d("GreenPayTestApp", "Create Order Response from Activity: " + response.getSecurityInfo().getSession() + ", " + response.getSecurityInfo().getToken());

try {
// 6. Create a GreenPayCreditCard object to hold the card information to charge.
GreenPayCreditCard gpCreditCard = new GreenPayCreditCard();
gpCreditCard.setCardHolder("Jhon Doe");
gpCreditCard.setCardNumber("4795736054664396");
gpCreditCard.setCvc("123");
gpCreditCard.setExpirationMonth(9);
gpCreditCard.setExpirationYear(21);
gpCreditCard.setNickname("visa2449");
// 7. Using the GreenPayOrderResult object (which holds the session id and transaction token).
// call checkoutExistingOrder to process the payment
greenPay.checkoutExistingOrder(gpCreditCard, response, new ResponseCallback<GreenPayCheckoutOrderResult>() {
@Override
public void onSuccess(GreenPayCheckoutOrderResult response) {
Log.d("GreenPayTestApp", "Checkout Order Response from Activity: " + response.getStatus() + ": " + response.getAuthorization());
Toast.makeText(getApplicationContext(), "Order paid. Status: " + response.getStatus() + ". Auth: " + response.getAuthorization(), Toast.LENGTH_LONG).show();
}

@Override
public void onError(String errorReason) {
Toast.makeText(getApplicationContext(), "Error making the payment: " + errorReason, Toast.LENGTH_LONG).show();
}
});
} catch (GreenPayException e) {
e.printStackTrace();
} catch (ConfigurationException e) {
e.printStackTrace();
}
}

@Override
public void onError(String errorReason) {

}
});
} catch (GreenPayException e) {
e.printStackTrace();
} catch (ConfigurationException e) {
e.printStackTrace();
}

Realizar un pago con token de tarjeta

Al igual que el flujo de pago con datos de tarjeta, primero, se debe crear una orden de pago desde su backend a GreenPay. Esto generará un ID de sesión y un Token de transacción. Necesita estos valores para realizar un pago. Deberá crear un objeto GreenPayOrderResult  para contener estos valores.
En segundo lugar, desde su aplicación puede llamar a checkoutExistingOrder  con el token de tarjeta a procesar y el ID de sesión y el token de transacción obtenidos de su backend (la cantidad se envió al crear el pedido desde su backend).
try {
//gpTokenizedCard is an already tokenized card
//order is an already created order
greenPay.checkoutExistingOrder(gpTokenizedCard, order, new ResponseCallback<GreenPayCheckoutOrderResult>() {

@Override
public void onSuccess(GreenPayCheckoutOrderResult response) {
Log.d("GreenPayTestApp", "Checkout with Tokenized Card Response from Activity, Authorization: " + response.getAuthorization());
Toast.makeText(AppContext, "Pago realizado de forma exitosa:\nAutorización: " + response.getAuthorization(), Toast.LENGTH_LONG).show();
}

@Override
public void onError(String errorReason) {
Toast.makeText(getApplicationContext(), "Error al pagar orden con token: " + errorReason, Toast.LENGTH_LONG).show();
}
});
} catch (GreenPayException e) {
e.printStackTrace();
} catch (ConfigurationException e) {
e.printStackTrace();
}
El objeto devuelto GreenPayCheckoutOrderResult tendrá la confirmación de la transacción de GreenPay.

Recopilación de datos para el servicio de lucha contra el fraude con un id de sesión

La recopilación de datos para identificar comportamientos de fraude está incluida en la funcionalidad de pago de este SDK. Sin embargo, para los casos de aplicaciones implementadas sin usar este SDK, es necesario que se incluya la recopilación de esta información. Por ejemplo:
  1. Aplicaciones híbridas que utilizan el API REST de Greenpay y adaptan el flujo recomendado por Greenpay para aplicaciones web.
  2. Aplicaciones de comercios que hacen los pagos desde el backend manteniendo el cifrado de datos de la tarjeta en frontend.
  3. Aplicaciones de comercios que hacen cifrado y pago en el backend (Requiere certificación de PCI DSS).
Para los casos anteriores, se debe utilizar la siguiente funcionalidad.

greenPay.collectForSession(providedSessionID, new ResponseCallback<String>() {

@Override
public void onSuccess(String response) {
//call your backend including the sessionId provided in the response
}

@Override
public void onError(String errorReason) {
//provide the user with an error message
}

});

Para hacer uso de esta funcionalidad, se puede optar algunos de los siguientes casos:
  1. En el parámetro providedSessionID enviar el valor session de la orden de compra creada. Esto no requeriría algún otro esfuerzo, el API de Greenpay asocia el pago que se quiere procesar al session provisto.
  2. En el parámetro providedSessionID enviar un valor único generado por el comercio. Esto requiere agregar la propiedad kountSession al objeto que contiene los datos o token de la tarjeta antes de ser cifrados (Ver imagen). Donde el kountSession debe ser el mismo que se envíe en el providedSessionID. Además se debe invocar a los siguientes endpoints Sandbox (https://sandbox-checkout.greenpay.me/kount) o Producción (https://checkout.greenpay.me/kount), cuando se va a procesar un pago:



    • Related Articles

    • Consideraciones e instalación del SDK para android

      Consideraciones Crear credenciales API. Sandbox: En caso de no tener credenciales del ambiente sandbox (pruebas), puede generarlas aquí. Producción: Para procesar pagos en el ambiente productivo, debe registrarse en este enlace. Se recomienda crear ...
    • Uso del SDK para IOS

      Inicializar el SDK Primero, debe crear un objeto GreenPay GreenPayConfig para configurar el SDK con la información de su cuenta. Esta información será proporcionada por el equipo de GreenPay cuando cree su cuenta GreenPay. En segundo lugar, llame al ...
    • Consideraciones e instalación del SDk para IOS

      Consideraciones Crear credenciales API. Sandbox: En caso de no tener credenciales del ambiente sandbox (pruebas), puede generarlas aquí. Producción: Para procesar pagos en el ambiente productivo, debe registrarse en este enlace. Se recomienda crear ...
    • Kount Data Collector para Android

      Consideraciones Para hacer uso del SDK data collector para iOS se debe considerar los siguiente: El SDK de flujos de pago de Greenpay para Android ya tiene integrado Kount, por lo tanto, la documentación del presente SDK solo se utiliza cuando la ...
    • Manual para el uso del Dashboard

      El dashboard de GreenPay es una interfaz enfocada en brindar al usuario las herramientas necesarias para administrar todas las transacciones que se realicen por medio de los servicios de GreenPay. Este permite la gestión de suscripciones y ...