Pre-requisitos
1. Debes contar con tus llaves de configuración. Si aún no las tienes créalas aquí.
2. Tener un token de tarjeta generado.
Pasos
Descargar la librería PHP con ejemplos
1. Instala el SDK en nuestro proyecto encuéntralo en la siguiente ruta <Raíz del proyecto>/vendor/srPago>
2. Configura las keys y el ambiente en el que trabajarás.
3. Configura tus parámetros de cobro.
Configuración
1. Instala el SDK en nuestro proyecto, normalmente estará bajo la ruta <Raíz del proyecto>/vendor/srPago>
2. Configura tus llaves.
i. Dentro de la carpeta examples/services/SrPagoService.php debes añadir las llaves de tu aplicación:
ii. En esta carpeta encontrarás las siguientes ligas a modificar:
SrPagoSrPago::$apiKey = "/* Colocar App Key */"; SrPagoSrPago::$apiSecret = "/* Colocar App Secret */"; SrPagoSrPago::$liveMode = false;
Ambiente de pruebas: \SrPago\SrPago::$liveMode = false;
Ambiente productivo: \SrPago\SrPago::$liveMode = true;
iii. Configura la Public key
Busca en el demo los archivos examples/cardPayment.php y examples/customer.php, en estos documentos encontrarás las siguientes líneas a modificar:
$( document ).ready(function() { SrPago.setLiveMode(false); SrPago.setPublishableKey("/* Colocar Public Key */");
La Public Key es un valor que se obtuvo al registrar la aplicación.
Nota: No olvides configurar el LiveMode en tu ambiente de trabajo.
3. Configura los parámetros de cobro
En el campo «source» del changeParams, debes enviar el token tipo «tok_» generado previamente.
<?php /// Librerías requeridas include_once './vendor/srpago_php/SrPago.php'; include_once ('header.php'); /// Parámetros de cobro $chargeParams = array( "amount"=>10, "description" => 'Test', "reference"=> 'test', "ip"=> getIp(), "source"=>$_POST['tokenInput'], "months" => "1", );
En la petición es obligatorio enviar el metadata. ¿Por qué me piden esta info?
$metadata = array( "billing" => array( "billingEmailAddress" => "[email protected]", "billingFirstName-D"=> "Nombre", "billingMiddleName-D"=> "2ndoNombre", "billingLastName-D"=> "Apellidos", "billingAddress-D" => "Calle 1", "billingAddress2-D"=> "Colonia", "billingCity-D"=> "Ciudad", "billingState-D"=> "Publación", "billingPostalCode-D"=> "00000", "billingCountry-D"=> "MX", "billingPhoneNumber-D"=> "0000000000", "creditCardAuthorizedAmount-D"=> "10" ), "member"=> array( "memberLoggedIn"=> "SI", "memberFullName"=> "Nombre Apellidos", "memberFirstName"=> "Nombre", "memberMiddleName"=> "2ndo Nombre", "memberLastName"=> "Apellidos", "memberEmailAddress"=> "[email protected]", "memberAddressLine1"=> "Calle 1", "memberAddressLine2"=> "Colonia", "memberCity"=> "Ciudad", "memberState"=> "Estado", "memberCountry"=> "MX", "memberPostalCode"=> "00000", "memberPhone"=>"0000000000" ), "items"=> array ( "item"=> array ( array( "itemNumber"=> "01", "itemDescription" => "Preba", "itemPrice"=>"100", "itemQuantity" => "1", "itemMeasurementUnit"=> "PZ", "itemBrandName"=>"SR.Pago", "itemCategory"=> "TI", "itemTax"=> "0.00", ), ), ), "shipping"=> array( "shippingCharges"=> "100.50", "shippingFirstName"=> "Juan", "shippingMiddleName"=> "Pablo", "shippingLastName"=> "Perez", "shippingEmailAddress"=> "[email protected]", "shippingAddress"=> "a", "shippingAddress2"=> "b", "shippingCity"=> "s", "shippingState"=> "Chicago", "shippingPostalCode"=> "12345", "shippingCountry"=> "MX", "shippingPhoneNumber"=> "", "shippingMethod"=> "mail", "shippingDeadline"=> "2015-08-01",), ); $response = ''; try { $srPago = new SrPago(); $srPago->setup(); $response = $srPago->chargesCreateCharge($chargeParams, $metadata); }catch (Exception $e){ echo 'Error ' . $e->getMessage() . ' ' . $e->getFile(); } print_r($response); function getIp(){ $ipaddress = ''; if (isset($_SERVER['HTTP_CLIENT_IP'])) $ipaddress = $_SERVER['HTTP_CLIENT_IP']; else if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_X_FORWARDED'])) $ipaddress = $_SERVER['HTTP_X_FORWARDED']; else if(isset($_SERVER['HTTP_FORWARDED_FOR'])) $ipaddress = $_SERVER['HTTP_FORWARDED_FOR']; else if(isset($_SERVER['HTTP_FORWARDED'])) $ipaddress = $_SERVER['HTTP_FORWARDED']; else if(isset($_SERVER['REMOTE_ADDR'])) $ipaddress = $_SERVER['REMOTE_ADDR']; else $ipaddress = 'UNKNOWN'; return $ipaddress; }
Si en alguna parte del proceso te apareció una excepción puedes consultarlo en nuestro Catálogo de errores.