Download the PHP package shino47/laravel-yappy-checkout without Composer

On this page you can find all versions of the php package shino47/laravel-yappy-checkout. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package laravel-yappy-checkout

Laravel Yappy Checkout

Tests Latest Stable Version License

Implementación del Botón de Pago Yappy para Laravel.

Este paquete está basado en la Librería en PHP del sitio web de Banco General y nació porque a muchos no nos agrada la idea de versionar librerías.

Instalación

Para instalar, utiliza el siguiente comando:

Si tienes Laravel 5.5 o superior, esto es todo (gracias al auto-discovery). Para versiones anteriores tienes agregar unas líneas a tu archivo config/app.php, dentro de la llave providers y dentro de aliases:

Configuración

Agrega las siguientes variables a tu .env (y a tu .env.example en blanco si eres un buen muchacho):

Variable Tipo Descripción
YAPPY_SECRET_KEY string Clave secreta del comercio.
YAPPY_MERCHANT_ID string ID del comercio.
YAPPY_MERCHANT_URL string URL de comercio. Normalmente es igual a APP_URL, pero en ambientes de desarrollo APP_URL puede tomar valores locales.
YAPPY_SUCCESS_URL string URL a la cual se redireccionará al usuario cuando se ejecute correctamente la transacción.
YAPPY_FAIL_URL string URL a la cual se redireccionará al usuario en caso de que cancele la transacción o haya algún error.
YAPPY_LOGS_ENABLED bool Indica si registra errores en los logs. Por defecto es true.

Si quieres tener más control sobre la configuración, puedes hacer publish del archivo de configuración:

Esto agregará el archivo config/yappy.php y el public/vendor/yappy/js/yappy-checkout.js a tu proyecto.

Si no quieres ambos archivos, puedes usar los tags config y assets:

Uso

El flujo del pago es sencillo y se resume en lo siguiente:

  1. El usuario presiona el botón de Pagar/Donar.
  2. Nuestra aplicación recibe la petición, valida las credenciales del comercio y genera la URL del pago.
  3. Si todo sale bien, el usuario es redireccionado a la URL generada. Ya aquí el usuario está fuera de nuestra aplicación. El flujo continúa del lado de Yappy.
  4. Luego de que se haga, falle o cancele la transacción, el usuario será redirigido a la URL definida en YAPPY_SUCCESS_URL o YAPPY_FAIL_URL. Yappy nos hará una petición a un endpoint de nuestra aplicación.
  5. En esta petición Yappy nos envía el número de orden y el estado de la transacción. Somos libres de jugar con esta información en nuestra aplicación.

Agregar el botón a nuestras vistas

Primero, agregamos lo siguiente en donde queramos nuestro botón.

Lamentablemente, hicieron que el botón por fuerza sea un div (en el CSS). En nuestro caso, no nos vamos a complicar y vamos en envolver ese div en una etiqueda a o button.

Como vemos, el botón acepta atributos de tipo data.

Atributo Descripción
color Define el color del botón. Las opciones son dark y brand (por defecto).
donacion Define el texto del botón. Por defecto es Pagar, pero si está presente dirá Donar.

Lo siguiente será agregar el script que le dará estilo a nuestro botón. Podemos hacerlo de alguna de las siguientes maneras.

Usando un CDN

Usando el generado en el vendor:publish

Si hiciste vendor:publish ya tienes este script en la carpeta public/vendor/yappy/js, por lo que podemos referenciarlo así:

Usando Laravel Mix

El método anterior tiene un inconveniente: si se actualiza, el cliente no lo notará si el navegador no refresca el cache. Para solucionar eso, nos apoyamos en Laravel Mix. Abrimos el archivo webpack.mix.js de nuestra aplicación y agregamos lo siguiente:

Y en nuestras vistas:

Redireccionar al cliente

Una vez el usuario haya presionado el enlace o botón, la petición será recibida en nuestro controlador de la siguiente manera.

El método getPaymentUrl devuelve null si ha habido un error generando la URL; en ese caso verifica las credenciales del comercio. Este método recibe los siguientes parámetros:

Variable Tipo Descripción
orderId string, int ID de la orden. Será usada por Yappy al finalizar la transacción.
subtotal float Subtotal de la compra.
tax float Impuesto de la compra.
total float Total de la compra.
phone string El número de teléfono del usuario (opcional).

Si todo sale bien, el usuario será redirigido a esa URL generada.

Páginas de estado

Una vez que se haya hecho o se cancele la transacción, el usuario será redirigido a nuestro sitio web. Para ello, debemos definir las variables YAPPY_SUCCESS_URL y YAPPY_FAIL_URL. Pueden ser, por ejemplo:

Recuerda definir esas rutas en tu routes/web.php y crearles sus vistas.

Recibir el estado de la transacción

Una vez terminada la transacción, Yappy nos enviará el estado a nuestro servidor a mi-dominio.com/pagosbg.php. Lamentablemente, no podemos cambiar esa ruta, así que toca trabajar con ese .php feíto en la URL.

Creamos nuestra ruta en routes/web.php.

Y en nuestro controlador.

El método getPaymentStatus recibe un array con los parámetros de la petición y devuelve null en caso de error o un array con el ID de la orden (order_id) y el estado de la transacción (status). Los valores de status pueden ser:

Código Descripción
E Ejecutado. El cliente confirmó el pago y se completó la compra.
R Rechazado. El cliente no confirma el pago dentro de los cinco minutos que dura la vida del pedido.
C Cancelado. El cliente inició el proceso, pero canceló el pedido en el app de Banco General.

Nota: Yappy no está enviando peticiones cuando las transacciones quedan rechazadas (R). El tiempo de espera actualmente es cinco minutos, así que pasado este tiempo tendrás que actualizar el estado a rechazado.

Contribuir

Si deseas contribuir, siéntete libre de subir tu pull request usando el estándar PSR-2 que es el que usa Laravel.

Usa inglés para el código y español para documentar. Código en inglés para que combine con tus aplicaciones Laravel y documentación en español, porque hay muchos desarrolladores con inglés malito.

Autor

Desarrollado con orgullo y pasión como todo un man serio por El Shino.


All versions of laravel-yappy-checkout with dependencies

PHP Build Version
Package Version
Requires guzzlehttp/guzzle Version ^7.0
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package shino47/laravel-yappy-checkout contains the following files

Loading the files please wait ....