Breaking

Post Top Ad

Your Ad Spot

domingo, 10 de marzo de 2019

Comprobación de la integración de la pasarela de pago en PHP


2Checkout Payment Gateway proporciona una manera fácil de integrar el sistema de pago en la aplicación web. La API de pago 2Checkout le permite aceptar pagos con tarjetas de crédito en la aplicación web. Si desea aceptar pagos con tarjeta de crédito desde el sitio web, 2Checkout API es la solución más sencilla.
Con la pasarela de pago 2Checkout, puede permitir que el usuario realice el pago a través de su tarjeta de crédito o débito. 2La biblioteca PHP de Checkout ayuda a conectar la API de pago, crea un cargo en la tarjeta de crédito y procesa el pago. En este tutorial, le mostraremos cómo integrar la pasarela de pago 2Checkout en PHP para cobrar el pago en línea con tarjeta de crédito o débito.
En el proceso de integración de la pasarela de pago de 2Checkout , se implementará la siguiente funcionalidad.
  • Cree un formulario HTML para recopilar información de tarjeta de crédito e información del usuario.
  • Cree el token 2Checkout para transmitir con seguridad los detalles de la tarjeta.
  • Presentar el formulario de la tarjeta de crédito.
  • Verifique la información de la tarjeta y los cargos de proceso utilizando 2Checkout Payment API.
  • Inserte los detalles de la transacción en la base de datos y visualice el estado de pago.

Cuenta de caja de arena 2

El sandbox de 2Checkout proporciona un entorno de prueba para verificar el proceso de integración de 2Checkout. Antes de poner en funcionamiento su pasarela de pago 2Checkout, debe probar la integración en el entorno de sandbox. Siga los pasos a continuación para generar Claves API en la cuenta de Sandbox para probar el proceso de pago con tarjeta de crédito con 2Checkout API.
  • Inicie sesión en su cuenta de 2Checkout Sandbox o regístrese si no tiene una cuenta.
  • Vaya a la página de la API y genere las claves de la API » Cambie a la pestaña Configuración . En la sección Generador de claves , verá la Clave Publicable y la Clave Privada.
    2checkout-create-sandbox-account-publishable-private-key-codexworld
  • Recoja la clave publicable y la clave privada para usar más adelante en el script.
Antes de comenzar a implementar la pasarela de pago 2Checkout en PHP, eche un vistazo a la estructura de los archivos.
2checkout_integration_php /
├── index.html
├── paymentSubmit.php
├── dbConfig.php
Ch 2checkout-php /

Crear tabla de base de datos

Para almacenar los detalles de la transacción, se necesita crear una tabla en la base de datos. El siguiente SQL crea una orderstabla con algunos campos básicos en la base de datos MySQL.
CREATE  TABLE  `ordenes` (
  ` id`  int ( 11 ) NOT  NULL AUTO_INCREMENT,
  `name`  varchar ( 25 ) COLLATE utf8_unicode_ci NOT  NULL ,
  ` email`  varchar ( 25 ) COLLATE utf8_unicode_ci NOT  NULL ,
  `card_num`  bigint ( 20 ) NOT  NULL ,
  `card_exp_month`  int ( 2 ) NOT  NULL ,
 `card_exp_year`  año ( 4 ) NOT  NULL ,
  ` card_cvv`  int ( 3 ) NOT  NULL ,
  `item_name`  varchar ( 255 ) COLLATE utf8_unicode_ci NOT  NULL ,
  ` item_number`  varchar ( 25 ) COLLATE utf8_unicode_ci NOT  NULL ,
  `item_price`  float ( 10) , 2 ) NOT  NULL ,
  `currency`  varchar( 10 ) COLLATE utf8_unicode_ci NO  NULL ,
  `paid_amount`  varchar ( 10 ) COLLATE utf8_unicode_ci NO  NULL ,
  ` order_number`  varchar ( 20 ) COLLATE utf8_unicode_ci NO  NULL ,
  `txn_id`  varchar ( 50 ) COLLATE utf8_unicode_ci NO  NULL ,
  ` payment_status`  varchar ( 10 ) COLLATE utf8_unicode_ciNOT  NULL ,
  `created` datetime NOT  NULL ,
  ` modified` datetime NOT  NULL ,LLAVE 
 PRIMARIA ( `id` )
) MOTOR = InnoDB  DEFAULT  CHARSET = utf8 COLLATE = utf8_unicode_ci;

