afzalsabbir / sslaracommerz
SSLCommerz支付网关的包。受https://github.com/sslcommerz/SSLCommerz-Laravel启发
Requires
- php: ^7.1.3|^8.0
- guzzlehttp/guzzle: ^6.3|^7.0
- laravel/framework: ^6.0|^7.0|^8.0|^9.0
Requires (Dev)
- fzaninotto/faker: ^1.9@dev
- illuminate/support: 5.8.*|^6.0|^7.0|^8.0|^9.0
- mockery/mockery: ^1.0@dev
- phpunit/phpunit: ^4.8|^5.7|^6.0|^7.5|^8.5|^9.5
- symfony/thanks: ^1.0
This package is auto-updated.
Last update: 2024-09-08 19:15:20 UTC
README
SSLCommerz支付网关的包
受 SSLCommerz 启发
SSLCommerz 是Laravel框架的支付网关库。官方文档在 这里。
标签: 支付网关, SSLCommerz, IPN, Laravel, SSLaraCommerz
需求: Laravel >= 5.6 和 MySQL
许可: MIT许可
安装
composer require afzalsabbir/sslaracommerz
迁移
php artisan migrate
说明
供应商发布 - 必需
# 公共资源 php artisan vendor:publish --provider="AfzalSabbir\SSLaraCommerz\SSLaraCommerzServiceProvider" --tag="public-assets"
公共资源: 为了集成弹出结账,请在body标签的末尾之前使用以下脚本。
-
对于沙盒环境
<script> (function (window, document) { var loader = function () { var script = document.createElement("script"), tag = document.getElementsByTagName("script")[0]; script.src = "https://sandbox.sslcommerz.com/embed.min.js?" + Math.random().toString(36).substring(7); tag.parentNode.insertBefore(script, tag); }; window.addEventListener ? window.addEventListener("load", loader, false) : window.attachEvent("onload", loader); })(window, document); </script>
或者,发布 公共资源 并使用以下
sandbox
脚本<script src="/assets/js/sandbox.js"></script>
-
对于实时环境
<script> (function (window, document) { var loader = function () { var script = document.createElement("script"), tag = document.getElementsByTagName("script")[0]; script.src = "https://seamless-epay.sslcommerz.com/embed.min.js?" + Math.random().toString(36).substring(7); tag.parentNode.insertBefore(script, tag); }; window.addEventListener ? window.addEventListener("load", loader, false) : window.attachEvent("onload", loader); })(window, document); </script>
或者,发布 公共资源 并使用以下
live
脚本<script src="/assets/js/live.js"></script>
# Routes and Controller php artisan vendor:publish --provider="AfzalSabbir\SSLaraCommerz\SSLaraCommerzServiceProvider" --tag="routes-controller"
路由和控制器: 为了自定义路由和控制器,请使用以下命令。
- 在
app/Providers/RouteServiceProvider.php
中添加$this->loadRoutesFrom(base_path('routes/sslcommerz.php'));
namespace App\Providers; // ... class RouteServiceProvider extends ServiceProvider { // ... public function boot() { // ... $this->loadRoutesFrom(base_path('routes/sslcommerz.php')); } // ... }
供应商发布 - 可选
# 配置 php artisan vendor:publish --provider="AfzalSabbir\SSLaraCommerz\SSLaraCommerzServiceProvider" --tag="config" # 视图 ## 命名空间: sslaracommerz php artisan vendor:publish --provider="AfzalSabbir\SSLaraCommerz\SSLaraCommerzServiceProvider" --tag="views" # 迁移 php artisan vendor:publish --provider="AfzalSabbir\SSLaraCommerz\SSLaraCommerzServiceProvider" --tag="migrations"
注意: 如果之后遇到重定向后会话销毁的问题,可以在您的
config/session.php
文件中将'same_site' => null,
设置为。
-
步骤 1: 在您的项目的
.env
文件中添加STORE_ID
和STORE_PASSWORD
值。您可以在 https://developer.sslcommerz.com/registration/ 注册商店 -
步骤 2: 将以下路由添加到
VerifyCsrfToken
中间件的$excepts
数组中。protected $except = [ '/pay-via-ajax', '/success','/cancel','/fail','/ipn' ];
现在,让我们进入主要集成部分。
-
步骤 3: 在您想显示 "立即支付" 按钮的地方使用以下按钮
<button class="your-button-class" id="sslczPayBtn" token="if you have any token validation" postdata="your javascript arrays or objects which requires in backend" order="If you already have the transaction generated for current order" endpoint="/pay-via-ajax"> Pay Now </button>
-
步骤 4: 对于EasyCheckout(弹出窗口)集成,您可以更新
checkout_ajax.php
或根据需要使用不同的文件。我们提供了一个基本的示例页面,您可以从该页面开始进行支付网关集成。 -
步骤 5: 对于托管Checkout集成,您可以更新
checkout_hosted.php
或根据需要使用不同的文件。我们提供了一个基本的示例页面,您可以从该页面开始进行支付网关集成。 -
步骤 6: 对于从SSLCommerz支付网关进行重定向操作,我们还提供了示例
success.php
、cancel.php
、fail.php
文件。您可以根据需要更新这些文件。
原始文档
为了更清晰地理解概念,请阅读:SSLCommerz README.md
测试
使用以下命令运行测试
vendor/bin/phpunit
贡献
有关详细信息,请参阅CONTRIBUTING
安全
如果您发现任何与安全相关的问题,请通过电子邮件afzalbd1@gmail.com联系,而不是使用问题跟踪器。
许可
MIT许可(MIT)。有关更多信息,请参阅许可文件