karim007 / laravel-tap
laravel的Tap支付网关
v1.2
2024-06-02 06:14 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2
- ext-curl: *
README
要求
- PHP >=7.4
- Laravel >= 6
安装
composer require karim007/laravel-tap
示例
vendor publish (配置)
php artisan vendor:publish --provider="Karim007\LaravelTap\LaravelTapServiceProvider" --tag="config"
发布配置文件后,设置凭证。您可以在配置目录中的 tap.php 文件中看到它。
"sandbox" => env("TAP_SANDBOX", true),
"authAPIKey" => env("TAP_AUTH_API_KEY", ""),
"auth_token" => env("TAP_AUTH_TOKEN", ""),
"username" => env("TAP_USERNAME", ""),
"password" => env("TAP_PASSWORD", ""),
"authAPIKey_2" => env("TAP_AUTH_API_KEY_2", ""),
"auth_token_2" => env("TAP_AUTH_TOKEN_2", ""),
"username_2" => env("TAP_USERNAME_2", ""),
"password_2" => env("TAP_PASSWORD_2", ""),
//so on ...
"callbackURL" => env("TAP_CALLBACK_URL", "http://127.0.0.1:8000/tap/callback"),
设置 .env 配置
TAP_SANDBOX=true #for production use false
TAP_AUTH_API_KEY=""
TAP_AUTH_TOKEN=""
TAP_USERNAME=""
TAP_PASSWORD=""
#for multi account
TAP_AUTH_API_KEY_2=""
TAP_AUTH_TOKEN_2=""
TAP_USERNAME_2=""
TAP_PASSWORD_2=""
#so on just use _number likes _3, _4, _5
TAP_CALLBACK_URL=""
用法
1. 发布控制器
php artisan vendor:publish --provider="Karim007\LaravelTap\TapPaymentController" --tag="controllers"
2. 需要在路由列表中添加
Route::get('/tap/create-payment', [App\Http\Controllers\TapPaymentController::class,'createPayment'])->name('tap-create-payment'); Route::get('/tap/callback', [App\Http\Controllers\TapPaymentController::class,'callBack'])->name('tap-callBack');
3. 创建支付
您可以在 App\Http\Controllers\LaravelTapServiceProvider 中找到它
public function createPayment(Request $request) { $inv = uniqid(); $data['requestorReferenceId'] = $inv; $data['amount'] = 10; $data['invoiceNumber'] = $inv; $data['additionalInformation'] = "Far far away, behind the word mountains"; $data['callBackUrl'] = config("tap.callbackURL"); return TapPayment::tPayment($data); }
4. 回调函数
public function callBack(Request $request) { if ($request->status == 'completed'){ $response = TapPayment::validatePayment($request->transactionId); //$response = TapPayment::validatePayment($request->transactionId, 1); //last parameter is your account number for multi account its like, 1,2,3,4,cont.. if (!$response){ //if validatePayment payment not found call checkTransaction $response = TapPayment::checkTransaction($request->requestorReferenceId); //$response = TapPayment::checkTransaction($request->requestorReferenceId,1); //last parameter is your account number for multi account its like, 1,2,3,4,cont.. } if (isset($response['status']) && $response['status'] == "completed") { /* * for future use need to store * transactionId, requestorReferenceId and coreTransactionId * */ return TapPayment::success('Thank you for your payment', $response['coreTransactionId']); } return TapPayment::failure($response['statusMessage']); }else if ($request->status == 'cancel'){ return TapPayment::cancel('Your payment is canceled'); }else{ return TapPayment::failure('Your transaction is failed'); } }
5. validatePayment 函数
public function validatePayment($transactionId) { $response = TapPayment::validatePayment($transactionId); //$response = TapPayment::validatePayment($transactionId, 1); //last parameter is your account number for multi account its like, 1,2,3,4,cont.. return $response; }
6. chkTransaction 函数
public function chkTransaction($requestorReferenceId) { $response = TapPayment::checkTransaction($requestorReferenceId); //$response = TapPayment::checkTransaction($requestorReferenceId, 1); //last parameter is your account number for multi account its like, 1,2,3,4,cont.. return $response; }
欢迎使用对TAP支付网关包的贡献。在提交拉取请求之前,请注意以下指南。
- 遵循 PSR-4 编码标准。
- 首先阅读TAP API文档。请联系TAP获取他们的API文档和沙盒访问权限。
许可协议
本存储库采用 MIT许可协议 许可。
版权 2022 md abdul karim。我们与tap无关,不提供任何保证。