pledg / sylius-payment-plugin
使用 Pledg 的支付网关插件
2.0.9
2024-09-17 15:25 UTC
Requires
- php: ^7.4 | ^8.0
- ext-json: *
- guzzlehttp/guzzle: ^6.5
- php-http/message-factory: ^1.1
- supervisorphp/supervisor: ^4.0
- sylius/sylius: ~1.9.0|~1.10.0|~1.11.0
Requires (Dev)
- behat/behat: ^3.6.1
- behat/mink-selenium2-driver: ^1.4
- dmore/behat-chrome-extension: ^1.3
- dmore/chrome-mink-driver: ^2.7
- friends-of-behat/mink: ^1.8
- friends-of-behat/mink-browserkit-driver: ^1.4
- friends-of-behat/mink-debug-extension: ^2.1.0
- friends-of-behat/mink-extension: ^2.4
- friends-of-behat/page-object-extension: ^0.3
- friends-of-behat/suite-settings-extension: ^1.0
- friends-of-behat/symfony-extension: ^2.1
- friends-of-behat/variadic-extension: ^1.3
- phpspec/prophecy: ^1.12
- phpstan/extension-installer: ^1.0
- phpstan/phpstan: ^1.11.11
- phpstan/phpstan-doctrine: ^1.5.1
- phpstan/phpstan-strict-rules: ^1.6.0
- phpstan/phpstan-webmozart-assert: ^1.2.10
- phpunit/phpunit: ^8.5
- sensiolabs/security-checker: ^6.0
- sylius-labs/coding-standard: ^4.0
- symfony/browser-kit: ^5.4
- symfony/debug-bundle: ^5.4
- symfony/dotenv: ^5.4
- symfony/intl: ^5.4
- symfony/web-profiler-bundle: ^5.4
- symfony/web-server-bundle: ^4.4|^5.0
README
安装
- 安装包(请注意我们插件支持的 Sylius 版本)
composer require pledg/sylius-payment-plugin
- 在您的路由文件之一中导入路由或创建一个新的路由(例如
config/routes/pledg_sylius_payment.yaml
)
pledg_sylius_payment: resource: "@PledgSyliusPaymentPlugin/Resources/config/routing.yml" prefix: /pledg
- 清除缓存以查看翻译
bin/console c:c
沙盒和产品环境
默认情况下,插件使用沙盒模式。您可以通过指定配置文件中的模式来配置它。例如,如果您只想禁用生产环境中的沙盒模式,只需创建一个 config/packages/prod/pledg_sylius_payment_plugin.yaml
文件即可。
pledg_sylius_payment: sandbox: false
创建您的支付方式
现在您可以使用该插件并创建第一个 Pledg 支付方式
- 选择 Pledg 类型
- 填写所有必填字段(特别是您的商户 ID、密钥和限制国家)。不要忘记在您的渠道上激活该方法。
Pledg 允许使用没有签名的支付方式,但插件不允许。因此,即使在沙盒模式下,密钥也是必需的,交易将被签名。
添加资产
mkdir -p templates/bundles/SyliusAdminBundle/ mkdir -p templates/bundles/SyliusShopBundle/ cp -R vendor/pledg/sylius-payment-plugin/tests/Application/templates/bundles/SyliusAdminBundle/* templates/bundles/SyliusAdminBundle/ cp -R vendor/pledg/sylius-payment-plugin/tests/Application/templates/bundles/SyliusShopBundle/* templates/bundles/SyliusShopBundle/
添加状态机配置
在 _sylius.yaml
或您的 pledg_sylius_payment_plugin.yaml
文件中导入配置
imports: - { resource: "@PledgSyliusPaymentPlugin/Resources/config/state_machine.yaml" }
插件如何工作?
我们使用 Payum 和 Sylius 支付工作流来重定向到 Pledg 支付页面。Pledg 使用已经填写好的所有参数,以避免您再次填写。如果所有必填参数都已填写,您只需填写您的银行信息即可。否则,您可能需要填写您的地址和电话号码。
此 URL 中的所有参数都在签名参数中,对应于使用 HS256 算法编码的 JSON Web Token。
插件重新使用 Payum 来检索支付过程的结果。
我们还有两种类型的 Pledg 通知(标准模式和转账模式)的 webhook 路由。这两种类型也都是签名的:第一种使用自定义签名,第二种使用 JWT。
所有详细信息(参数、重定向 URL、Pledg 结果、Pledg 错误、Pledg 通知)都存储在支付实体中。
如何贡献?
您只需
- 检索包
- 运行
make install
以安装数据库 - 运行
make up-d
以在具有测试应用的 Docker 化环境中安装插件 - 如果您想检查一切是否正常,请运行
make ci
- 提交 PR 并检查 CI 是否为绿色。不要忘记在 CHANGELOG.md 和 Pledg\SyliusPaymentPlugin\RedirectUrl\ParamBuilder.php 文件中升级版本号。
该插件(目前)不使用 behat。为了补偿这一点,我们以经典方式使用 PHPUnit 编写了单元测试。