sam-asif/sslcommerz

SSLCOMMERZ 是孟加拉国最大的支付网关聚合商。

v1.0.5 2021-10-28 07:25 UTC

This package is auto-updated.

Last update: 2024-09-28 14:46:36 UTC


README

SSLCommerz 是 Laravel 框架的支付网关库。官方文档在这里:这里

安装

composer require sam-asif/sslcommerz

提供者

为了注册这个包,以便它能被 Laravel 加载,您需要更新应用程序配置,只需在 config/app.php 文件的 'providers' 部分的末尾添加以下代码

config/app.php

<?php

return [
    // ...
    'providers' => [
        SamAsif\Sslcommerz\SSLCommerzServiceProvider::class,
        // ...
    ],
    // ...
];

发布

php artisan vendor:publish

此命令将在 config 目录内创建一个 sslcommerz.php 文件。在您的 .env 文件中配置您的参数

如果您的请求值包含以下键

total_amount
currency
tran_id
cus_name
cus_email
cus_add1
cus_add2
cus_city
cus_state
cus_postcode
cus_country
cus_phone
cus_fax
ship_name
ship_add1
ship_add2
ship_city
ship_state
ship_postcode
ship_phone
ship_country
shipping_method
product_name
product_category
product_profile
value_a
value_b
value_c
value_d

那么只需调用控制器方法。

<?php

use SamAsif\Sslcommerz\Http\Controllers\SamSSL;


class OrderController extends Controller
{

 public function Order(Request $request)
    {

    	// .......

    	$sslc = new SamSSL();
        $payment_options = $sslc->index($request, 'hosted');



        if (!is_array($payment_options)) {
            print_r($payment_options);
            $payment_options = array();
        }

    }

}

如果您的请求值不包含这些键,那么定义一个包含这些键的数组并调用控制器函数。

<?php

use SamAsif\Sslcommerz\Http\Controllers\SamSSL;


class OrderController extends Controller
{

 public function Order(Request $request)
    {

    	$post_data = array();
        $post_data['total_amount'] = '10'; # You cant not pay less than 10
        $post_data['currency'] = "BDT";
        $post_data['tran_id'] = uniqid(); // tran_id must be unique
        // .......
    	

    	// Initialize SSlcommerz gateway

    	$sslc = new SamSSL();
        $payment_options = $sslc->index($post_data, 'hosted');



        if (!is_array($payment_options)) {
            print_r($payment_options);
            $payment_options = array();
        }

    }


    // For received return  value

    public function return(Request $request){
      return $request->all();
    }

}

Web 路由

Route::post('/sslcommerz/return', 'OrderController::class@return')->name('sslcommerz.return');

此路由用于接收来自 SSLCommerz 网关的返回值。