eeric2eric/senangpay

此包将提供与 SenangPay 支付网关的接口以及简单集成。

dev-master 2020-04-08 06:24 UTC

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');

安全

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

致谢