Biblioteca Laravel para integrar Amplify Pay
Se requiere PHP 5.4+ y compositor.
Para obtener la última versión de Laravel Amplify, requiere como abajo
" composer require dubems/laravel-amplify"
Luego deberá ejecutar composer install o composer update para descargarlo y actualizar el AutoAder.
Una vez que Laravel Amplify está instalado, debe registrar el proveedor de servicios. Abra config/app.php y agregue lo siguiente a la tecla providers .
DubemsAmplifyAmplifyServiceProvider::class,Además, registre la fachada así:
' aliases ' => [
...
' Amplify ' => Dubems Amplify Facades Amplify::class,
...
]Puede publicar el archivo de configuración utilizando este comando:
php artisan vendor:publish --provider= " DubemsAmplifyAmplifyServiceProvider " Un archivo de configuración llamado amplify.php con algunos valores predeterminados se colocará en su directorio config :
<?php
return [
/**
* Merchant ID gotten from your Amplify dashboard
*/
' merchantId ' => getenv ( ' AMPLIFY_MERCHANT_ID ' ),
/**
* API Key from amplify dashboard
*/
' apiKey ' => getenv ( ' AMPLIFY_API_KEY ' ),
/**
* Amplify payment Url
*/
' paymentUrl ' => getenv ( ' AMPLIFY_PAYMENT_URL ' ),
/**
* Redirect Url after successful transaction
*/
' redirectUrl ' => getenv ( ' AMPLIFY_REDIRECT_URL ' )
];## Flujo de pago general
Aunque hay varias formas de pagar un pedido, la mayoría de las pasarelas de pago esperan que siga el siguiente flujo en su proceso de pago:
### 1. El cliente es redirigido al proveedor de pagos después de que el cliente haya pasado por el proceso de pago y está listo para pagar, el cliente debe ser redirigido al sitio del proveedor de pagos.
La redirección se logra presentando un formulario con algunos campos ocultos. El formulario debe publicar en el sitio del proveedor de pagos. Los campos ocultos especifican mínimamente el monto que se debe pagar y algunos otros campos
### 2. El cliente paga en el sitio del proveedor de pagos que el cliente llega al sitio del proveedor de pagos y puede elegir un método de pago. El proveedor de pagos atiende todos los pasos necesarios para pagar la orden.
### 3. El cliente es redirigido después de haber pagado el pedido, el cliente es redirigido. En la solicitud de redirección al sitio de la tienda se devuelven algunos valores.
Abra su archivo .env y agregue su clave pública, clave secreta, correo electrónico comercial y URL de pago como así:
AMPLIFY_MERCHANT_ID = XXXXXXX
AMPLIFY_API_KEY = XXXXXX
AMPLIFY_PAYMENT_URL =https: //api.amplifypay.com
AMPLIFY_REDIRECT_URL =https: //xxxxxConfigurar rutas y métodos de controlador como así:
Route:: post ( ' /pay ' , ' PaymentController@redirectToGateway ' )-> name ( ' pay ' ); // Laravel 5.1.17 and above
Route:: get ( ' /payment/callback ' , ' PaymentController@handleGatewayCallback ' ); <?php
namespace App Http Controllers ;
use Illuminate Http Request ;
use App Http Requests ;
use App Http Controllers Controller ;
use Amplify ;
class PaymentController extends Controller
{
/**
* Redirect the User to Amplify Payment Page
* @return Url
*/
public function redirectToGateway ()
{
return Amplify:: getAuthorizationUrl ()-> redirect ();
}
/**
* Get Amplify payment information
* @return void
*/
public function handleGatewayCallback ()
{
$ response = Amplify:: handlePaymentCallback ();
dd ( $ response );
// Now you have the payment details,
// you can store the authorization_code in your db to allow for recurrent subscriptions
// you can then redirect or do whatever you want
}
}A continuación se pueden encontrar otros métodos y uso de ejemplo.
/** Create Subscription */
public function createSubscription ()
{
$ data = [ ' planName ' => ' Sliver members ' , ' frequency ' => ' Weekly ' ];
$ response = Amplify:: createSubscription ( $ data );
dd ( $ response );
}
/** Delete a particular subscription */ */
public function deleteSubscription ()
{
$ id = ' xyz ' ;
$ response = Amplify:: deleteSubscription ( $ id );
dd ( $ response );
}
/** Update a particular subscription */
public function updateSubscription ()
{
$ data = [ ' planName ' => ' Gold members ' , ' frequency ' => ' Weekly ' ];
$ planId = ' xyz ' ;
$ response = Amplify:: updateSubscription ( $ planId , $ data );
dd ( $ response );
}
/** Get a particular subscription */
public function fetchSubscription ()
{
$ id = ' id ' ;
$ response = Amplify:: fetchSubscription ( $ id );
dd ( $ response );
}
/** Fetch all subscription */
public function fetchAllSubscription ()
{
$ allSub = Amplify:: fetchAllSubscription ();
dd ( $ allSub );
}
Se verá un formulario de muestra así:
< form method =" POST " action =" {{ route('pay') }} " accept-charset =" UTF-8 " class =" form-horizontal " role =" form " >
< div class =" row " style =" margin-bottom:40px; " >
< div class =" col-md-8 col-md-offset-2 " >
< p >
< div >
A cup of coffee
₦ 800
</ div >
</ p >
< input type =" hidden " name =" email " value =" [email protected] " > {{-- required --}}
< input type =" hidden " name =" description " value =" XYZ " >
< input type =" hidden " name =" amount " value =" 800 " > {{-- required in naira --}}
< input type =" hidden " name =" name " value =" Nriagu Dubem " >
< input type =" hidden " name =" planId " value =" Your plan ID " >
{{ csrf_field() }} {{-- works only when using laravel 5.1, 5.2 --}}
< input type =" hidden " name =" _token " value =" {{ csrf_token() }} " > {{-- employ this in place of csrf_field only in laravel 5.0 --}}
< p >
< button class =" btn btn-success btn-lg btn-block " type =" submit " value =" Pay Now! " >
< i class =" fa fa-plus-circle fa-lg " > </ i > Pay Now!
</ button >
</ p >
</ div >
</ div >
</ form > PAN = 5060 9905 8000 0217 499
EXPYEAR = 20
EXPMONTH = 04
CVV = 111
If prompted for Amount Validation, Enter 1.10No dude en desembolsar este paquete y contribuir enviando una solicitud de extracción para mejorar las funcionalidades.
Estrella el repositorio de Github, ¡me encantaría la atención! ¿También puede compartir el enlace para este repositorio en Twitter o Hackernews? ¡Corre la voz!
¡No olvides seguirme en Twitter!
¡Gracias! Nriagu Chidubem.
La licencia MIT (MIT). Consulte el archivo de licencia para obtener más información.