eeric2eric / senangpay
此包将提供与 SenangPay 支付网关的接口以及简单集成。
dev-master
2020-04-08 06:24 UTC
Requires
- php: >=7.0
- illuminate/support: ~5.5.0
Requires (Dev)
- orchestra/testbench: ~3.5.5
- phpunit/phpunit: ^6.0
This package is not auto-updated.
Last update: 2020-04-08 06:24:56 UTC
README
包描述:这是一个简单的包,允许在 Laravel 项目中使用 SenangPay 支付网关 API。
安装
通过 composer 安装
composer require eeric2eric/senangpay
注册服务提供者
注意!如果您使用 laravel>=5.5 且具有包自动发现功能,则此步骤和下一个步骤是可选的。
将服务提供者添加到 config/app.php
中的 providers
部分
Eeric2eric\SenangPay\ServiceProvider::class,
注册外观
在 config/app.php
中的 aliases
部分注册包外观
Eeric2eric\SenangPay\Facades\SenangPay::class,
发布配置文件
php artisan vendor:publish --provider="Eeric2eric\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 Eeric2eric/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');
安全
如果您发现任何安全相关的问题,请通过电子邮件而不是使用问题跟踪器来报告。