Integrar PayPal Express Checkout con PHP

Documentos relacionados
Localizar direcciones en Google Maps con PHP

Cómo crear una tabla editable con PHP, MySQL y jquery

Cómo exportar datos a Excel utilizando PHP y MySQL

Generar códigos de barra con PHP

DPWEB I, Carrito de Compras Parte 1, Ing. Tomas Urbina. Carrito de compras con PHP y MYSQL (Parte 1)

Guía de la Biblioteca del Instituto Internacional para descargar y visualizar contenidos de Digitalia

Aplicación para clientes SHOP APP

Guía de integración del módulo Paga+Tarde en DrupalCommerce

Instalar Joomla desde cero en un hosting de Hostalia

Práctica No. 6. Manejo de Eventos con Javascript

Instalación y Configuración del Módulo de Pago Joomla/VirtueMart (SafetyPay API 2.2)

Para comenzar nos dirigiremos a la web:

Departamento de Sistemas de Información y Comunicaciones MANUAL DE USUARIO. Taller Web Alarmas. Grupo Empresarial Electromédico

Tutorial de enlace entre Formulario Web y Servicio Web REST. Programación en Internet

Guía de integración del módulo de Redsys en Magento

Módulo E: Reportes. Objetivo del Módulo:

Pasos para configurar el correo ActiveSync

Cómo poner una marca de agua a las imágenes con PHP

1.- INTRODUCCIÓN. <etiqueta> contenido</etiqueta>

El programa en JavaScript debe ir encerrado entre la marca script e inicializada la propiedad type con la cadena text/javascript:

SWITCH JAVASCRIPT. SELECCIÓN ENTRE ALTERNATIVAS. DIAGRAMA DE FLUJO Y EJEMPLO DE APLICACIÓN. (CU01120E)

MANUAL DE USUARIO Gestión documental

La plantilla propone aprovechar esta estructura en común y sólo modificar el contenido del área del documento que sea diferente.

MANUAL PARA WINDOWS. Es necesario pulsar en Avanzado

MOODLE 1.9 BASE DE DATOS

MANUAL PARA LINUX. Tenemos que pulsar a Entiendo los riesgos y nos aparecerá la siguiente imagen:

PHP orientado a objetos:

MANUAL PARA ANDROID. Al pulsar sobre el nombre, y nos aparecerá la opción de conectar, como se muestra en la siguiente imagen

Plugin Pagadito Payment para Prestashop. plugin_pagadito_payment_v1.0.0

Slarrauri.com Servicios Web Configuración de Paginas Facebook

Guía de integración del módulo Paga+Tarde en Prestashop

Ejercicios - Introducción a Sencha Touch

Lenguajes de Script. Qué son los Lenguajes de Script?

Guía de integración del módulo Paga+Tarde en VirtueMart

Configuración de cuentas NEXICAEXCHANGE en Microsoft Outlook 2016

BALANCE DE MOVIMIENTOS Y BALANCE ACUMULADO (12 PERIODOS)

Manual de usuario de cga-comparte-impresora-v4

Manual Portafirmas ios

A continuación el código del formulario Registro.html y del archivo validar.js de javascript:

Ficha paso a paso. Obtener la vida laboral

Módulo Conversor de Superficies

Puedo exportar de Access a SQLite?

AJAX: EJEMPLO BÁSICO CÓDIGO OBJETO XMLHTTPREQUEST Y RECUPERAR DATOS DESDE ARCHIVO (CU01206F)

Documento de configuración del cliente de VPN para el COFIB.

Parcial Programación 3

REGISTRO ELECTRÓNICO DEL FONDO ESPAÑOL DE GARANTÍA AGRARIA

INSERCIÓN DE UN REGISTRO CON PHP Y MYSQL

Universidad de Málaga GUÍA PARA FIRMAR DOCUMENTOS ELECTRÓNICAMENTE

jquery y Ajax 07/04/2017 Escuela Técnica Superior de Ingeniería Informática Departamento de Lenguajes y Sistemas Informáticos jquery y AJAX

Spring MVC Configuración (I)

Integración Excel + PowerPoint

Usos básicos de Google Search Console

CONSTRUCTORES JAVASCRIPT. CREAR OBJETOS VACÍOS. AÑADIR PROPIEDADES Y MÉTODOS. OBJETOS ÚNICOS O SINGLETON. EJEMPLOS (CU01145E)

Manual Portafirmas ios

