Implementaci贸n de una p谩gina de pago por Paypal

Para crear una p谩gina de pago por Paypal en comercios electr贸nicos聽que empleen un gestor de contenidos聽como puedan ser聽Joomla, Drupal o WordPress, 聽la forma m谩s r谩pida de hacerlo聽es emplear聽alguno de los muchos聽m贸dulos o plugins 聽de pago existentes que ofrecen esta funcionalidad. De hecho, en las sesiones pr谩cticas ya hemos comprobado que el plugin de comercio electr贸nico WooCommerce incluye por defecto la pasarela de pago para PayPal. Adem谩s, vimos c贸mo pod铆amos descargar las pasarelas de pago de la plataforma Reds媒s para instalarlas en nuestro comercio electr贸nico.

Sin embargo, si no se utiliza un gestor de contenidos (CMS) para el comercio electr贸nico, ser谩 necesario implementar una p谩gina de pago por Paypal de forma 芦manual禄. Para ello, nos vamos a ayudar de la Interfaz de Programaci贸n de Aplicaciones (API) de Paypal.

Utilizaci贸n del Entorno de Pruebas Sandbox de Paypal

Para acceder al servicio聽de Paypal tendremos que realizar聽solicitudes POST a la URL聽http://www.paypal.com/webscr.聽Pero antes de hacer solicitudes a la URL real y, para poder probar聽nuestra p谩gina de pago mientras estamos en fase de聽desarrollo, sin que nos cueste聽dinero real, utilizaremos聽el entorno de pruebas de Paypal, sustituyendo la URL real, indicada anteriormente,聽por http://www.sandbox.paypal.com/webscr. De este modo, estaremos empleando el entorno de prueba, o Sandbox, de Paypal.

Para poder usar el entorno聽Sandbox, ser谩 necesario que dispongamos聽de 聽dos cuentas de prueba de Paypal. Una de ellas es聽la cuenta business o de vendedor,聽que ser谩 la cuenta que reciba聽del dinero; la otra cuenta ser谩 la personal聽o de comprador, que corresponder谩 a la persona聽que compra el producto o聽 servicio聽y procede a su聽pago.聽Crearemos dichas cuentas accediendo聽a https://developer.paypal.com. Previamente tendremos que estar registrados en PayPal.

Una vez logueados聽accederemos a Dashboard, y dentro de Dashboard, haremos clic en聽Sandbox –> Accounts. Podremos comprobar聽que Paypal ya ha creado una cuenta Businessy una cuenta Personal por defecto, que vienen asociadas a nuestra cuenta de Paypal.

PayPal

Creaci贸n del Formulario de Pago

Lo siguiente que haremos ser谩聽crear un formulario para que el cliente聽pueda realizar聽el pago聽del producto o servicio que queremos venderle. Un ejemplo de implementaci贸n聽ser铆a ser铆a el siguiente formulario HTML, que b谩sicamente聽muestra en el navegador un bot贸n de pago:

<html>
 <body>
 <form action="https://www.sandbox.paypal.com/cgi-bin/webscr" method="post">
 <input type="hidden" name="cmd" value="_xclick">
 <input type="hidden" name="business" value="jpmoreno1979-facilitator@hotmail.com">
 <input type="hidden" name="item_name" value="Compra de Producto X">
 <input type="hidden" name="currency_code" value="EUR">
 <input type="hidden" name="amount" value="50.00">
 <input type="image" src="http://www.paypal.com/es_XC/i/btn/x-click-but01.gif"
 name="submit"
 alt="Make payments with PayPal - it's fast, free and secure!">
 </form>
 </body>
</html>

Al hacer clic聽sobre el bot贸n de pago, el navegador env铆a los datos mediante POST聽a 聽la URL http://www.sandbox.paypal.com/cgi-bin/webscr; de este modo,聽en pantalla aparecer谩聽una p谩gina de PaypPal con los datos de la compra, de manera que el cliente podr谩 validarse como comprador y realizar la transacci贸n:

paypal2