Configuración de la base de datos (dbConfig.php)

El dbConfig.phparchivo se utiliza para conectarse a la base de datos. Especifique el host de la base de datos ( $dbHost), el nombre de usuario ( $dbUsername), la contraseña ( $dbPassword) y el nombre ( $dbName) según sus credenciales de servidor MySQL.
<? php
 // Configuración de la base de datos
 $ dbHost      "localhost" ;
$ dbUsername  "root" ;
$ dbPassword  "root" ;
$ dbName      "codexworld" ;

// Crear conexión de base de datos
 $ db  = new  mysqli ( $ dbHost $ dbUsername $ dbPassword $ dbName );

// Revisa la conexión
 si ( $ db -> connect_error ) {
    die ( "Falló la conexión:"  $ db -> connect_error );
}

Formulario de pago 2Checkout (index.html)

Incluya la biblioteca jQuery y la biblioteca de JavaScript 2Checkout para realizar la solicitud de token.
<! - biblioteca jQuery -> 
< script  src = "https://ajax.googleapis.com/ajax/libs/jquery/3.2.1/jquery.min.js" ></ script >

<! - 2Checkout JavaScript library -> 
< script  src = "https://www.2checkout.com/checkout/api/2co.min.js" ></ script >
El siguiente código JavaScript maneja la llamada de solicitud de token y adjunta la entrada del token a la tarjeta de crédito antes de enviarla. Especifique el sandbox-seller-id(Número de cuenta) y sandbox-publishable-key(Clave publicable) según sus credenciales de API.
< script > 
// Llamado cuando el token se creó correctamente. 
var successCallback = function ( data ) {
   var myForm = document .getElementById ( 'paymentFrm' );
  
  // Establecer el token como el valor para la entrada del token
  myForm.token.value = data.response.token.token;
  
  // Presentar el formulario
  myForm.submit ();
};

// Llamado cuando falla la creación del token. 
var errorCallback = function ( data ) {
   if (data.errorCode === 200 ) {
    tokenRequest ();
  } else {
    alerta (data.errorMsg);
  }
};

var tokenRequest = function () {
   // Instalar argumentos de solicitud de token 
  var args = {
    ID de vendedor : "sandbox-seller-id" ,
    publishableKey: "sandbox-publishable-key" ,
    ccNo: $ ( "#card_num" ) .val (),
    cvv: $ ( "#cvv" ) .val (),
    expMonth: $ ( "#exp_month" ) .val (),
    expYear: $ ( "#exp_year" ) .val ()
  };
  
  // Hacer la solicitud de token
  TCO.requestToken (successCallback, errorCallback, args);
};

$ ( función () {
   // 
  Introduzca la clave de cifrado pública para nuestro entorno TCO.loadPubKey ( 'sandbox' );
  
  $ ( "#paymentFrm" ) .submit ( function ( e ) {
     // Llame a nuestra función de solicitud de token
    tokenRequest ();
   
    // Impedir que el formulario envíe una 
    devolución  falsa ;
  });
});
</ script >
Cree un formulario de tarjeta de crédito básico que le permita al comprador proporcionar su número de tarjeta, el mes y el año de vencimiento y el CVC. Este formulario se enviará al script del lado del servidor ( paymentSubmit.php) para procesar el pago con 2Checkout API.
< div  class = "payment-frm" > 
    < h5 > Cargue $ 25 USD con 2Checkout </ h5 >
    
    <! - formulario de tarjeta de crédito -> 
    < form  id = "paymentFrm"  method = "post"  action = "paymentSubmit.php" > 
        < div > 
            < label > NAME </ label > 
            < input  type = "text"  name = "name"  id = "name"  placeholder = "Enter name"  requiere  autofocus > 
        </ div > 
        < div >
            < etiqueta >EMAIL </ label > 
            < input  type = "email"  name = "email"  id = "email"  placeholder = "Ingrese email"  requerido > 
        </ div > 
        < div > 
            < label > CARD NUMBER </ label > 
            < input  type = "text"  name = "card_num"  id = "card_num"  placeholder = "Ingrese el número de tarjeta "  autocompletar ="off"  requerido > 
        </ div > 
        < div > 
            < etiqueta > < span > FECHA DE CADUCIDAD </ span > </ label > 
            < input  type = "number"  name = "exp_month"  id = "exp_month"  placeholder = "MM"  requerido > 
            < input  type = "number"  name = "exp_year" id = "exp_year"  placeholder ="YY"  requerido > 
        </ div > 
        < div > 
            < label > CVV </ label > 
            < input  type = "number"  name = "cvv"  id = "cvv"  autocomplete = "off"  required > 
        </ div >
        
        <! - entrada de token oculto -> 
        < input  id = "token"  name = "token"  type = "hidden"  value = "" >
        
        <! - botón de envío -> 
        < input  type = "submit"  class = "btn btn-success"  value = "Submit Payment" > 
    </ form > 
