Integración con PayPal - Checkout con Smart Payment Buttons

2020-05-22 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.

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 por la opción 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.

Si te ha gustado este artículo puedes invitarme a tomar una taza de café

Acerca de Darío Rivera

Author

Ingeniero de desarrollo en PlacetoPay , Medellín. Darío ha trabajado por más de 6 años en lenguajes de programación web especialmente en PHP. Creador del microframework DronePHP basado en Zend y Laravel.

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