Integración con PayPal - Checkout con Smart Payment Buttons

Author
Por Darío Rivera
Publicado el en PHP

Una de las formas más sencillas de recibir pagos a través de tu página web es realizar una integración de pagos con PayPal. La integración que vamos a ver en este post corresponde al Checkout con Smart Payment Buttons.

Antes de continuar con la lectura de este post te invito a revisar nuestros artículos

- Creación de una cuenta en PayPal y Tipos de Cuentas
- Tipos de Integración con Paypal

Paso 1 - Crea tu cuenta Sandbox

Lo primero que debes hacer es iniciar sesión con tu cuenta PayPal e ingresar a Sandbox Test Accounts. Allí encontrarás dos cuentas que PayPal creará de forma automática con la siguiente estructura.

sb-howkt1878317@business.example.com
sb-48ffa4865961@personal.example.com

Al dar clic en la opción View/Edit Account podrás ver el password generado para cada cuenta. Estas cuentas las utilizarás en el paso 6. Ten en mente que la cuenta @business será la cuenta del vendedor y la cuenta @personal será la cuenta del comprador.

Paso 2 - Obtén tus credenciales API

Lo siguiente que debes hacer es ingreasar a Applications y seleccionar Sanbox. Allí debes encontrar una aplicación llamada Default Aplication de tipo REST. Si no encuentras ninguna aplicación debes crearla. Al dar clic en el nombre de tu aplicación es importante que anotes el Client ID.

Paso 3 - Agrega el SDK

Debes agregar el siguiente código HTML dentro de la etiqueta head de tu página y reemplazar CLIENT_ID por el del paso anterior.

<script src="https://www.paypal.com/sdk/js?client-id=CLIENT_ID"></script>

Paso 4 - Agrega el botón de pagos

Seguido a esto debes agregar en una zona dentro de la etiqueta body el siguiente código que renderizará el botón de pagos inteligente.

<div id="paypal-button-container"></div>
<script>paypal.Buttons().render('#paypal-button-container');</script>

En este punto puedes ver en el navegador cómo se renderiza tu botón de pagos.

Paso 5 - Configura el pago y la respuesta

El última paso será configurar algunos datos como por ejemplo el monto de la transacción y la acción que se ejecutará una vez el pago esté realizado. Elimina el contenido del script del paso anterior y agrega en su lugar el siguiente.

paypal.Buttons({
    createOrder: function(data, actions) {
        return actions.order.create({
            purchase_units: [{
                amount: {
                    currency_code: 'USD',
                    value: '5.00'
                }
            }]
        });
    },
    onApprove: function(data, actions) {
        return actions.order.capture().then(function(details) {
            alert('Thanks ' + details.payer.name.given_name);
        });
    }
}).render('#paypal-button-container');

En el anterior código la función createOrder realizará la configuración del pago. En este caso el pago será de 5 USD. Puedes encontrar una lista completa de los parámetros de este método en el siguiente enlace: CreateOrder V2.  

Por otro lado, la función onApprove configura el comportamiento una vez el usuario termina la realización del pago. En este caso, simplemente se mostrará una ventana (alert) con el texto Thanks USER. El texto USER será reemplazado con el nombre del pagador.

Paso 6 - Testea tu integración

Con la cuenta del comprador obtenida en el paso 1 realiza un pago de prueba. Seguidamente ingresa al Sandbox de PayPal con la cuenta del vendedor y verifica que el depósito se realizó. También puedes ingresar con la cuenta del comprador y verificar que se envió el dinero.

Paso 7 - Producción

El último paso es salir a producción. Para esto deberás ingresar a Paypal con tu cuenta Business. Si no tienes una cuenta Business debes crearla. Después de esto debes crear una App Live la cual te dará acceso a tu CLIENT_ID el cuál deberás reemplazar según el paso 3.


Acerca de Darío Rivera

Author

Application Architect at Elentra Corp . Quality developer and passionate learner with 10+ years of experience in web technologies. Creator of EasyHttp , an standard way to consume HTTP Clients.

LinkedIn Twitter Instagram

Sólo aquellos que han alcanzado el éxito saben que siempre estuvo a un paso del momento en que pensaron renunciar.