La API de Paysepro es un servicio que otorga a los desarrolladores acceso a toda la información sobre un módulo de pago, desde su propio servidor.
Con dicha información es posible crear una UI personalizada con todos los métodos de pago disponibles en el módulo, para poder vender un producto o servicio directamente desde un sitio web.
Lo primero que debes hacer es llamar a la API a través de una URL que obtendrás del apartado API de Pagos, lo cual deberás realizar con la siguiente autenticación. p>
La autenticación de los accesos a la API se debe realizar creando una firma de la solicitud con los siguientes parámetros:
Parámetro | Tipo | Descripción |
---|---|---|
uid | integer | Valor que identifica la cuenta de usuario |
mid | integer | Valor que identifica el módulo referenciado en el proceso |
country | string | Código de país (ISO 3166-2) |
string | Email registrado en la cuenta de usuario |
La encriptación se debe hacer con el algoritmo SHA256 formado por esta cadena: uid + mid + country + email.
Como clave secreta de la encriptación se debe usar la API KEY. Puedes obtenerla en la sección de API de pagos de tu cuenta.
La firma debe ser incluída como parámetro de encabezado de la solicitud y con el nombre de parámetro "signature".
El método getData nos ayuda a obtener toda la información de los métodos disponibles en un determinado país así como también obtener la URL de procesamiento de pagos.
- URL de acceso: https://api.paysepro.com/getData.php
- Parámetros de configuración que deben ser enviados por GET
Parámetro | Requerido | Tipo | Descripción |
---|---|---|---|
uid | sí | integer | identificador de cuenta de usuario |
mid | sí | integer | identificador de módulo de usuario |
cc | sí | string | código de país (ISO 3166-2) |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 | <?php $uid=12345; $mid=54321; $country="es"; $email="[email protected]"; $apikey="CTIEP80XO8ZKMQOX"; $url="https://api.paysepro.com/getData.php?uid=$uid&mid=$mid&cc=$country"; $string=$uid.$mid.$country.$email; $signature=hash_hmac("sha256",$string,$apikey); $result=callUrl($url,$signature); print_r(json_decode($result,true)); echo "\n"; function callUrl($url,$signature) { $defaults = array( CURLOPT_POST => 1, CURLOPT_URL => $url, CURLOPT_RETURNTRANSFER => 1, CURLOPT_FOLLOWLOCATION => true, ); $ch = curl_init(); curl_setopt_array($ch, $defaults); $signature=Array("signature: $signature"); curl_setopt($ch, CURLOPT_HTTPHEADER, $signature); if( ! $result = curl_exec($ch)) trigger_error(curl_error($ch)); curl_close($ch); return($result); } ?> |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 | Array ( [error] => 0 [message] => API response -> successful request. [data] => Array ( [error] => 0 [sites] => Array ( [status] => enabled [url] => https://test.com/ ) [modules] => Array ( [price] => 12.00 [status] => enabled [currency] => USD [country] => es [api_ip] => 167.57.38.174 [methods] => Array ( [neosurf] => Array ( [0] => Array ( [method] => neosurf [country] => es [price] => 12.00 [pmin] => 1.00 [pmax] => 1000.00 ) ) [3esteleingreso] => Array ( [0] => Array ( [method] => 3esteleingreso [country] => es [price] => 12.00 [pmin] => 1.00 [pmax] => 1000.00 ) ) [sofort] => Array ( [0] => Array ( [method] => sofort [country] => es [price] => 0.000 [pmin] => 2.00 [pmax] => 500.00 ) ) [bitcoin] => Array ( [0] => Array ( [method] => bitcoin [country] => [price] => 0.000 [pmin] => 1.00 [pmax] => 1000.00 ) ) ) ) [gateway] => Array ( [url] => https://api.paysepro.com/createCode.php ) ) ) |
Parámetro JSON | Descripción |
---|---|
error | Código de error de API |
message | Mensaje de respuesta |
data | Objeto con la información del pago |
gateway | Objeto con la información del pago |
url | URL para procesar el pago |
sites | Objeto con la información del sitio |
status | Estatus del sitio web |
url | URL del sitio web |
modules | Objeto con la información del módulo de pagos |
price | Precio del módulo de pagos |
status | Estatus del módulo de pagos |
currency | Moneda definida en el módulo |
country | Código de país de acceso |
api_ip | Dirección de IP desde la que se puede acceder a la API |
methods | Objeto con la información de los métodos de pago |
creditcard | Objeto con la información acerca del método de pago de tarjetas de crédito |
method | Nombre del método de pago |
price | Monto de la transacción |
pmin | mínimo de una transacción |
pmax | máximo de una transacción |
Código | Descripción |
---|---|
0 | Respuesta correcta |
05 | MID desconocido |
06 | UID desconocido |
19 | Sitio web desconocido |
22 | API KE incorrecta |
31 | No hay datos para mostrar |
32 | Código de país desconocido |
40 | Firma incorrecta |
Se accede mediante el parámetro GATEWAY->URL devuelto en el método getData y permite iniciar un proceso de pago para generar un código de acceso a un producto o servicio específico. Esta clave de acceso quedará inhabilitada hasta que el cliente complete el proceso de pago con el proveedor correspondiente.
Una vez completado el pago, el código quedará habilitado para ser utilizado en la URL que se configuró como URL DE ACCESO en el módulo de pago.
Para cada cliente que recibe un servicio y paga por él, se debe crear un código de pago único con la configuración del precio, país y método.
Se debe utilizar la siguiente URL para crear el código e iniciar el proceso de pago:
- URL de acceso: https://api.paysepro.com/createCode.php
- Los parámetros de configuración deben ser enviados por POST.
Parámeter | Requerido | Tipo | Descripción |
---|---|---|---|
uid | sí | numeric | identificador de cuenta de usuario |
mid | sí | numeric | identificador de módulo de usuario |
type | sí | text | método de pago |
cc | sí | text | código de país (ISO 3166-2) |
price | sí | numeric | precio |
name | no | text | nombre de la persona que usa el servicio |
no | email de la persona que usa el servicio |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 | <?php $uid=12345; $mid=54321; $country="ar"; $email="[email protected]"; $apikey="CTIEP80XO8ZKMQOX"; //Payment array $data=Array( "uid"=>$uid, //USER ID -Value type: integer "mid"=>$mid, //PAYMENT MODULE ID -Value type: integer "type"=>"1arciti", //PAYMENT METHOD -Value type: string "cc"=>$country, //COUNTRY CODE -Value format: ISO 3166-2 format "price"=>2.99, //PRODUCT/SERVICE PRICE -Value type: float "ucode"=>"ABC", //PRODUCT/SERVICE CODE -Value type: string "name"=>"Jack Dalton", //CUSTOMER NAME -Value type: string "email"=>"[email protected]", //CUSTOMER EMAIL ); $string=$uid.$mid.$country.$email; $signature=hash_hmac("sha256",$string,$apikey); $fields=http_build_query($data); $ch=curl_init(); curl_setopt($ch,CURLOPT_URL,"https://api.paysepro.com/createCode.php"); curl_setopt($ch,CURLOPT_SSL_VERIFYPEER,false); curl_setopt($ch,CURLOPT_POST,1); curl_setopt($ch,CURLOPT_POSTFIELDS,$fields); curl_setopt($ch,CURLOPT_RETURNTRANSFER,true); $signature=Array("signature: $signature"); curl_setopt($ch, CURLOPT_HTTPHEADER, $signature); $result=curl_exec($ch); curl_close($ch); if($result) { // Decode JSON data $data=json_decode($result); // Convert PHP object to PHP array if(is_object($data)) $data=(array)$data; if(is_array($data)&&count($data)) { if(!$data["error"]&&isset($data["url"])) { // Redirect to Payment Provider FORM header("Location: {$data["url"]}"); exit; } // Print Error code -view Error Codes reference die("Error: {$data["error"]}"); } } // Print Error message die("Error"); ?> |
1 2 3 4 5 6 | { 'code':"AABBCCDDEEFF", 'price':2.99, 'error':0, 'url':"https://api.paysepro.com/pay.php?uid=1&mid=1&method=paypal&country=uy&code=AABBCCDDEEFF" } |
1 2 3 | { "error":"02", } |
Se debe utilizar la URL del resultado correcto para redirigir al usuario final para que se pueda realizar el pago final.
Cada método de pago puede agregar parámetros particulares si fuera necesaria más información.
Código | Descripción |
---|---|
0 | Respuesta correcta |
01 | Método de pago desconocido |
02 | Email vacío |
03 | UID vacío |
04 | MID vacío |
05 | MID desconocido |
06 | UID desconocido |
07 | Cuenta deshabiltiada |
08 | Error interno |
09 | No hay métodos de pago habilitados |
10 | El método de pago está deshabilitado |
11 | Información de acceso incorrecta |
12 | Dinero insuficiente |
16 | Método de pago desconocido por la API |
17 | Error de procesamiento interno |
18 | Error de configuración de la cuenta |
19 | Sitio web desconocido |
20 | No tiene comisión configurada |
22 | API KEY incorrecta |
26 | Referer incorrecto |
27 | IP deshabilitada |
28 | Módulo de pago deshabilitado |
29 | Sitio web deshabilitado |
40 | Firma incorrecta |