Vamos a explicar cómo llamar al API de PayPal para realizar pagos en tu página web. En primer lugar deberemos crear una cuenta como desarrollador de PayPal Sandbox (https://developer.paypal.com/) que usaremos para verificar que lo hacemos de manera correcta antes de hacerlo funcionar en la tienda virtual de nuestra página web.
Tras hacerla y meternos en nuestra cuenta de desarrollador, deberemos seleccionar la opción Create a preconfigured buyer or seller account donde rellenaremos con nuestros datos el formulario teniendo en cuenta que debe ser una cuenta de vendedor.
Una vez creada, entraremos a nuestro listado de cuentas de PayPal Sandbox. Estas cuentas no son cuentas reales de PayPal y sólo funcionarán dentro de su Sandbox. Para entrar en ella pulsaremos el botón de Enter Sandbox Test Site y podremos introducir el usuario y contraseña para esta cuenta de prueba. Una vez dentro podemos observar que es como si fuera una cuenta de PayPal pero los pagos que se hagan a ella no serán reales.
Ejemplo de pago con el API de PayPal
Para realizar el pago utilizaremos un documento HTML en el que le pasaremos los parámetros que PayPal necesita (importe, código de venta, etc.) y otros opcionales como los datos del usuario que compra para que le aparezcan rellenados en el formulario de pago. Un ejemplo sería el siguiente:
<html> <head> <title>Ejemplo de pago mediante la API de PayPal</title> </head> <body> <form name='formTpv' method='post' action='https://www.sandbox.paypal.com/cgi-bin/webscr'> <input type='hidden' name='cmd' value='_xclick'> <input type='hidden' name='business' value='mi_cuenta_sandbox@mi_pagina.com'> <input type='hidden' name='item_name' value='Nueva compra en mi web'> <input type='hidden' name='item_number' value='VENTA-X2561'> <input type='hidden' name='amount' value='10.15'> <input type='hidden' name='page_style' value='primary'> <input type='hidden' name='no_shipping' value='1'> <input type='hidden' name='return' value='http://mi_pagina/exito.html'> <input type='hidden' name='rm' value='2'> <input type='hidden' name='cancel_return' value='http://mi_pagina/cancelada.html'> <input type='hidden' name='no_note' value='1'> <input type='hidden' name='currency_code' value='EUR'> <input type='hidden' name='cn' value='PP-BuyNowBF'> <input type='hidden' name='custom' value=''> <input type='hidden' name='first_name' value='NOMBRE'> <input type='hidden' name='last_name' value='APELLIDOS'> <input type='hidden' name='address1' value='DIRECCIÓN'> <input type='hidden' name='city' value='POBLACIÓN'> <input type='hidden' name='zip' value='CÓDIGO POSTAL'> <input type='hidden' name='night_phone_a' value=''> <input type='hidden' name='night_phone_b' value='TELÉFONO'> <input type='hidden' name='night_phone_c' value=''> <input type='hidden' name='lc' value='es'> <input type='hidden' name='country' value='ES'> </form> <script type='text/javascript'> document.formTpv.submit(); </script> </body> </html>
La dirección de llamada del formulario de pruebas es https://www.sandbox.paypal.com/cgi-bin/webscr pero al pasar a ventas reales deberemos indicar https://www.paypal.com/cgi-bin/webscr
Como podemos ver, existente multitud de parámetros en el formulario que son fáciles de ver cuales son su propósito (nombre, dirección, etc.). A continuación detallamos los más importantes o que podemos tener duda de qué son realmente:
- business: indicaremos la cuenta de PayPal asociada al vendedor. Mientras estemos de pruebas indicaremos la cuenta de pruebas del Sandbox, pero para ventas reales deberemos indicar nuestra cuenta de vendedor.
- item_name: título que aparecerá en la pantalla de pago.
- item_number: código de la venta, actuará como identificador único de cada venta.
- amount: importe a pagar, donde si hay decimales no podrán indicarse con una coma ni con más de dos números.
- return: página de vuelta a nuestra web indicando éxito en el pago.
- cancel_return: página de vuelta a nuestra web indicando que no se realizó el pago por que el usuario lo canceló.
- currency_code: código de la moneda usada en el pago. Para el caso del euro es EUR.
- lc: idioma de la pantalla de pago.
- country: código ISO del país del cliente.
Comentarios