melogail / telr-laravel
Laravel Telr支付网关解决方案包。
Requires
- php: ^8.1
- guzzlehttp/guzzle: ^7.5
- illuminate/contracts: ^10.0
- spatie/laravel-package-tools: ^1.14.0
Requires (Dev)
- laravel/pint: ^1.0
- nunomaduro/collision: ^v7.5
- nunomaduro/larastan: ^2.0.1
- orchestra/testbench: ^8.0
- pestphp/pest: ^2.0
- pestphp/pest-plugin-arch: ^2.0
- pestphp/pest-plugin-laravel: ^2.0
- phpstan/extension-installer: ^1.1
- phpstan/phpstan-deprecation-rules: ^1.0
- phpstan/phpstan-phpunit: ^1.0
- spatie/laravel-ray: ^1.26
This package is auto-updated.
Last update: 2024-09-09 08:10:01 UTC
README
使用Laravel包通过"Telr"支付网关从您的网站进行在线支付。
安装
您可以通过composer安装此包
composer require melogail/telr-laravel
您可以使用以下命令发布并运行迁移
php artisan vendor:publish --provider="Melogail\TelrLaravel\TelrLaravelServiceProvider" --tag="migrations" php artisan migrate
您可以使用以下命令发布配置文件
php artisan vendor:publish --provider="Melogail\TelrLaravel\TelrLaravelServiceProvider" --tag="config"
这将把config/telr-laravel.php
配置文件添加到您的项目配置文件夹中。
在config/telr-laravel.php
配置文件中,您需要根据项目路由添加成功、失败和取消页面的相对路径。
return [ // ...other configs 'response_path' => [ 'return_auth' => '/:path/to_success_page', 'return_decl' => '/:path/to_decline_page', 'return_can' => '/:path/to_cancel_page', ], ];
将以下代码添加到您的.env
文件中,并将值更改为您的支付值。
TELR_STORE_ID= # Payment API key [its different from your "Service API" key]. TELR_AUTH_KEY= # Payment API key. TELR_TEST_MODE= # 1=Test mode | 0=Live mode. TELR_CURRENCY= # Currency used for payment.
在您的config/app.php
文件中添加TelrLaravel
外观。
'aliases' => Facade::defaultAliases()->merge([ // 'ExampleClass' => App\Example\ExampleClass::class, 'TelrLaravel' => \Melogail\TelrLaravel\Facades\TelrLaravel::class, ])->toArray(),
用法
要执行支付,您需要在控制器中调用TelrLaravel
类。
use Melogail\TelrLaravel\TelrLaravel; $telr_laravel = new TelrLaravel();
使用makePayment()
方法进行支付。
$telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16');
调用makePayment()
方法后,然后调用pay()
方法执行支付。
makePayment(string $order_id, float $amount, string $description)
方法需要三个参数
string $order_id
: 您系统生成的订单ID。float $amount
: 需要支付的金额,以小数形式表示,例如:9.50。string $description
: 支付的简短描述,最大长度63个字符。
而pay(<array $params>)
方法接受一个可选的数组参数,该数组包含支付网关所需的必要账单信息。如果这些参数在您的系统中被忽略,支付网关页面将提示用户添加这些信息。
所需信息如下
bill_fname
: 用户名。bill_sname
: 用户姓氏。bill_addr1
: 主要账单地址。bill_phone
: 用户电话号码。bill_city
: 城市,例如:迪拜。bill_country
: 国家,必须以两个字符的ISO 3166国家代码提供,例如:US、GB、EG。bill_email
: 用户主要电子邮件。
$billing_parameters = [ 'bill_fname' => $first_name, 'bill_sname' => $sure_name, 'bill_addr1' => $address1, 'bill_phone' => $phone, 'bill_city' => $city, 'bill_country' => $country, 'bill_email' => $email ]; $telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16') ->pay($billing_parameters);
完整代码示例
use Melogail\TelrLaravel\TelrLaravel; $telr_laravel = new TelrLaravel(); $billing_parameters = [ 'bill_fname' => $first_name, 'bill_sname' => $sure_name, 'bill_addr1' => $address1, 'bill_phone' => $phone, 'bill_city' => $city, 'bill_country' => $country, 'bill_email' => $email ]; $telr_laravel->makePayment('183-487-143', 9.50, 'Cart generated by John Doe on 2023-1-16')->pay($billing_parameters);
有关账单参数的更多信息,请参阅平台文档此处
确认交易并更新交易状态
在您的config/telr-laravel.php
文件中设置支付状态路径页面后,您需要创建三个不同的视图,每个视图对应一个状态(成功、失败、取消)。
在每个视图中,您需要调用Telr
外观上的setTransactionStatus(Request $request)
方法来根据其返回的响应更新交易状态。
use Illuminate\Http\Request; use \Melogail\TelrLaravel\Facades\TelrLaravel; class PaymentController extends Controller { public function success(Request $request){ // Calling setTransactionStatus facade. TelrLaravel::setTransactionStatus($request); return view( //... success view page); } public function decline(Request $request){ // Calling setTransactionStatus facade. TelrLaravel::setTransactionStatus($request); return view( //... decline view page); } public function cancel(Request $request){ // Calling setTransactionStatus facade. TelrLaravel::setTransactionStatus($request); return view( //... cancel view page); } }
测试卡
您可以使用以下卡来测试您的支付网关集成。
变更日志
有关最近更改的更多信息,请参阅CHANGELOG
致谢
许可证
MIT许可证(MIT)。有关更多信息,请参阅许可证文件