tajulsharby / senangpay
此包将提供门面和与SenangPay支付网关的简单集成。
dev-master
2018-12-09 11:02 UTC
Requires
- php: >=7.0
- illuminate/support: ~5.5.0
Requires (Dev)
- orchestra/testbench: ~3.5.0
- phpunit/phpunit: ^5.7
This package is auto-updated.
Last update: 2024-09-10 00:05:30 UTC
README
包描述:这是一个简单的包,允许在Laravel项目中使用SenangPay支付网关API。
安装
通过Composer安装
composer require tajulsharby/senangpay
注册服务提供者
注意!如果您使用laravel≥5.5并具有自动发现功能,则以下步骤和下一步骤是可选的。
将服务提供者添加到 config/app.php
文件的 providers
部分
Jomos\SenangPay\ServiceProvider::class,
注册门面
在 config/app.php
文件的 aliases
部分注册包门面
Jomos\SenangPay\Facades\SenangPay::class,
发布配置文件
php artisan vendor:publish --provider="Jomos\SenangPay\ServiceProvider" --tag="config"
用法
步骤 1:确保您已注册SenangPay步骤 2:登录并获取您的商户ID和您的密钥。然后在返回URL字段中输入:'http://[YOUR DOMAIN NAME]/process-return-url'。然后在返回URL参数中输入:'?status_id=[TXN_STATUS]&order_id=[ORDER_ID]&transaction_id=[TXN_REF]&message=[MSG]&hash=[HASH]'
步骤 3:(假设您已经安装了此包并发布了它们)转到config/senangpay.php并相应地编辑您的商户ID和您的密钥(您从步骤2中获得)。
步骤 4:在您的控制器中,将此代码添加到您的订单处理方法中。
示例:在客户点击结账或支付后,表单应通过POST提交到控制器方法
use Jomos/SenangPay/Senangpay; class PaymentController extends Controller { public function processOrder(Request $request){ // .. prior code usually on taking orders and save to orders table $payerName = $request->payer_name; $payerEmail = $request->payer_email; $payerPhone = $rquest->payer_phone; $detail = 'Order For something something'; // Change to any title of this order $orderId = '1234567'; // Make sure it is a unique no and not a running number that payer can guest. $amount = '300'; // Equals to RM300.00 Senangpay::setPaymentDetails( $payerName, $payerEmail, $payerPhone, $detail, $orderId, $amount ); return Senangpay::processPayment(); } public function processReturnUrl(Request $request){ if(Senangpay::checkIfReturnHashCorrect( $request ) == true) { $order = Order::find($request->order_id); if( $request->status_id == 1 ) { $order->payment_status = 'Paid'; $order->senangpay_transaction_id = $request->transaction_id; $order->confirm_payment_date = date('Y-m-d'); $order->save(); return redirect()->to('success'); } else { return redirect()->to('fail'); } } } }
步骤 5:在routes/web.php中添加以下2个路由
Route::post('process-order', 'PaymentController@processOrder'); Route::get('process-return-url', 'PaymentController@processReturnUrl');
安全
如果您发现任何与安全相关的问题,请通过电子邮件联系,而不是使用问题跟踪器。