groupedesign / fatora
Fatora 支付网关
dev-master
2021-03-02 20:34 UTC
This package is auto-updated.
Last update: 2024-09-29 05:49:48 UTC
README
Fatora Laravel 包
安装与使用
安装与配置
1- 使用 composer 安装当前版本的 groupedesign/fatora 包
composer require groupedesign/fatora
或 在 composer.json 中要求安装
{
"require": {
"groupedesign/fatora": "dev-master"
}
}
然后在终端中运行 composer update 以将其拉入。
包的 service provider 将自动注册其服务提供者。
2- 发布配置文件
php artisan vendor:publish --provider="Groupedesign\Fatora\FatoraServiceProvider"
3- 按照上述建议发布配置文件后,您需要将 API 密钥添加到应用程序的 .env 文件中
FATORA_API_KEY=your_key_here
4- 在 kernal.php 中添加检查交易中间件
'checkTransactionStatus' => \Groupedesign\Fatora\Http\Middleware\CheckTransactionStatus::class
使用示例
1- 创建新的控制器
php artisan make:controller PaymentController
将此代码复制到您的控制器中
<?php namespace App\Http\Controllers; use Groupedesign\Fatora\Checkout; use Illuminate\Http\Request; use stdClass; use Illuminate\Support\Str; class PaymentController extends Controller { public function index() { return view("payment.checkout"); } public function checkout(Request $request) { $order = new stdClass(); $order->orderNo = Str::random(15); $order->amount = $request->amount; $order->currencyCode = $request->currencyCode; $order->customerEmail = $request->customerEmail; $order->customerName = $request->customerName; $order->customerPhone = $request->customerPhone; $order->customerCountry = $request->customerCountry; $order->lang = $request->lang; $order->note = $request->note; return Checkout::checkout($order); } public function getSuccessPage($orderId = 0, $chkStatus = 0) { return view("payment.success", compact('orderId', 'chkStatus')); } public function getErrorPage($error_msg) { return view("payment.error", compact('error_msg')); } }
2- 在 recources/views/payment 中创建新的 blade 文件 checkout.blade.php 并将此代码复制到其中
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width, initial-scale=1.0"> <meta http-equiv="X-UA-Compatible" content="ie=edge"> <title>Fatora Payment Gateway</title> </head> <body> <form action="{{ route('payment.checkout') }}" method="POST"> @csrf <input type="hidden" name="amount" value="0"> <input type="hidden" name="currencyCode" value="QAR"> <input type="hidden" name="customerEmail" value="testPament@testPayment.com"> <input type="hidden" name="customerName" value="gust"> <input type="hidden" name="customerPhone" value="+9639449871"> <input type="hidden" name="customerCountry" value="QATAR"> <input type="hidden" name="lang" value="en"> <input type="hidden" name="status" value="pending"> <input type="hidden" name="note" value="Demo of Payment"> <button class="btn btn-pay" name="submit" type="submit"><i class="fa fa-money"></i> Checkout </button> </form> </body> </html>
3- 在 routes/web.php 中复制此代码
Route::get('/', [PaymentController::class,'index']); Route::post('/checkout', [PaymentController::class,'checkout'])->name('payment.checkout'); Route::group(['middleware' => ['checkTransactionStatus']], function() { Route::get('/payment/success/{orderId?}/{chkStatus?}', [PaymentController::class,'getSuccessPage'])->name('payment.success'); }); Route::get('/payment/error/{error_msg}', [PaymentController::class,'getErrorPage'])->name('payment.error');
4- 设置成功 URL 和失败 URL
登录到您的 fatora 账户 登录 选择 集成 选择 设置
成功 URL https://:8000/payment/success
失败 URL https://:8000/payment/error
对于生产模式,将 https://:8000 替换为您的 域名