Manual de uso: USUARIO

CASO-PRACTICO-3-FTP. 1) Entrega una manual de los pasos que has realizado para instalar el servidor FTP y configurarlo de forma anónima.

MANUAL DE INSTALACIÓN SIGGA LABORAL VERSION EVALUATIVA

ASP.NET. Manual Practico. Mg. José Mauricio Flores Avilès

C o n f i g u r a c i ó n d e r e d e n W i n d o w s 7

Pruebas Técnicas Grabación casos de prueba JMeter. Área de Aseguramiento de la Calidad

Módulo PRESTASHOP GOOGLE TAG MANAGER ADMINISTRATOR DE ETIQUETAS GUÍA DE INSTALACIÓN Y DE CONFIGURACIÓN

Gobierno de Santa Fe. Ministerio de Gobierno y Reforma del Estado. Secretaría de Tecnologías para la Gestión IDESF. Manual de uso para desarrolladores

Guía Rápida de Hosting

Curso de PHP Modulo 7 Creando Una Base de Datos y accediendo a ella R-Luis

Simular un datagrid o gridview con PHP

IF ELSE, IF ELSE IF JAVASCRIPT. CONDICIONALES DEL FLUJO O ESTRUCTURAS DE DECISIÓN. EJEMPLOS. EJERCICIOS. (CU01119E)

TEST TICO 2º BACHILLERATO

JWT Token y Node. Creando un JWT token con Node.js y Express

Método de Pago Redsys TPV Online

COMUNICACIÓN ENTRE EL CLIENTE Y SERVIDOR SIN PHP Y CON PHP. INTÉRPRETE PHP Y GESTOR DE BASES DE DATOS (CU00804B)

TPV VIRTUAL Guía Instalación Magento 2.x

Transcripción:

Integrar PayPal Express Checkout con PHP

Dentro del mundo del comercio electrónico, disponer de varios sistemas de pago nos puede ayudar a conseguir un mayor número de ventas. Por qué centrarnos únicamente en un método si podemos ofrecer varias alternativas a los usuarios? Dentro de todos estos métodos de pago que podemos utilizar, PayPal se ha convertido en uno de los más importantes y que no debería faltar en ninguna tienda online. Se viene utilizando desde hace muchos años, pero no hace mucho que PayPal empezó a ofrecer la posibilidad de utilizar su función PayPal Express Checkout. Se trata de una forma de pago sencilla y seguro que mantiene a los usuarios en el sitio web o aplicación móvil durante el proceso de pago. Como son muchos los beneficios que ofrece este sistema de pago, hoy queremos mostraros el proceso para integrar PayPal Express Checkout en vuestra página web utilizando PHP. Configurar cuenta de prueba Lo primero de todo será crear una cuenta de PayPal Sandbox (modo desarrollo). Para ello deberemos registrarnos en la url https://developer.paypal.com. También será necesario crear una aplicación REST API desde el panel de control de desarrolladores. Cuando creamos una aplicación de este tipo, obtendremos un ID de cliente y su clave secreta para poder integrar PayPal Express Checkout. Lo recomendable es utilizar el modo Sandbox durante el proceso de desarrollo y una vez que estemos seguros de que todo funciona bien, entonces cambiar a modo live. Para conseguir estos datos, una vez que hayamos entrado en la url anterior, deberemos pulsar en la opción del menú donde se indica My Apps & Credentials.

Una vez en dentro de esa sección, pulsaremos en el botón donde se indica Create App. Se nos pedirá un nombre para la aplicación. Pondremos el que queramos.

