karim007 / sslcommerz-laravel
SSLCommerz - Laravel 库
v2.3
2024-06-02 06:18 UTC
Requires
- php: ^7.4|^8.0|^8.1|^8.2|^10
- ext-curl: *
README
功能
这是一个为SSLCommerz提供的php/laravel包装包。
要求
- PHP >=7.4
- Laravel >= 6
- ext-curl '*'
安装
composer require karim007/sslcommerz-laravel
发布供应商(配置)
#it will publish config file in your config folders php artisan vendor:publish --provider="Karim007\SslcommerzLaravel\SslcommerzLaravelServiceProvider" --tag="config"
发布配置文件后,设置您的凭据。您可以在配置目录中的sslcommerz.php文件中看到这些。
'sandbox' => env("SSLCOMMERZ_SANDBOX", false), // For Sandbox, use "true", For Live, use "false"
'middleware' => 'web',//you can change this middleware according to you
'store_id' => env("SSLCOMMERZ_STORE_ID"),
'store_password' => env("SSLCOMMERZ__STORE_PASSWORD"),
'success_url' => '/sslcommerz/success',
'failed_url' => '/sslcommerz/fail',
'cancel_url' => '/sslcommerz/cancel',
'ipn_url' => '/sslcommerz/ipn',
'return_response' => 'html', //html or json html means blade return json means json data return
设置.env配置
SSLCOMMERZ_SANDBOX=true #For Sandbox, use "true", For Live, use "false"
SSLCOMMERZ_STORE_ID=
SSLCOMMERZ__STORE_PASSWORD=
出于开发目的,您可以通过在https://developer.sslcommerz.com/registration/注册来获取沙盒'商店ID'和'商店密码'。
发布SslCommerzPaymentController.php控制器
#it will publish controllers file in your app\Http\Controllers folders php artisan vendor:publish --provider="Karim007\SslcommerzLaravel\SslcommerzLaravelServiceProvider" --tag="controllers"
这是您的路由列表
Route::group(['middleware'=>[config('sslcommerz.middleware','web')]], function () { Route::get('/sslcommerz/example1', [SslCommerzPaymentController::class, 'exampleEasyCheckout']); Route::get('/sslcommerz/example2', [SslCommerzPaymentController::class, 'exampleHostedCheckout']); Route::post('/sslcommerz/pay', [SslCommerzPaymentController::class, 'index']); Route::post('/sslcommerz/pay-via-ajax', [SslCommerzPaymentController::class, 'payViaAjax']); Route::post('/sslcommerz/success', [SslCommerzPaymentController::class, 'success']); Route::post('/sslcommerz/fail', [SslCommerzPaymentController::class, 'fail']); Route::post('/sslcommerz/cancel', [SslCommerzPaymentController::class, 'cancel']); Route::post('/sslcommerz/ipn', [SslCommerzPaymentController::class, 'ipn']); });
相应地为VerifyCsrfToken中间件添加异常。
protected $except = [ '/sslcommerz/*', ];
支付(所有功能已在SslCommerzPaymentController中附加)
$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 $sslc = new SslCommerzNotification(); //for hosted payment $payment_options = $sslc->makePayment($post_data, 'hosted'); #or //for api/popup payment $payment_options = $sslc->makePayment($post_data, 'checkout', 'json');
附加其他信息(可选)
$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 $customer = array(); $customer['name'] = 'Ab Karim'; $customer['email'] = 'customer@mail.com'; $customer['address_1'] = 'Dhaka'; $customer['address_2'] = ""; $customer['city'] = ""; $customer['state'] = ""; $customer['postcode'] = ""; $customer['country'] = "Bangladesh"; $customer['phone'] = '8801XXXXXXXXX'; $customer['fax'] = ""; $s_info = array(); $s_info['shipping_method'] = 'Yes'; // string (50) Mandatory - Shipping method of the order. Example: YES or NO or Courier $s_info['num_of_item'] = 1; // integer (1) Mandatory - No of product will be shipped. Example: 1 or 2 or etc $s_info['ship_name'] = 'Abc'; // string (50) Mandatory, if shipping_method is YES - Shipping Address of your order. Not mandatory but useful if provided $s_info['ship_add1'] = 'Dhaka';; // string (50) Mandatory, if shipping_method is YES - Additional Shipping Address of your order. Not mandatory but useful if provided $s_info['ship_add2'] = ''; // string (50) Additional Shipping Address of your order. Not mandatory but useful if provided $s_info['ship_city'] = 'Dhaka'; // string (50) Mandatory, if shipping_method is YES - Shipping city of your order. Not mandatory but useful if provided $s_info['ship_state'] = ''; // string (50) Shipping state of your order. Not mandatory but useful if provided $s_info['ship_postcode'] = '1215'; // string (50) Mandatory, if shipping_method is YES - Shipping postcode of your order. Not mandatory but useful if provided $s_info['ship_country'] = 'Bangladesh'; // string (50) Mandatory, if shipping_method is YES - Shipping country of your order. Not mandatory but useful if provided $sslc = new SslCommerzNotification(); $sslc->setCustomerInfo($customer)->setShipmentInfo($s_info); //then you can call $sslc->makePayment($post_data, 'hosted'); //or $sslc->makePayment($post_data, 'checkout', 'json');
如果您想,您可以发布订单迁移
#if you already have orders or this related table then skip it #it will publish order migrations file in your database\migrations folders php artisan vendor:publish --provider="Karim007\SslcommerzLaravel\SslcommerzLaravelServiceProvider" --tag="migrations" php artisan migrate
您还可以发布视图(可选)
#it will publish order migrations file in your resource\views\sslcommerz folders php artisan vendor:publish --provider="Karim007\SslcommerzLaravel\SslcommerzLaravelServiceProvider" --tag="views"
欢迎对SSLCommerz支付网关包做出贡献。在提交拉取请求之前,请注意以下指南。
- 遵循PSR-4编码标准。
- 首先阅读SSLCommerz API文档。请联系SSLCommerz获取他们的API文档和沙盒访问权限。
许可
此存储库在MIT许可下发布。
版权所有 2023 md abdul karim。我们与SSLCommerz无关,不提供任何保证。