Para este servicio se debe consumir el siguiente endpoint:
A continuación, se muestra el paso a paso para ejecutar un pago manual de una suscripción en nuestro API de forma exitosa:
Crear el objeto JSON a enviar
El objeto json debe tener la siguiente estructura:
{
"merchantId": "merchantId provisto por GreenPay en el archivo de las credenciales",
"secret": "secret provisto por GreenPay en el archivo de las credenciales",
"pageSize": 25,
"page": 1,
"filters": {
"status": [
"ON_HOLD", "PENDING", "CANCELED"
],
"user": "userId registrado cuando se creó la suscripción",
"minAmount": 0, //Mayor que cero
"maxAmount": 0, //Mayor que cero
"subsDate": "2019-06-20T06:00:51.582Z" //Timestamp de la fecha en que se creó la suscripción
}
}
Todos los parámetros del campo "filters" son opcionales. Es decir, si no envía el campo filters, el servicio lista todas las suscripciones que haya creado el comercio, si se envía el filters puede listar 1 o más de acuerdo a los parámetros permitidos por el API.
A continuación, se muestra la descripción de los parámetros:
- secret: secret provisto por GreenPay en el archivo de las credenciales.
- merchant: merchantId provisto por GreenPay en el archivo de las credeciales.
- pageSize: Cantidad de registros que debe retornar el servicio
- page: Página que debe retornar el servicio.
Consideraciones
- El parámetro “page” debe ser un valor mayor que cero.
- El parámetro “pageSize” debe ser un número entre uno y cien.
2. Enviar la solicitud
Se debe enviar una solicitud HTTP de tipo POST al endpoint para ejecutar el listado con el objeto JSON que contiene los datos de la suscripción.
Una vez que se ha enviado la solicitud y esta se haya realizada con éxito, se obtiene un objeto de tipo JSON como respuesta.
Al recibir esta respuesta, el parámetro que se debe obtener del objeto JSON es el “body”, ya que este contiene el resultado del cambio del monto de la suscripción. En la siguiente imagen se muestra un ejemplo de la respuesta que se recibe:
{
"status": "SUCCESS",
"code": 200,
"result": {
"entries": [
{
"id": "5625d026579f64b63f250631220f8836",
"status": "NOT_PAID",
"user_id": "Aaron",
"description": "subscription description",
"currency": "CRC",
"amount": "10",
"startdate": "1536991200000",
"enddate": "1544853600000",
"cadence": "EVERY 1 MONTH",
"next_payment_date": "2019-01-15T00:00:00.000Z"
},
{
"id": "2d374b16dfc4937a7429cbd73636f7ba",
"status": "NOT_PAID",
"user_id": "Aaron",
"description": "subscription description",
"currency": "CRC",
"amount": "10",
"startdate": "1536991200000",
"enddate": "1544853600000",
"cadence": "EVERY 15 DAY",
"next_payment_date": "2019-01-27T00:00:00.000Z"
}
],
"page": 1,
"totalEntries": 15,
"totalPages": 1
},
"errors": []
}
A continuación, se muestra un ejemplo en javascript del envío de la solicitud al endpoint de suscripciones para listar. Esta función también obtiene el “body” del objeto tipo JSON que se recibe como respuesta.
var unirest = require("unirest");
req.headers({
"Postman-Token": "93d00f6a-5af4-4dd1-b540-5b705107b615",
"cache-control": "no-cache",
"Content-Type": "application/json"
});
req.type("json");
req.send({
"secret": "QUY5MzBEMkRDMzVCMDFCRDc2NzEwRjZCQjE3NjhFNkE0NjhEQ0MxRjkxQzkzMjAwNzVDNUVGNkY5RTc0N0M0NzkzNUEyQUZFQjczMEYyODEyRjJEMDc5Q0ExNTk1NTA0NjdCMkNBODg1N0Q4MzY2MjI0NEREMUVGQjk4NTcwMzg=",
"merchantId": "143b28c9-32ad-4635-8ed8-d6abfb6863a0",
"pageSize": 100,
"page": 1
});
req.end(function (res) {
if (res.error) throw new Error(res.error);
console.log(res.body);
});
Posibles errores a recibir:
Si se intenta utilizar el servicio con credenciales incorrectas, la respuesta retornada será la siguiente.
{
"code": 500,
"status": "FAIL",
"result": [],
"errors": [
"Merchant doesn't exist"
]
}
- Bad request, check params
Si se intenta utilizar el servicio enviando valores no aceptados en los parámetros pageSize y page, la respuesta retornada será la siguiente.
{
"status": "FAIL",
"code": 400,
"result": [],
"errors": [
"Bad request, check params"
]
}