Amplify Pay를 통합하기위한 Laravel 라이브러리
PHP 5.4+ 및 작곡가가 필요합니다.
Laravel Amplify의 최신 버전을 얻으려면 아래와 마찬가지로 필요합니다.
" composer require dubems/laravel-amplify"
그런 다음 composer install 또는 composer update 실행하여 다운로드하고 Autoloader를 업데이트해야합니다.
Laravel Amplify가 설치되면 서비스 제공 업체를 등록해야합니다. config/app.php 열고 providers 키에 다음을 추가하십시오.
DubemsAmplifyAmplifyServiceProvider::class,또한 외관을 등록하십시오.
' aliases ' => [
...
' Amplify ' => Dubems Amplify Facades Amplify::class,
...
]이 명령을 사용하여 구성 파일을 게시 할 수 있습니다.
php artisan vendor:publish --provider= " DubemsAmplifyAmplifyServiceProvider " 일부 기본값이 포함 된 amplify.php 라는 구성 파일이 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 ' )
];## 일반 지불 흐름
주문을 지불하는 방법에는 여러 가지가 있지만 대부분의 지불 게이트웨이는 결제 과정에서 다음 흐름을 따를 것으로 기대합니다.
### 1. 고객이 결제 절차를 거치고 지불 할 준비가 된 후 고객은 지불 제공 업체로 리디렉션됩니다. 고객은 지불 제공 업체의 사이트로 리디렉션되어야합니다.
리디렉션은 숨겨진 필드가있는 양식을 제출하여 수행됩니다. 양식은 지불 제공자의 사이트에 게시해야합니다. 숨겨진 필드는 지불해야 할 금액과 다른 필드를 최소한으로 지정합니다.
### 2. 고객은 지불 제공 업체의 사이트에서 지불하는 지불 제공자가 지불 제공 업체의 사이트에 도착하여 결제 방법을 선택하게됩니다. 주문을 지불하는 데 필요한 모든 단계는 지불 제공자가 관리합니다.
### 3. 고객이 리디렉션 된 명령을 지불 한 후 고객은 다시 방향을 바꿉니다. 상점 사이트에 대한 리디렉션 요청에서 일부 값이 반환됩니다.
.env 파일을 열고 공개 키, 비밀 키, 판매자 이메일 및 지불 URL을 추가하십시오.
AMPLIFY_MERCHANT_ID = XXXXXXX
AMPLIFY_API_KEY = XXXXXX
AMPLIFY_PAYMENT_URL =https: //api.amplifypay.com
AMPLIFY_REDIRECT_URL =https: //xxxxx그렇게하는 경로 및 컨트롤러 메소드를 설정하십시오.
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
}
}다른 방법과 예제 사용은 아래에서 찾을 수 있습니다
/** 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 );
}
샘플 양식은 다음과 같습니다.
< 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.10이 패키지를 자유롭게 포크하고 기능을 향상시키기위한 풀 요청을 제출하여 기여하십시오.
Github Repo를 Star, 나는 관심을 좋아합니다! 이 저장소의 링크를 Twitter 또는 Hackernews에서 공유 할 수 있습니까? 말씀을 전하십시오!
트위터에서 나를 팔로우하는 것을 잊지 마십시오!
감사해요! Nriagu Chidubem.
MIT 라이센스 (MIT). 자세한 내용은 라이센스 파일을 참조하십시오.