Iniciación de pagos
Una vez creado un pago debemos empezar el proceso de pagar. Para esto existen dos maneras. La manera recomendada es utilizar nuestra biblioteca javascript que se encargará de comenzar el pago. Puedes encontrar amplia documentación en el sitio de github. Allí puedes encontrar un ejemplo de integración de la biblioteca que simula un comercio que utiliza esta biblioteca.
La otra opción para iniciar el pago es simplemente redirigir al cliente a la url de pago en Khipu. Esta url corresponde al parámetro payment_url
que devuelve la llamada de crear pago.
El cliente es redireccionado al comercio
Luego de que el cliente realiza el pago en el portal de Khipu será redireccionado de vuelta al sitio web del comercio. La url del comercio a la que es redirigido el usuario debe ser configurada por cada pago en el campo return_url
, aunque podría ser la misma para todos los pagos.
Es muy importante notar que cuando el usuario llega de vuelta a la página del comercio esto no significa que el pago esté verificado. En esta página el comercio debe decir que el pago está en proceso de verificación y que se debe esperar un momento.
El comercio debe implementar en la página de retorno del pago, una forma de consultar el estado del mismo e informar al usuario cuando el pago haya sido confirmado.
Para esto, existen 3 estrategias, siendo las más comunes:
WebSockets: El servidor del comercio informa al browser del cliente que el pago está confirmado para que lo despliegue. Es la forma más eficiente, pero la más compleja de implementar. Para más información https://es.wikipedia.org/wiki/WebSocket
Llamadas AJAX: La página verifica mediante una llamada AJAX al servidor del comercio acerca del estado de la orden. Cuando la respuesta es positiva la página le avisa al usuario que el pago ha sido completado.
Recargar la página periódicamente: Es el mecanismo más sencillo y consiste en utilizar un timer para recargar la página de manera periódica, por ejemplo, cada 10 segundos. Cada vez que la página carga se verifica si la orden está completa. Si lo está, se redirige al usuario a la página de éxito. Si no, debe indicar al usuario que es necesario seguir esperando y usar un nuevo timer.
Recibir la notificación y entregar el servicio
GET /payments/{payment_id}
En cualquier momento posterior a la generación del cobro, se podrá revisar el estado consultando el endpoint GET /payments/{payment_id}.
Si has configurado una URL para recibir una notificación entonces Khipu la invocará inmediatamente después de conciliar el pago. Esta notificación debes recibirla y procesarla en el webhook que configuraste para estos efectos.
La versión de esta API define la manera en que Khipu notifica al comercio, y debes considerar que si usas la API 3.0 de pagos, debes usar la misma versión en la API de notificaciones. En esta versión de la API recibirás un JSON con un objeto representando el estado actual del pago, mediante una llamada POST
.
Importante
Khipu espera 30 segundos para recibir confirmación de la entrega exitosa de la notificación (en otras palabras, el webhook debe entregar un código HTTP 200). Si después de 30 segundos no se obtiene respuesta, Khipu intentará notificar nuevamente más tarde.