phpawcom / thawani_laravel
将 Thawani 支付添加到 Laravel 项目
1.0.1
2024-03-23 17:41 UTC
Requires
- php: >=8.1
- ext-curl: *
Requires (Dev)
- orchestra/testbench: 8.x-dev
This package is auto-updated.
Last update: 2024-09-23 18:53:07 UTC
README
此包用于将 Thawani 支持添加到 Laravel
安装
composer require phpawcom/thawani_laravel
然后迁移以添加 Thawani 表
php artisan migrate
发布配置
php artisan vendor:publish --provider "S4D\Laravel\Thawani\ThawaniServiceProvider"
The S4D\Laravel\Thawani\ThawaniServiceProvider 是默认自动发现和注册的。如果您想自己注册它,请将 ServiceProvider 添加到 config/app.php
'providers' => [ S4D\Laravel\Thawani\ThawaniServiceProvider::class, ]
别名
'aliases' => [ S4D\Laravel\Thawani\Thawani::class, ]
用法
首先您需要将路由添加到您的 routes/web.php
// To generate payment URL and redirect to Thawani Route::get('pay', [\App\Http\Controllers\TestThawaniController::class, 'pay'])->name('thawani.pay'); // To check payment and update the status Route::get('check/{session_id?}', [\App\Http\Controllers\TestThawaniController::class, 'check'])->name('thawani.check'); // To show cancellation message Route::get('cancel/{session_id?}', [\App\Http\Controllers\TestThawaniController::class, 'cancel'])->name('thawani.cancel');
在您的控制器中
<?php namespace App\Http\Controllers; use S4D\Laravel\Thawani\Thawani; class TestThawaniController extends Controller { public function pay(){ // Note that we use Routes names in setReturnUrls() method Thawani::setClientReference(1)->setReturnUrls('thawani.check', 'thawani.cancel')->setProducts([ ['name' => 'test test test test test test test test test test test test ', 'unit_amount' => 100, 'quantity' => 1], ['name' => 'test', 'unit_amount' => 100, 'quantity' => 1], ])->setMetadata([ 'customer_name' => 'Fulan Al Fulani', 'customer_phone' => '90000000', 'customer_email' => 'email@domain.tld', ])->redirectToPayment(); } public function check($session_id){ return Response('Payment is '.(Thawani::paymentStatus($session_id) == 1? 'successful' : 'failed')); } public function cancel($session_id){ Thawani::cancelPayment($session_id); return Response('has been cancelled'); } }
请注意,您可以通过这种方式获取支付 URL 而不进行重定向
$url = Thawani::setClientReference(1)->setReturnUrls('thawani.check', 'thawani.cancel')->setProducts([ ['name' => 'test test test test test test test test test test test test ', 'unit_amount' => 100, 'quantity' => 1], ['name' => 'test', 'unit_amount' => 100, 'quantity' => 1], ])->setMetadata([ 'customer_name' => 'Fulan Al Fulani', 'customer_phone' => '90000000', 'customer_email' => 'email@domain.tld', ])->getPaymentUrl();
如果您在 setReturnUrls() 方法中未指定 URL,该包将使用其默认视图