afzalsabbir/sslaracommerz

SSLCommerz支付网关的包。受https://github.com/sslcommerz/SSLCommerz-Laravel启发

v0.0.1-alpha-1 2023-01-08 15:09 UTC

This package is auto-updated.

Last update: 2024-09-08 19:15:20 UTC


README

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

Software License Latest Version on Packagist Build Status Quality Score Commits Since

GitHub contributors GitHub issues GitHub issues

GitHub forks GitHub stars GitHub watchers GitHub followers Twitter Follow

Total Downloads GitHub code size in bytes GitHub repo size in bytes

GitHub last commit GitHub commit activity the past week, 4 weeks, year GitHub commit activity the past week, 4 weeks, year GitHub commit activity the past week, 4 weeks, year

GitHub release GitHub release date

GitHub tag GitHub release GitHub release

标签: 支付网关, 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_IDSTORE_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.phpcancel.phpfail.php文件。您可以根据需要更新这些文件。

原始文档

为了更清晰地理解概念,请阅读:SSLCommerz README.md

测试

使用以下命令运行测试

vendor/bin/phpunit

贡献

有关详细信息,请参阅CONTRIBUTING

安全

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

许可

MIT许可(MIT)。有关更多信息,请参阅许可文件