dubems / laravel-amplify
laravel 的 Amplify 支付库
Requires
- php: ^5.4.0|^7.0
- guzzlehttp/guzzle: 5.*|6.*
- illuminate/support: 5.*
Requires (Dev)
- mockery/mockery: >=0.7.2
- phpunit/phpunit: 4.*
This package is not auto-updated.
Last update: 2024-09-23 19:19:28 UTC
README
Amplify 支付集成 Laravel 库
安装
需要 PHP 5.4+ 和 Composer。
要获取 Laravel Amplify 的最新版本,请在以下要求中指定:
" composer require dubems/laravel-amplify"
然后,您需要运行 composer install
或 composer update
来下载它并更新自动加载器。
一旦安装了 Laravel Amplify,您需要注册服务提供者。打开 config/app.php
并将以下内容添加到 providers
键。
Dubems\Amplify\AmplifyServiceProvider::class,
同时,注册 Facade 如下所示
'aliases' => [ ... 'Amplify' => Dubems\Amplify\Facades\Amplify::class, ... ]
配置
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Dubems\Amplify\AmplifyServiceProvider"
将名为 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="nriagudubem@gmail.com"> {{-- 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
待办事项
- 添加全面测试
贡献
请随意fork此软件包,并通过提交拉取请求来贡献以增强功能。
如何感谢你?
为github仓库加星标,我很乐意看到关注!您还可以在Twitter或HackerNews上分享此存储库的链接?传播信息!
别忘了在 twitter上关注我!
谢谢!Nriagu Chidubem。
许可证
MIT 许可证(MIT)。请参阅 许可证文件 以获取更多信息。