En esta p谩gina introduciremos los datos del comprador de pruebas (la cuenta -buyer de Sandbox), y pulsamos sobre Entrar. PayPal nos mostrar谩 el resumen de la compra y nos pedir谩 que confirmemos el pago:

paypal3

Al hacer clic sobre el bot贸n Pagar ahora, se finaliza la transacci贸n. PaypPal nos mostrar谩 una pantalla de confirmaci贸n, pero no regresa al sitio web en donde se inici贸 la transacci贸n:

paypal4

Ya hemos implementado un formulario de pago para Paypal. Ahora vamos a ver algunas modificaciones.

Si lo que nuestro comercio electr贸nico vende es un producto f铆sico, necesitaremos saber la direcci贸n de entrega para proceder al env铆o. Como hemos visto, PayPal solicita al usuario esta informaci贸n. Sin embargo, si lo que el cliente ha adquirido es un producto virtual (como una suscripci贸n o una descarga de un fichero), la direcci贸n de entrega no tiene sentido. As铆 que podemos evitar que PayPal pregunte por una direcci贸n de entrega si se est谩 adquiriendo de un producto virtual. Para ello, a帽adiremos al formulario un nuevo campo:

<input type="hidden" name="no_shipping" value="1">

Redirigir al sitio que inici贸 la compra

En el ejemplo anterior, la transacci贸n finaliza en una p谩gina de PayPal. Lo ideal ser铆a regresar al sitio que inici贸 la transacci贸n, tal vez a una p谩gina agradecimiento por la compra al cliente. Adem谩s, durante el proceso de pago en el entorno de PayPal, el cliente puede decidir cancelar el pago, o bien el pago puede fallar por falta de saldo o cualquier otro motivo.

Una vez finalizado el proceso de pago se pueden distinguir dos casos: transacci贸n completada con 茅xito聽, o transacci贸n cancelada o incompleta. En nuestro formulario de pago podemos especificar una p谩gina de retorno para cada uno de estos casos, mediante los campos return y cancel_return:

<input type="hidden" name="return" value="http://www.mi_dominio.com/pagado.php">
<input type="hidden" name="cancel_return" value="http://www.mi_dominio.com/cancelado.php">

Al a帽adir estos campos al formulario, la p谩gina que nos mostrar谩 PayPal cuando finaliza la transacci贸n incluye el enlace correspondiente (confirmaci贸n o error), pero el cliente no regresar谩 a nuestro sitio web hasta que no haga click en dicho enlace.

Retorno autom谩tico al sitio que inici贸 la compra

Si queremos que el regreso tras el proceso de pago a nuestro sitio web sea autom谩tico, es necesario establecer esta opci贸n en la configuraci贸n del usuario Business de PayPal.聽Para hacer esto, nos loguearemos en www.sandbox.paypal.com (si fuera en entorno real nos har铆amos loguin en www.paypal.com) con el usuario Business receptor del pago (el usuario -facilitator), y acceder a Perfil –> Preferencias de Pago en el sitio web.

paypal5

A continuaci贸n, en la pantalla Preferencias de Pago en el Sitio web,聽introduciremos la聽URL de la p谩gina de retorno de nuestro sitio web cuando el pago se realiza con 茅xito, y activaremos el retorno autom谩tico:

paypal6

Por 煤ltimo, destacar que, tal y como nos indica PayPal, los requisitos de URL de retorno son los siguientes:

  • Seg煤n las Condiciones de uso, debe proporcionar informaci贸n en la p谩gina que se muestre mediante la URL de retorno que haga saber al comprador que el pago se ha realizado y que la transacci贸n ha finalizado.
  • Debe proporcionar informaci贸n en la p谩gina que se muestre mediante la URL de retorno que explique que los detalles de la transacci贸n del pago se enviar谩n por correo electr贸nico al comprador.
  • Ejemplo: Gracias por su pago. Su transacci贸n ha finalizado y le hemos enviado un recibo de su compra por correo electr贸nico. Puede acceder a su cuenta, www.sandbox.paypal.com/es, para ver los detalles de esta transacci贸n.
Domingo, 24 de mayo de 2015