tajulsharby/senangpay

此包将提供门面和与SenangPay支付网关的简单集成。

dev-master 2018-12-09 11:02 UTC

This package is auto-updated.

Last update: 2024-09-10 00:05:30 UTC


README

Build Status styleci Packagist Packagist Packagist

包描述:这是一个简单的包,允许在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');

安全

如果您发现任何与安全相关的问题,请通过电子邮件联系,而不是使用问题跟踪器。

致谢