Bibliothèque Laravel pour intégrer Amplify Pay
PHP 5.4+ et compositeur sont nécessaires.
Pour obtenir la dernière version de Laravel Amplify, nécessitez comme ci-dessous
" composer require dubems/laravel-amplify"
Vous devrez alors exécuter composer install ou composer update pour le télécharger et faire mettre à jour l'autoloader.
Une fois Laravel Amplify installé, vous devez enregistrer le fournisseur de services. Ouvrez config/app.php et ajoutez ce qui suit à la clé providers .
DubemsAmplifyAmplifyServiceProvider::class,Aussi, enregistrez la façade comme tel:
' aliases ' => [
...
' Amplify ' => Dubems Amplify Facades Amplify::class,
...
]Vous pouvez publier le fichier de configuration à l'aide de cette commande:
php artisan vendor:publish --provider= " DubemsAmplifyAmplifyServiceProvider " Un fichier de configuration nommé amplify.php avec quelques valeurs par défaut sera placée dans votre répertoire 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 ' )
];## flux de paiement général
Bien qu'il existe plusieurs façons de payer une commande, la plupart des passerelles de paiement s'attendent à ce que vous suiviez le flux suivant dans votre processus de paiement:
### 1. Le client est redirigé vers le fournisseur de paiement après que le client a suivi le processus de paiement et est prêt à payer, le client doit être redirigé vers le site du fournisseur de paiement.
La redirection est accomplie en soumettant un formulaire avec quelques champs cachés. Le formulaire doit publier sur le site du fournisseur de paiement. Les champs cachés spécifient le montant qui doit être payé et certains autres champs
### 2. Le client paie sur le site du fournisseur de paiement le client arrive sur le site du fournisseur de paiement et peut choisir un mode de paiement. Toutes les mesures nécessaires pour payer la commande sont prises en charge par le fournisseur de paiement.
### 3. Le client est redirigé après avoir payé la commande que le client est redirigé. Dans la demande de redirection vers le site de l'atelier, certaines valeurs sont renvoyées.
Ouvrez votre fichier .env et ajoutez votre clé publique, clé secrète, e-mail marchand et URL de paiement comme tel:
AMPLIFY_MERCHANT_ID = XXXXXXX
AMPLIFY_API_KEY = XXXXXX
AMPLIFY_PAYMENT_URL =https: //api.amplifypay.com
AMPLIFY_REDIRECT_URL =https: //xxxxxConfigurer des itinéraires et des méthodes de contrôleur comme tel:
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
}
}D'autres méthodes et des exemples d'utilisation peuvent être trouvés ci-dessous
/** 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 );
}
Un échantillon de formulaire ressemblera à:
< 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.10N'hésitez pas à alimenter ce package et à contribuer en soumettant une demande de traction pour améliorer les fonctionnalités.
Star the github Repo, j'aimerais l'attention! Vous pouvez également partager le lien de ce référentiel sur Twitter ou Hackernews? Passez le mot!
N'oubliez pas de me suivre sur Twitter!
Merci! Nriagu Chidubem.
La licence MIT (MIT). Veuillez consulter le fichier de licence pour plus d'informations.