La librería de ComproPago Java SDK
te permite interactuar con el API de ComproPago desde tu aplicación.
También cuenta con los métodos necesarios para facilitar el desarrollo por medio de los servicios
más utilizados (SDK).
Con ComproPago puedes recibir pagos en 7Eleven, Extra y más tiendas en todo México.
- Ayuda y soporte de ComproPago
- Requerimientos
- Instalación ComproPago SDK
- Documentación
- Guía básica de uso
- Guía de versiones
- Centro de ayuda y soporte
- Solicitar integración
- Guía para comenzar a usar ComproPago
- Información de contacto
- Java 1.8.x
- Google Gson
Puedes descargar la última versión estable de el archivo .jar del SDK directamente desde el listado de versiones del repositorio o desde este enlace. Posteriormente deberás incluirlo en tu proyecto.
Puedes descargar alguna de las versiones publicadas:
O si o lo deseas puedes obtener el repositorio
#repositorio en su estado actual (*puede no ser versión estable*)
git clone https://github.com/compropago/compropago-java.git
ComproPago te ofrece una API tipo REST para integrar pagos en efectivo en tu comercio electrónico o en tus aplicaciones.
Información de Horarios y Comisiones, como Transferir tu dinero y la Seguridad que proporciona ComproPago.
- Botón de pago
- Modo de pruebas/activo
- WebHooks
- Librerías y Plugins
- Shopify
Se necesita una cuenta activa de ComproPago.
Para poder hacer uso de la librería es necesario incluir las clases del archivo .jar
import compropagosdk.Client;
import compropagosdk.factory.Factory;
import compropagosdk.factory.models.*;
Para poder hacer uso del paquete y llamados al API es necesario que primero configures tus Llaves de conexión y crees un instancia de Client. Sus llaves las encontraras en el Panel de ComproPago en el menú Configuración.
/**
* @param String publickey Llave pública correspondiente al modo de la tienda
* @param String privatekey Llave privada correspondiente al modo de la tienda
* @param boolean live Modo de la tienda (false = Test | true = Live)
*/
Client client = new Client(
"pk_test_5989d8209974e2d62", // publickey
"sk_test_6ff4e982253c44c42", // privatekey
false, // live
);
Para poder hacer uso de los servicos de ComproPago, solo debes llamar a los métodos contenidos en la propiedad api de la variable client como se muestra a continuación.
/**
* @param [String] order_id Id de la orden
* @param [String] order_name Nombre del producto o productos de la órden
* @param [double] order_price Monto total de la orden
* @param [String] customer_name Nombre completo del cliente
* @param [String] customer_email Correo electrónico del cliente
* @param [String] payment_type (default = OXXO) Valor del atributo internal_name" de un objeto "Provider"
* @param [String] currency (default = MXN) tipo de moneda del campo order_price (MXN, USD, GBP, EUR)
* @param [String] expiration_time (default = null) fecha de expiración de la orden en formato Epoch
*/
// Información de la orden
Map<String, String> order_info = new HashMap<String, String>();
order_info.put("order_id", "123");
order_info.put("order_name", "M4 SDK Java");
order_info.put("order_price", "123.45");
order_info.put("customer_name", "Eduardo Aguilar");
order_info.put("customer_email", "[email protected]");
order_info.put("payment_type", "SEVEN_ELEVEN");
order_info.put("currency", "USD");
order_info.put("expiration_time", "1484799158");
// Creación del objeto PlaceOrderInfo
PlaceOrderInfo order = Factory.placeOrderInfo(order_info);
// Llamada al método "place_order" del API para generar la órden
NewOrderInfo neworder = client.api.placeOrder(order);
/**
* @param [PlaceOrderInfo] info
* @return
* @throws Exception
*/
public NewOrderInfo placeOrder(PlaceOrderInfo info);
Para verificar el estatus de una orden generada es necesario llamar al método verifyOrder que provee el atributo api del objeto Client y el cual regresa una instancia CpOrderInfo. Este método recibe como parámetro el ID generado por ComproPago para cada órden. También puede obtener este ID desde un objeto NewOrderInfo accediendo al atributo id.
// Guardar el ID de la orden
String order_id = "ch_xxxx_xxx_xxx_xxxx";
// U obtenerlo de un objetdo NewOrderInfo
String order_id = neworder.id;
// Se manda llamar al metodo del API para recuperar la informacion de la orden
CpOrderInfo info = client.api.verifyOrder(order_id);
/**
* @param [String] orderId
* @return
* @throws Exception
*/
public CpOrderInfo verifyOrder(String orderId);
Para obtener el listado de Proveedores disponibles para realizar el pago de las órdenes es necesario consultar el método listProviders que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo ArrayList la cual contendrá objetos de tipo Provider.
Provider[] providers = client.api.listProviders();
/**
* @param [boolean] auth Forzar autenticación
* @param [double] limit Filtro por límite de transaccion de proveedor
* @param [boolean] fetch Forzar búsqueda en base de datos
* @return [Provider[]]
* @throws Exception
*/
// Forma 1
public Provider[] listProviders(double limit, String currency);
// Forma 2
public Provider[] listProviders(double limit);
// Forma 3
public Provider[] listProviders();
Para realizar el el envío de las instrucciones de compra vía SMS es necesario llamar al método sendSmsInstructions que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo SmsInfo.
// Numero al cual se enviaran las instrucciones
String phone_number = "55xxxxxxxx";
// Id de la orden de compra de cual se enviaran las instrucciones
String order_id = "ch_xxxxx-xxxxx-xxxxx-xxxxx";
// Llamada al metodo del API para envio de las instrucciones
SmsInfo smsinfo = client.api.sendSmsInstructions(phone_number , order_id);
/**
* @param [String] number
* @param [String] orderId
* @return [SmsInfo]
* @throws Exception
*/
public SmsInfo sendSmsInstructions(String number, String orderId);
Los webhooks son de suma importancia para el proceso las órdenes de ComproPago, ya que éstos se encargaran de recibir las notificaciones del cambio de estatus de las órdenes de compra generadas. También deberán contener parte de la lógica de aprobación en su tienda en línea.
El proceso que siguen es el siguiente:
- Cuando una orden cambia su estatus, nuestra plataforma le notificará a cada una de las rutas registradas, dicho cambio con la información de la órden modificada en formato JSON.
- Debera de recuperar este JSON en una cadena de texto para posterior mente convertirla a un objeto de tipo CpOrderInfo haciendo uso de la clase Factory que proporciona el SDK de la siguiente forma:
// @param String cadenaObtenida
CpOrderInfo info = Factory.cpOrderInfo( cadenaObtenida );
- Generar la lógica de aprobación correspondiente al estatus de la órden.
Para crear un nuevo Webhook en la cuenta, se debe de llamar al método createWebhook que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo Webhook.
// Se pasa como paramtro la URL al webhook
Webhook webhook = client.api.createWebhook("http://sitio.com/webhook");
/**
* @param [String] url
* @return [Wenhook]
* @throws Exception
*/
public Webhook createWebhook(String url);
Para actualizar la url de un webhook, se debe de llamar al método updateWebhook que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo Webhook.
Webhook updated_webhook = client.api.updateWebhook(webhook.id, "http://sitio.com/nuevo_webhook");
/**
* @param [String] webhookId
* @param [String] url
* @return [Wenhook]
* @throws Exception
*/
public Webhook updateWebhook(String webhookId, String url);
Para desactivar un webhook y evitar que reciba notificaciones sin eliminarlo debe de ocupar la función deactive_webhook que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo Webhook
Webhook deactive = client.api.deactiveWebhook(webhook.id);
/**
* @param [String] webhookId
* @return [Wenhook]
* @throws Exception
*/
public Webhook deactiveWebhook(String webhookId);
Para eliminar un webhook, se debe de llamar al método deleteWebhook que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo Webhook.
Webhook deleted_webhook = client.api.deleteWebhook(webhook.id);
/**
* @param [String] webhookId
* @return [Wenhook]
* @throws Exception
*/
public Webhook deleteWebhook(String webhookId);
Para obtener la lista de webhooks registrados den una cuenta, se debe de llamar al método listWebhook que se encuentra alojado en el atributo api del objeto Client y el cual regresa una instancia de tipo Array la cual contiene objetos de tipo Webhook
webhook[] list = client.api.listWebhooks();
/**
* @return [Webhook[]]
* @throws Exception
*/
public Webhook[] listWebhooks();