Pagos en OXXO

En este segmento encontrarás cómo integrar en tu modelo de negocio la opción de pagos a través de tiendas OXXO. El siguiente diagrama ilustra el flujo durante el proceso de pago.

Pasos

1. Generar la referencia.
2. El API de Sr. Pago creará una referencia con la información proporcionada.
3. Tu cliente deberá realizar el pago en cualquier tienda OXXO.
4. Sr.Pago te notificará el pago exitoso.

Pre-requisitos

Antes de iniciar con el desarrollo, debes registrar tu aplicación en nuestra plataforma y obtener las credenciales. Entra aquí. si tienes dudas del proceso.

Proceso

Generar la referencia a través de API

Para generar la referencia es necesario que la petición cuente con 3 los valores principales de entrada:

Description: Es la descripción que tendrá la referencia y con la que podrás identificar el pago en tu sistema.
Total: Importe de la referencia.
Store: «Oxxo» tienda donde se realizará el pago de la referencia.

POST   Tienda de Conveniencia

https://sandbox-api.srpago.com/v1/payment/convenience-store

Envía una solicitud de pago en alguna tienda de conveniencia.

headers

AuthorizationBasic
Content-Typeapplication/json

body

{
  "payment":{
    "reference":{
      "description":"-"
    }
  },
  "total":100,
  "store":"oxxo"
}
storeOXXO,

Example Request

  curl --location --request POST "https://sandbox-api.srpago.com/v1/payment/convenience-store" \
  --header "Content-Type: application/json" \
  --header "Authorization: Basic " \
  --data "{
  \"payment\":{
    \"reference\":{
      \"description\":\"-\"
    }
  },
  \"total\":100,
  \"store\":\"oxxo\"
}"
  var settings = {
  "url": "https://sandbox-api.srpago.com/v1/payment/convenience-store",
  "method": "POST",
  "timeout": 0,
  "headers": {
    "Content-Type": "application/json",
     "Authorization": "Basic "
  },
  "data": "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100,\n\t\"store\":\"oxxo\"\n}",
};
$.ajax(settings).done(function (response) {
  console.log(response);
});
  require "uri"
require "net/http"

url = URI("https://sandbox-api.srpago.com/v1/payment/convenience-store")

http = Net::HTTP.new(url.host, url.port)

request = Net::HTTP::Post.new(url)
request["Content-Type"] = "application/json"
request["Authorization"] = "Basic "
request.body = "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100,\n\t\"store\":\"oxxo\"\n}"

response = http.request(request)
puts response.read_body
  import requests
url = 'https://sandbox-api.srpago.com/v1/payment/convenience-store'
payload = "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100,\n\t\"store\":\"oxxo\"\n}"
headers = {
  'Content-Type': 'application/json',
  'Authorization': 'Basic '
}
response = requests.request('POST', url, headers = headers, data = payload, allow_redirects=False, timeout=undefined, allow_redirects=false)
print(response.text)

  var https = require('https');

var options = {
  'method': 'POST',
  'hostname': 'https://sandbox-api.srpago.com',
  'path': '/v1/payment/convenience-store',
  'headers': {
    'Content-Type': 'application/json',
    'Authorization': 'Basic '
  }
};

var req = https.request(options, function (res) {
  var chunks = [];

  res.on("data", function (chunk) {
    chunks.push(chunk);
  });

  res.on("end", function (chunk) {
    var body = Buffer.concat(chunks);
    console.log(body.toString());
  });

  res.on("error", function (error) {
    console.error(error);
  });
});

var postData =  "{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100,\n\t\"store\":\"oxxo\"\n}";

req.write(postData);

req.end();
<?php

$curl = curl_init();

curl_setopt_array($curl, array(
  CURLOPT_URL => "https://sandbox-api.srpago.com/v1/payment/convenience-store",
  CURLOPT_RETURNTRANSFER => true,
  CURLOPT_ENCODING => "",
  CURLOPT_MAXREDIRS => 10,
  CURLOPT_TIMEOUT => 0,
  CURLOPT_FOLLOWLOCATION => false,
  CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
  CURLOPT_CUSTOMREQUEST => "POST",
  CURLOPT_POSTFIELDS =>"{\n\t\"payment\":{\n\t\t\"reference\":{\n\t\t\t\"description\":\"-\"\n\t\t}\n\t},\n\t\"total\":100,\n\t\"store\":\"oxxo\"\n}",
  CURLOPT_HTTPHEADER => array(
    "Content-Type: application/json",
    "Authorization: Basic "
  ),
));

$response = curl_exec($curl);
$err = curl_error($curl);

curl_close($curl);

if ($err) {
  echo "cURL Error #:" . $err;
} else {
  echo $response;
} ?>
  package main

import (
  "fmt"
  "strings"
  "os"
  "path/filepath"
  "net/http"
  "io/ioutil"
)

func main() {

  url := "https://sandbox-api.srpago.com/v1/payment/convenience-store"
  method := "POST"

  payload := strings.NewReader("{\n \"payment\":{\n   \"reference\":{\n     \"description\":\"-\"\n   }\n },\n  \"total\":100,\n  \"store\":\"oxxo\"\n}")

  client := &http.Client {
    CheckRedirect: func(req *http.Request, via []*http.Request) error {
      return http.ErrUseLastResponse
    },
  }
  req, err := http.NewRequest(method, url, payload)

  if err != nil {
    fmt.Println(err)
  }
  req.Header.Add("Content-Type", "application/json")
  req.Header.Add("Authorization", "Basic ")

  res, err := client.Do(req)
  defer res.Body.Close()
  body, err := ioutil.ReadAll(res.Body)

  fmt.Println(string(body))
}

2. Nuestro API creará la referencia de pago

Example Response

{
  "success": true,
  "result": {
    "transaction": "5587b8ad-e1e8-4cc7-b6de-9fef5303b4b9",
    "store": {
      "name": "OXXO",
      "short_name": "OXXO"
    },
    "bank_account_number": "0000 0000 0000 0000",
    "bank_name": "Banco pruebas",
    "payment_id": "ch_c60aa54b-6d51-48ae-ac5a-7c6895f63bbb",
    "short_id": "4174B14B",
    "reference": {
      "description": "-"
    },
    "total": {
      "amount": "100.00",
      "currency": "MXN"
    },
    "url": "https://sandbox-connect.srpago.com/voucher/Y2hfYzYwYWE1NGItNmQ1MS00OGFlLWFjNWEtN2M",
    "timestamp": "2017-10-25T12:47:27-05:00",
    "expiration_date": "2017-10-27T23:00:00-05:00",
    "status": 2,
    "status_code": "pending"
  }
}

En la respuesta de la petición viaja todo el detalle para que puedas construir de forma personalizada tu propio recibo, o bien, el campo URL ya nuestro API genera este recibo de pago.

3. Pago en tienda OXXO

Tu cliente debe realizar el pago correspondiente a su referencia desde cualquier tienda OXXO. Recuérdale que esta tienda cobra una comisión adicional por el depósito y no le pertenece ni a tu comercio ni a Sr. Pago.

4. Notificación de transacción exitosa

Una vez realizado el pago, el monto se verá reflejado en tu cuenta Sr. Pago al día hábil siguiente.

Puedes consultarlo desde tu sesión en https://my.srpago.com/.

¿Te resultó útil este artículo? Si 6 No 8