PayPal SDK JavaScript Cliente: onApprove, aprobar orden - 24 #Django

Vamos a terminar aquí o al menos adelantar lo más posible aquí la implementación y la siguiente función funcionalidad que vamos a implementar sería la de onapprove:

***
<script>
    paypal.Buttons(
        {
           ***
            onApprove: function(data, actions){
                console.log(data);
            }
        }
    ).render('#buttonPayPal');
</script>

Por supuesto ya configurado el monto recibe los mismos parámetros en este caso si usaríamos el de orden ya que no queremos armar nada con una acción aquí ya que se aprobó simplemente con el orden ID se lo tenemos que pasar al servidor de cualquier forma mediante un axios mediante un fetch mediante una redirección pero, le pasamos ese bendito id para poder hacer finalmente cobro:

onApprove: function(data, actions){
   console.log(data);
   window.location.href = '/store/capture-payment/' + data.orderID;
}

Para que se autorice la compra, nosotros lo tenemos que hacer en el servidor y, finalmente, aquí aprobar la compra y, como quien dice, cerrar el ciclo. Ahí darle el producto al cliente o qué sé yo. Pero ya llegamos a este punto. Aquí puedes ver un poquito el sentido de todo esto, ya que, obviamente, esto no se puede hacer en el servidor. Otra vez, esto no se puede hacer en el servidor, ya que es una operación del lado del cliente. Tiene que venir el cliente aquí, colocar sus credenciales, en este caso no es nuestra aplicación sino en PayPal, mediante PayPal, todo esto es PayPal, y poder hacer aquí la solicitud para comprar el producto.

Pero, obviamente, nosotros, por obvias razones, esto no se hace en el servidor. Es decir, esta solicitud. Porque, si se pudiera hacer en el servidor, significa que puedes hacer cualquier cosa sin autorización del cliente, cosa que no sería correcta. Entonces, pero en el servidor sí tiene todo el sentido del mundo que se termine de procesar esto, empleando el Secret ID que, recuerda, configuramos antes, y finalmente terminar la compra.

Pero bueno, para llegar a eso todavía faltan algunas cositas, te lo voy avisando, y vamos a dejarlo hasta acá. Obviamente, en este punto, otra vez, todavía no tienes el ingreso, no tienes el dinero en la cuenta de PayPal hasta que se autorice en el servidor.

Acepto recibir anuncios de interes sobre este Blog.

Vamos a implementar la función para aprobar la orden el el cliente.

- Andrés Cruz

In english

Este material forma parte de mi curso y libro completo; puedes adquirirlos desde el apartado de libros y/o cursos Curso y Libro desarrollo web con Django 5 y Python 3 + integración con Vue 3, Bootstrap y Alpine.js.