La librería de ComproPago SDK C#.NET
te permite interactuar con el API de ComproPago en 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 puede 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 Empezar a usar ComproPago
- Información de Contacto
- NET framework 4.x
- Newtonsoft.Json 9.0.1
- Microsoft.CSharp
- Newtonsoft.Json
- System
- System.Core
- System.Data
- System.Data.DataSetExtensions
- System.Net.Http
- System.Web
- System.Web.Extensions
- System.Xml
- System.Xml.Linq
Puede descarga la ultima version estable desde los repositorios de NuGet. El repositorio del SDK es el siguiete: https://www.nuget.org/packages/ComproPago/. O bien puede instalarlo desde el Package Manager Console de la siguiente forma:
PM> Install-Package ComproPago
Puede descargar alguna de las versiones que hemos publicado:
O si o lo desea puede obtener el repositorio
#repositorio en su estado actual (*puede no ser versón estable*)
git clone https://github.com/compropago/sdk-cs-net.git
ComproPago te ofrece un API tipo REST para integrar pagos en efectivo en tu comercio electrónico o 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 debe contar con una cuenta activa de ComproPago.
Para poder hacer uso de la librería es necesario incluir las librerias principales del Sdk
using CompropagoSdk;
using CompropagoSdk.Factory;
Para poder hacer uso del SDK y llamados al API es necesario que primero configures tus Llaves de conexión y crees un instancia de Client. Sus llaves las encontrara en su Panel de ComproPago en el menú Configuración.
/**
* @param string publickey Llave publica correspondiente al modo de la tienda
* @param string privatekey Llave privada correspondiente al modo de la tienda
* @param bool live Modo de la tienda (false = Test | true = Live)
*/
var client = new Client(
"pk_test_xxxxxxxxxxxxxxxxx", // publickey
"sk_test_xxxxxxxxxxxxxxxxx", // privatekey
false // live
);
Para poder hacer uso de los servicios 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 orden
* @param string order_price Monto total de la orden
* @param string customer_name Nombre completo del cliente
* @param string customer_email Correo electronico del cliente
* @param string payment_type (default = SEVEN_ELEVEN) Valor del atributo internal_name' de un objeto 'Provider'
* @param string currency (default = MXN) Codigo de la moneda con la que se esta creando el cargo
* @param string expiration_time (default = null) fecha de expiración de la orden en formato epoch
*/
var orderInfo = new Dictionary<string, string>
{
{"order_id", "123"},
{"order_name", "M4 sdk CS.NET"},
{"order_price", "123.45"},
{"customer_name", "Eduardo"},
{"customer_email", "[email protected]"},
{"payment_type", "SEVEN_ELEVEN"},
{"currency", "USD"},
{"expiration_time", "1484786210"}
};
/**
* Creación del objeto PlaceOrderInfo
*/
var order = Factory.PlaceOrderInfo(orderInfo);
/**
* Llamada al metodo 'PlaceOrder' del API para generar la orden
*/
var newOrder = client.Api.PlaceOrder(order);
/**
* @param PlaceOrderInfo info Objeto con la informacion de la orden de compra
* @return NewOrderInfo
*/
public NewOrderInfo placeOrder(PlaceOrderInfo info);
Para verificar el estatus de una órden 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. Tambien puede obtener este ID desde un objeto NewOrderInfo accediendo al atributo id.
/**
* Guardar el ID de la orden
*/
string orderId = "ch_xxxx_xxx_xxx_xxxx";
/**
* U obtenerlo de un objetdo NewOrderInfo
*/
string orderId = newOrder.id;
/**
* Se manda llamar al metodo del API para recuperar la informacion de la orden
*/
var info = client.Api.VerifyOrder(orderId);
/**
* @param string orderId Id de orden generada por ComproPago
* @return CpOrderInfo
*/
public CpOrderInfo verifyOrder(string orderId);
Para obtener el listado de Proveedores disponibles para realizar el pago de las ordenes es necesario consutar el método ListProviders que se encuentra alojado en el atributo Api del objeto Client y el cual regresa una instancia de tipo Provider[]
var providers = client.Api.ListProviders();
/**
* @param double limit (default = 0) limite minimo de transaccion que deberan tener los proveedores a obtener
* @param string currency (default = MXN) tipo de moneda a la que pertenece el parametro limit (MXN, USD, EUR, GBP)
* @return List<Provider>
*/
public Provider[] ListProviders(double limit = 0, string currency = "MXN");
Para realizar el envío de las instrucciones de compra via SMS es necesario llamar al método sendSmsInstructions que se 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 phoneNumber = "55xxxxxxxx";
/**
* Id de la orden de compra de cual se enviaran las instrucciones
*/
string orderId = "ch_xxxxx-xxxxx-xxxxx-xxxxx";
/**
* Llamada al metodo del API para envio de las instrucciones
*/
var smsinfo = client.Api.SendSmsInstructions(phoneNumber, orderId);
/**
* @param string number Numero al que se enviaran las instrucciones (10 digitos)
* @param string orderId Id de orden generada por ComproPago
* @return SmsInfo
*/
public SmsInfo SendSmsInstructions(string number, string orderId);
Los webhooks son de suma importancia para el proceso de las órdenes de ComproPago, ya que ellos se encargaran de recibir las notificaciones del cambio en los estatus de las órdenes de compra generadas, tambien 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 órden cambia su estatus, nuestra plataforma le notificará a cada una de las rutas registradas, dicho cambio con la información de la orden modificada en formato JSON
- Deberá recuperar dicho JSON en una cadena de texto para posteriormente convertirla a un objeto de tipo CpOrderInfo haciendo uso de la clase Factory que proporciona el SDK de la siguiente forma:
var info = Factory.CpOrderInfo( cadenaJson );
- 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
*/
var webhook = client.Api.CreateWebhook("http://sitio.com/webhook");
/**
* @param string url Url del webhook a registrar
* @return Webhook
*/
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
var updateWebhook = client.Api.UpdateWebhook(webhookId, newUrl);
/**
* @param string webhookId Id del webhook que se desea actualizar
* @param string url Url nueva del webhook
* @return Webhook
*/
public Webhook UpdateWebhook(string webhookId, string url);
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
var updateWebhook = client.Api.DeleteWebhook(webhookId);
/**
* @param string webhookId Id del webhook registrado
* @return Webhook
*/
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 Webhook[]
var updateWebhook = client.Api.ListWebhooks();
/**
* @return List<Webhook>
*/
public Webhook[] ListWebhooks();