These docs are for v2.1.0. Click to read the latest docs for v2.2.0.

Generar Link de Pago

1. Crear link de pago

El siguiente snippet incorpora todas las partes del paso 1.
Copia y pega el siguiente fragmento de código en tu sandbox y corre el código para crear a un objeto checkout y opcionalmente también puedes enviarlo por correo electrónico o SMS.

Para más información sobre las diferentes partes del snippet favor de seguir el resto del tutorial.

curl --request POST \
  --url https://api.conekta.io/checkouts \
  --header 'accept: application/vnd.conekta-v2.1.0+json' \
  -u key_eYvWV7gSDkNYXsmr: \
  --header 'content-type: application/json' \
  --data '{
    "name": "Payment Link Name",
    "type": "PaymentLink",
    "recurrent": false,
    "expires_at": 1590882634,
    "allowed_payment_methods": ["cash", "card", "bank_transfer"],
    "needs_shipping_contact": true,
    "order_template": {
        "line_items": [{
            "name": "Red Wine",
            "unit_price": 1000,//con este valor y quantity se calculará el parámetro amount de la petición
            "quantity": 10
        }],
        "currency": "MXN",
        "customer_info": {
            "name": "Juan Perez",
            "email": "[email protected]",
            "phone": "5566982090"
        }
    }
 }'
📘

Fecha de expiración

La fecha de expiración puede ser un timestamp comprendido entre 2 a 365 días (el rango válido se tomará a partir del siguiente día de fecha de creación a las 00:01 hrs)

1.1 Asociar un customer con link de pago

Si quieres crear customers y asociarlos con el link de pago entonces puedes hacer las siguientes dos peticiones.

Crear el customer

curl -H "Accept: application/vnd.conekta-v2.1.0+json"\
-H "Content-type: application/json" \
-u key_XXXXXXXXX: \
-X POST -d '{
    "name": "Vicente Mendoza",
    "email": "[email protected]",
    "phone": "5566982093"
}' https://api.conekta.io/customers

Crear link de pago asociado a ese customer

curl --request POST \
--url https://api.conekta.io/checkouts \
--header 'accept: application/vnd.conekta-v2.1.0+json' \
-u key_XXXXX: \
--header 'content-type: application/json' \
--data '{
    "name": "Payment Link Name",
    "type": "PaymentLink",
    "recurrent": false,
    "expired_at": 1597635007,
    "allowed_payment_methods": ["cash", "card", "bank_transfer"],
    "needs_shipping_contact": false,
    "order_template": {
        "line_items": [{
            "name": "Red Wine",
            "unit_price": 1000,
            "quantity": 10
        }],
        "currency": "MXN",
        "customer_info": {
            "customer_id": "cus_2nYSnP4EDiREgGte9"
        }
    }
}'

2. Recibir la notificación de pago (opcional)

Si tienes configurado un webhook tu puedes recibir el evento charge.paid cada que se reciba un pago exitoso.

$body = @file_get_contents('php://input');
$data = json_decode($body);
http_response_code(200); // Return 200 OK 

if ($data->type == 'charge.paid'){
  $msg = "Tu pago ha sido comprobado.";
  mail("[email protected]","Pago confirmado",$msg);
}
class WebhooksController < ApplicationController
  skip_before_filter :verify_authenticity_token 

  def receive
    data = JSON.parse(request.body.read)
    if data['type'] == 'charge.paid'
        msg = 'Tu pago ha sido comprobado'
        ExampleMailer.paid_email(data, msg)
      end
    end 

    render status: 200
  end
end
import json 

data = json.loads(HttpRequest.body) 

if data.type == 'charge.paid':
  msg['Subject'] = 'Pago confirmado'
  msg['From'] = me
  msg['To'] = you 

  s = smtplib.SMTP('localhost')
  s.sendmail(me, [you], msg.as_string())
  s.quit()
end
//Using nodemailer
var data = typeof req.body == 'string' ? JSON.parse(req.body) : req.body; 

if (data.type == 'order.paid') {
  var mail = {
      from: me,
      to: you,
      subject: 'Pago comprobado',
      text: 'Tu pago ha sido confirmado.'
  };
  transporter.sendMail(mail, function(error, info){
      if(error){ return console.log(error); }
    });
}
import org.json.JSONObject;
  protected void doPost(HttpServletRequest request, HttpServletResponse response)
    throws ServletException, IOException {
      BufferedReader get_body = request.getReader(); 

      //Parse JSON
    }
using System.Net.Mail; 

public class ConektaWebhookController : Controller
    {
      MailMessage mail = new MailMessage(you, me); 

      [HttpPost]
      public ActionResult Index()
      {
          Stream req = Request.InputStream;
          req.Seek(0, System.IO.SeekOrigin.Begin); 

          string json = new StreamReader(req).ReadToEnd();
          var obj = JObject.Parse(json);
          var data = obj.SelectToken("data"); 

          if(data.Type == 'charge.paid'){
            mail.Subject = "Pago comprobado";
            mail.Body = "Tu pago ha sido confirmado.";
            client.Send(mail);
          } 

          return new HttpStatusCodeResult(HttpStatusCode.OK);
      }
  }

Did this page help you?