Obtener información de usuarios con la api de paypal
Obtener información de usuarios con la api de paypal

En este tutorial sobre la api de paypal con php vamos a ver un tema importante, y es cómo podemos generar urls de pago y procesarlas, en concreto vamos a ver cómo podemos realizar pagos con una cuenta de paypal y php, es decir, con un email, el proceso es bastante sencillo y es el siguiente.

  • El cliente añade los productos que le interesa al carrito.
  • Nosotros cogemos esos productos y creamos el carrito para paypal.
  • Con el carrito preparado generamos una url con un token.
  • El cliente es dirigido a esa url para poder pagar su pedido.
  • Una vez introduce sus credenciales en paypal y realiza el pago es redirigido a una url de nuestra aplicación.
  • Si la respuesta es true, todo ha ido bien y podemos ejecutar el pago para cambiar el estado a approved, por lo tanto todo ha salido bien y tenemos el id del pagador, el id del pago y el token generado con la compra.

Cómo puedes ver el proceso es completo y requiere de varios pasos, así que vamos a empezar para poder completar el ejemplo.

Si tienes cualquier duda con el código anterior te recomiendo el curso de php avanzado con php 7 donde vemos estos y muchos otros temas para aprender a programar con php orientado a objetos utilizando las últimas novedades.

Para poder entender el código que vamos a ir generando es interesante que antes repases las siguientes entradas.

Lo primero que tenemos que hacer es definir un método al cual vamos a llamar savePaymentWithPaypal, este método debe preparar el pedido para paypal, informar de las urls vaya bien o vaya mal el proceso y retornar una url para que el cliente pueda pagar el pedido.


Las partes más importantes son setReturnUrl, donde definimos las rutas a las que paypal debe retornar al usuario dependiendo del proceso de pago, si va bien el parámetro será true, en otro caso será false, también es muy importante ver cómo retornamos la url para aprobar el pago con return $payment->getApprovalLink(), eso nos devuelve una url única para procesar este pedido, ahora vamos a ver cómo llamar a este método desde el controlador.


Puedes ver que simplemente llamamos al método savePaymentWithPaypal y hacemos un echo de la respuesta, que es una url para que el cliente procese el pago.

Una vez el cliente haya pulsado en la url y haya procesado el pago, vaya bien o mal será redirigido al método paypal_payment_response del controlador Home con un parámetro, vamos a crearlo.


Lo único que hacemos es comprobar si todo ha ido bien.


En ese caso, obtenemos los datos que nos devuelve paypal y llamamos a un método de la clase ConsumerPaypal que aún no hemos definido llamado execute_payment al cual le pasamos el id del pago y el id del cliente que ha pagado, este método se encargará de ejecutar el pago que el cliente ha aprobado, este paso es necesario para pasar el estado del pago de created a approved, para ello vamos a definir dicho método.

Sencillo, primero buscamos el pago a través de su id, una vez lo tenemos creamos una instancia de la clase PaymentExecution y asignamos el id del pagador, finalmente ejecutamos el pago y lo devolvemos.

Si ahora tratas de realizar el proceso de forma completa no deberías tener ningún problema, recuerda que debes utilizar una cuenta de comprador y sobre todo asegúrate que estás trabajando en el entorno de sandbox, no vayamos a liarla…

Si todo ha ido bien podrás ver una impresión del pago con todos los datos que puedas necesitar, id del pago, id del pagador, estado, fechas etcétera.