Pulsaremos en el botón Create App que aparece en la parte inferior. Por pantalla se nos mostrará los datos asociados a la aplicación creada para integrar PayPal Express Checkout. Crear archivo configuración El siguiente paso será crear el archivo config.php donde definiremos la configuración de pruebas y producción para integrar el pago vía PayPal. Para ello, definiremos la constante ProPayPal que podrá tener los valores 0 y 1. Cuando se indica el primero, significará que está en modo desarrollo. Si por el contrario le asignamos el valor 1, entonces estaremos indicando que estamos en modo real. Lo deberemos tener en valor 0 mientras estemos desarrollando la integración y hayamos hecho todas las pruebas. El código de este archivo será el siguiente: <?php define('propaypal', 0); if(propaypal){ define("paypalclientid", "*********************"); define("paypalsecret", "*********************"); define("paypalbaseurl", "https://api.paypal.com/v1/"); define("paypalenv", "production"); } else { define("paypalclientid", "XXXXXXXXXXXXXXXXXXXXX"); define("paypalsecret", "XXXXXXXXXXXXXXXXXXXXXXX");

}?> define("paypalbaseurl", "https://api.sandbox.paypal.com/v1/"); define("paypalenv", "sandbox"); En las variables PayPalClientId y PayPalSecret sustituiremos las X por la información que nos haya proporcionado PayPal al crear la aplicación, tal y como hemos visto en el paso anterior. Mostrar detalles del artículo y botón de pago En nuestro archivo index.php lo que haremos será mostrar los detalles del producto, su precio y el botón de pago con PayPal Express. Esto último lo tendremos dentro del archivo paypalcheckout.php que explicaremos en el punto siguiente. El código del index.php quedaría de la siguiente forma: <?php include('config.php'); $productname = "Producto demostración"; $currency = "EUR"; $productprice = 10; $productid = 587965; $ordernumber = 567;?> <html> <head> <meta http-equiv="content-type" content="text/html; charset=utf-8" /> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstraptheme.min.css"> <script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js"></script> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></scri pt> <title>demo Paypal Express Checkout</title> </head> <body> <div class="container"> <h2>demo Paypal Express Checkout Demo con PHP</h2> <br> <table class="table"> <tr> <td style="width:150px"><img src="demo_product.png" style="width:50px" /></td> <td style="width:150px"><?php echo $productprice;?> </td> <td style="width:150px"> <?php include 'paypalcheckout.php';?> </td> </tr> </table>

</div> </body> Si os fijáis al principio del archivo, hemos declarado varias variables con la información del producto, precio, id del producto y el número del pedido. Con estas variables lo que pretendemos es simular la realización de un pedido. Configuración PayPal Express Checkout En el archivo paypalcheckout.php, será donde configuremos PayPal Express Checkout que se encargará de mostrar el botón para realizar el pago y la respuesta del proceso. En este archivo también se hará la llamada al fichero orderdetails.php que devolverá los detalles del proceso de pago con los valores requeridos para verificarlo. El código será el siguiente: <div id="paypal-button-container"></div> <div id="paypal-button"></div> <script src="https://www.paypalobjects.com/api/checkout.js"></script> <script> paypal.button.render({ env: '<?php echo PayPalENV;?>', client: { <?php if(propaypal) {?> production: '<?php echo PayPalClientId;?>' <?php } else {?> sandbox: '<?php echo PayPalClientId;?>' <?php }?> }, payment: function (data, actions) { return actions.payment.create({ transactions: [{ amount: { total: '<?php echo $productprice;?>', currency: '<?php echo $currency;?>' } }] }); }, onauthorize: function (data, actions) { return actions.payment.execute().then(function () { window.location = "<?php echo PayPalBaseUrl?>orderDetails.php?paymentID="+data.paymentID+"&payerID="+data.payerID+"&token=" +data.paymenttoken+"&pid=<?php echo $productid;?>"; }); } }, '#paypal-button'); </script>

Verificar los detalles del proceso de pago El archivo orderdetails.php será el encargado de recoger los detalles devueltos por el proceso de pago para conocer si se ha completado de forma correcta o no. Los datos que recibiremos serán el token de la operación, el id del pago, el id del pagador y el id del producto. El código de este archivo es el siguiente: if(!empty($_get['paymentid']) &&!empty($_get['payerid']) &&!empty($_get['token']) &&!empty($_get['pid']) ){ $paymentid = $_GET['paymentID']; $payerid = $_GET['payerID']; $token = $_GET['token']; $pid = $_GET['pid'];?> <div class="alert alert-success"> <strong>success!</strong> Your order processed successfully. </div> <table> <tr> <td>payment Id: <?php echo $paymentid;?></td> <td>payer Id: <?php echo $payerid;?></td> <td>product Id: <?php echo $pid;?></td> <td><?php echo ;?></td> </tr> </table> <?php } else { header('location:index.php'); }

Aquí lo que hacemos es comprobar que las variables paymentid, payerid, token y pid no estén vacías. Si tienen valor, significará que el pago se ha realizado correctamente. Si por el contrario las variables son devueltas vacías, se ha producido un error y el pago no se ha llevado a cabo. A lo largo de nuestro WhitePaper, hemos visto como configurar el método de pago PayPal Express Checkout en nuestra página web utilizando lenguaje de programación PHP.