PHP

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 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;
}
¡Listo! Ya tienes tu primer cargo creado con tarjeta.

Si en alguna parte del proceso te apareció una excepción puedes consultarlo en nuestro Catálogo de errores.

Descargar SDK
Descargar SDK
Más Información
Más Información

 

 

¿Te resultó útil este artículo? Si 36 No 5