</ div >

2Checkout biblioteca PHP

La biblioteca de PHP 2Checkout se utiliza para procesar la transacción de la tarjeta utilizando la API de pago. Todos los archivos de la biblioteca están incluidos en nuestro código fuente, no es necesario descargarlos por separado.

Validar y procesar el pago (paymentSubmit.php)

Una vez que la información de la tarjeta de crédito se ha enviado al script del lado del servidor (paymentSubmit.php), la autorización del cargo se procesa utilizando la biblioteca PHP de 2Checkout .
  • Obtenga el token, los detalles de la tarjeta y la información del usuario del formulario enviado utilizando el método POST en PHP .
  • Incluye la biblioteca de PHP 2Checkout.
  • Establezca sus credenciales API (clave privada y SellerId).
  • Cree una matriz con parámetros de venta y pásela en el método auth () de la clase Twocheckout_Charge para su autorización.
  • Crea una carga y recupera los detalles de la carga.
  • Si el cargo es exitoso, inserte los detalles del pedido y la transacción en la base de datos utilizando PHP y MySQL.
  • Mostrar el estado de pago al comprador.
<? php
 // Compruebe si el token no está vacío
 si (! empty ( $ _POST [ 'token' ])) {
    
    // Información
     de token $ token   $ _POST [ 'token' ];
    
    // Información de la tarjeta
     $ card_num  $ _POST [ 'card_num' ];
    $ card_cvv  $ _POST [ 'cvv' ];
    $ card_exp_month  $ _POST [ 'exp_month' ];
    $ card_exp_year  $ _POST [ 'exp_year' ];
    
    // Información del comprador
     $ nombre  $ _POST [ 'nombre' ];
    $ email  $ _POST [ 'email' ];
    $ phoneNumber  '555-555-5555' ;
    $ addrLine1  '123 Test St' ;
    $ city  'Columbus' ;
    $ estado  'OH' ;
    $ zipCode  '43123' ;
    $ country  'USA' ;
    
    // Información del artículo
     $ itemName  'Premium Script CodexWorld' ;
    $ itemNumber  'PS123456' ;
    $ itemPrice  '25 .00 ' ;
    $ currency  'USD' ;
    $ orderID  'SKA92712382139' ;
    
    
    // Incluir la biblioteca PHP 2Checkout
     require_once ( "2checkout-php / Twocheckout.php" );
    
    // Establecer clave de API
     Twocheckout :: privateKey ( 'sandbox-private-key' );
    Twocheckout :: sellerId ( 'sandbox-seller-id' );
    Twocheckout :: sandbox ( true );
    
    tratar {
        // Cargar una tarjeta de crédito
         $ charge  Twocheckout_Charge :: auth (array (
             "merchantOrderId"  =>  $ orderID ,
             "token"       =>  $ token ,
             "currency"    =>  $ currency ,
             "total"       =>  $ itemPrice ,
             "billingAddr "  => array (
                 " name "  =>  $ name ,
                 " addrLine1 "  =>  $ addrLine1 ,
                 " ciudad " =>  $ ciudad,
                 "state"  =>  $ state ,
                 "zipCode"  =>  $ zipCode ,
                 "country"  =>  $ country ,
                 "email"  =>  $ email ,
                 "phoneNumber"  =>  $ phoneNumber
             )
        ));
        
        // Compruebe si el cargo es exitoso
         si ( $ cargo [ 'respuesta' ] [ 'código de respuesta' ] ==  'APROBADO' ) {
            
            // Detalles del pedido
             $ orderNumber  $ charge [ 'response' ] [ 'orderNumber' ];
            $ total  $ cargo [ 'respuesta' ] [ 'total' ];
            $ transactionId  $ charge [ 'response' ] [ 'transactionId' ];
            $ currency  $ cargo [ 'respuesta' ] [ 'currencyCode' ];
            $ status  $ charge [ 'response' ] [ '
            
            // Incluir el archivo de configuración de la base de datos
             include_once  'dbConfig.php' ;
            
            "','" . $ itemNumber ."','" . $ itemPrice . "','" . $ moneda . "','" . $ total . "','" . $ ordenNúmero . "','" . $ transactionId . "','" . $ estado . "', NOW (), NOW ())" ;
            $ insert  $ db -> consulta ( $ sql );
            $ insert_id  $ db -> insert_id ;
            
            $ statusMsg  '<h2> ¡Gracias por su pedido! </h2>' ;
            $ statusMsg  . =  '<h4> La transacción se realizó correctamente. Los detalles de la orden se dan a continuación: </h4> ' ;
            $ statusMsg  . =  "<p> ID de pedido:  { $ insert_id } </p>" ;
            $ statusMsg  . =  "<p> Número de pedido:  { $ orderNumber } </p>" ;
            $ statusMsg  . =  "<p> ID de transacción:  { $ transactionId } </p>" ;
            $ total } { $ moneda } </p> " ; 
        }
    } catch ( Twocheckout_Error $ e ) {
         $ statusMsg  '<h2> ¡Transacción fallida! </h2>' ;
        $ statusMsg  . =  '<p>' . $ e -> getMessage (). '</p>' ;
    }
    
}más{
    $ statusMsg  "<p> Error de envío del formulario ... </p>" ;
}
?>

