Actualizar método de pago

Actualizar método de pago

Para este servicio se debe consumir el siguiente endpoint:

A continuación, se muestra el paso a paso para cancelar  una suscripción en nuestro API de forma exitosa:

1. Crear el objeto JSON a enviar

El objeto JSON debe tener la siguiente estructura:

Ejemplo de JSON a enviar en el request


{
    "subscriptionId": "id returned when subscription was created",
    "merchantId": "your merchantid",
    "secret": "your secret",
    "user": "Some user name",
    "token": "New token to add"
  }

 

A continuación, se muestra la descripción de los parámetros:

  1. subscriptionId: Es el identificador que se recibe en la respuesta cuando se crea una suscripción
  2. secret: secret provisto por GreenPay.
  3. merchant: merchantId provisto por GreenPay.
  4. user: Usuario que actualizará la suscripción.
  5. token: El token nuevo que reemplazará al que contiene la suscripción.


Consideraciones

El parámetro “user” es utilizado para  llevar la auditoría de los usuarios que cambian el método de pago.


2. Enviar la solicitud de actualización del método de pago

Se debe enviar una solicitud HTTP de tipo POST al endpoint para cambiar el método de pago con el objeto json que contiene los datos de la suscripción.

Una vez que se ha enviado la solicitud de actualización y esta se haya realizado 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 método del pago. En la siguiente imagen se muestra un ejemplo de la respuesta que se recibe:

Ejemplo de respuesta exitosa

{
    "code": 200,
    "status": "SUCCESS",
    "result": {
        "id": "3",
        "merchant_id": "143b28c9-32ad-4635-8ed8-d6abfb6863a0",
        "status": "ACTIVE",
        "user_id": "Aaron",
        "user_type": 1,
        "card_tokens": [
            "bf0bd94a-a4e7-4ef6-96c6-2350f3963f93"
        ],
        "purchase_order": {
            "secret": "QUY5MzBEMkRDMzVCMDFCRDc2NzEwRjZCQjE3NjhFNkE0NjhEQ0MxRjkxQzkzMjAwNzVDNUVGNkY5RTc0N0M0NzkzNUEyQUZFQjczMEYyODEyRjJEMDc5Q0ExNTk1NTA0NjdCMkNBODg1N0Q4MzY2MjI0NEREMUVGQjk4NTcwMzg=",
            "terminal": "deKokoTest-eb29-BNCR-CRC",
            "description": "subscription description",
            "currency": "CRC",
            "initialPayment": {
                "amount": 100,
                "description": "some set up description"
            },
            "subscription": [
                {
                    "startDate": 1536991200000,
                    "endDate": 1544853600000,
                    "amount": 10,
                    "cadence": {
                        "mode": "EVERY",
                        "unit": "MONTH",
                        "every": 1,
                        "day": 15
                    }
                }
            ],
            "optional": {
                "key": "value",
                "key1": "value1"
            }
        },
        "next_payment": null,
        "enabled": true,
        "inserted_at": "2018-12-21T20:55:06.299Z",
        "updated_at": "2018-12-21T22:01:11.341Z",
        "general_info": {
            "user": "UserBot"
        }
    },
    "errors": []
  }


A continuación, se muestra un ejemplo en javascript del envío de la solicitud al endpoint de suscripciones. Esta función también obtiene el “body” del objeto tipo JSON que se recibe como respuesta.

Ejemplo de código de envío del Post request


var data = {
   "subscriptionId": "b69cd5773eac06bf25a702bac02e8079",
   "secret": "QUY5MzBEMkRDMzVCMDFCRDc2NzEwRjZCQjE3NjhFNkE0NjhEQ0MxRjkxQzkzMjAwNzVDNUVGNkY5RTc0N0M0NzkzNUEyQUZFQjczMEYyODEyRjJEMDc5Q0ExNTk1NTA0NjdCMkNBODg1N0Q4MzY2MjI0NEREMUVGQjk4NTcwMzg=",
   "merchantId": "143b28c9-32ad-4635-8ed8-d6abfb6863a0",
   "user": "UserBot",
   "token": "bf0bd94a-a4e7-4ef6-96c6-2350f3963f93"
}

var unirest = require("unirest");

var req = unirest("POST", url);

req.headers({
   "cache-control": "no-cache",
   "Content-Type": "application/json"
});

req.type("json");
req.send(data);

req.end(function (res) {
   if (res.error) throw new Error(res.error);
   console.log(res.body);
});

3. Posibles errores a recibir

  1. Merchant doesn't exist.

Si se intenta actualizar  una suscripción con credenciales incorrectas, la respuesta retornada será la siguiente.

Ejemplo de respuesta - Credenciales invalidas

{
    "code": 500,
    "status": "FAIL",
    "result": [],
    "errors": [
        "Merchant doesn't exist"
    ]
  }
 


2.Subscription doesn't exist.

Si se intenta actualizar una suscripción inactiva o que no se encuentra en alguno de los estados (ActivePending u On Hold) , la respuesta retornada será la siguiente.

Ejemplo de respuesta - Suscripción no existe
{
    "code": 500,
    "status": "FAIL",
    "result": [],
    "errors": [
        "Subscription doesn't exist."
    ]
  }
 




    • Related Articles

    • Actualizar monto

      Consideraciones Para este servicio se debe consumir el siguiente endpoint: https://sandbox-merchant.greenpay.me/subscriptions/update A continuación, se muestra el paso a paso para actualizar el monto de una suscripción en nuestro API de forma ...
    • Actualizar token de tarjeta

      Consideraciones Para utilizar el servicio de tokenización se debe tomar en cuenta los siguiente: Utilizar el servicio en los endpoints: Sandbox: https://sandbox-checkout.greenpay.me/tokenize/update Producción: ...
    • Invocar API de pago

      Consideraciones Para invocar el Api de pagos se debe considerar lo siguiente: Utilizar el servicio en los endpoints: Sandbox: https://sandbox-checkout.greenpay.me/kount Producción: https://checkout.greenpay.me/kount Tener una session y token de una ...
    • Respuesta de pago en webhook

      1. Descripción Si el comercio require recibir las respuesta de los pagos o tokenización de tarjetas en un backend, ya sea, para actualizar pedidos, información o simplemente almacenar la respuesta en base de datos como respaldo, entonces debe ...
    • Crear orden de pago

      Consideraciones La orden de pago se genera para indicar al API de pago que se realizará una transacción, basándose en los datos proporcionados en la orden. Para esto, se debe considerar lo siguiente: Utilizar el servicio en los endpoints: En sandbox: ...