<! DOCTYPE html> 
< html  lang = "en-US" > 
< head > 
< title > 2 Check Status de pago </ title > 
< meta  charset = "utf-8" > 
</ head > 
< body > 
< div  class = " contenedor " > 
  <! - Muestra el estado del pago -> 
  <? php  echo  $ statusMsg ?>
  
  < P > < a  href = "index.html" > Volver a Pago </ a > </ p > 
</ div > 
</ cuerpo > 
</ html >

Detalles de la tarjeta de prueba

Para probar la integración de la API de pago de 2Checkout, use cualquiera de los siguientes datos de la tarjeta de crédito de prueba.
Número de tarjeta de crédito: 4000000000000002
Fecha de expiración: 10/2020
cvv: 123
Utilice la siguiente información de la tarjeta para probar una autorización fallida.
Número de tarjeta de crédito: 4333433343334333
Fecha de expiración: 10/2020
cvv: 123

Hacer 2Checkout Payment Gateway Live

Una vez que se completa la prueba con la cuenta de Sandbox, active la pasarela de pago de 2Checkout para el uso de producción.
  • Inicie sesión en su cuenta de 2Checkout y vaya a la página de la API.
  • Genere claves API y cambie a la pestaña Configuración . Desde la sección Generador de claves, recopile la clave publicable y la clave privada .
En el index.htmlarchivo,
  • Cambie el sellerId(Número de cuenta) y publishableKey(Clave publicable) según las credenciales de la API de su cuenta de 2Checkout en vivo.
    var tokenRequest = function () {
         // Instalar argumentos de solicitud de token 
        var args = {
            Id. del vendedor: "id-vendedor-vivo" ,
            publishableKey: "live-publishable-key" ,
            ccNo: $ ( "#card_num" ) .val (),
            cvv: $ ( "#cvv" ) .val (),
            expMonth: $ ( "#exp_month" ) .val (),
            expYear: $ ( "#exp_year" ) .val ()
        };
    
        // Hacer la solicitud de token
        TCO.requestToken (successCallback, errorCallback, args);
    };
  • Establecer productionclave en el método loadPubKey ().
    TCO.loadPubKey ( 'producción' );
En el paymentSubmit.phparchivo,
  • Cambie el sellerId(Número de cuenta) y privateKey(Clave privada) según las credenciales de la API de su cuenta de 2Checkout en vivo.
    Twocheckout :: privateKey ( 'live-private-key' );
    Twocheckout :: sellerId ( 'live-seller-id' );
  • Establecer falseen caja de arena ().
    Twocheckout :: caja de arena ( falso );

No hay comentarios.:

Publicar un comentario

Dejanos tu comentario para seguir mejorando!

Post Top Ad

Your Ad Spot

Páginas