3brs/sylius-gpwebpay-payment-gateway-plugin 问题修复 & 功能扩展

解决BUG、新增功能、兼容多环境部署,快速响应你的开发需求

邮箱:yvsm@zunyunkeji.com | QQ:316430983 | 微信:yvsm316

3brs/sylius-gpwebpay-payment-gateway-plugin

最新稳定版本:v2.4.0

Composer 安装命令:

composer require 3brs/sylius-gpwebpay-payment-gateway-plugin

包简介

GPWebpay payment gateway plugin for Sylius

README 文档

README

GP webpay Payment Gateway Plugin

Features

  • Card payments as supported by GP webpay
  • Fully integrated as Sylius payment method
  • Using more different gateways at once or per channel

Installation

  1. Run $ composer require 3brs/sylius-gpwebpay-plugin.

  2. Add plugin classes to your config/bundles.php:

    return [
       ...
       ThreeBRS\SyliusGPWebpayPaymentGatewayPlugin\ThreeBRSSyliusGPWebpayPaymentGatewayPlugin::class => ['all' => true],
    ];
  3. Load plugin configuration by config/packages/threebrs_sylius_gpwebpay_payment_gateway_plugin.yaml:

    imports:
     - { resource: "@ThreeBRSSyliusGPWebpayPaymentGatewayPlugin/Resources/config/config.yaml" }
  4. Generate keys to keep gateway credentials safe:

    bin/console sylius:payment:generate-key

Usage

  • Create GP webpay payment type
    in Sylius admin panel, Configuration -> Payment methods

Sylius 2 pay workflow

  • Customer hit Pay button
  • Request goes to \Sylius\Bundle\CoreBundle\OrderPay\Controller\OrderPayController::payAction
  • That will emit redirect 302 by \Sylius\Bundle\CoreBundle\OrderPay\Provider\PaymentRequestPayResponseProvider::getResponse to route like /en_US/payment-request/pay/0197204a-8284-7301-9b30-e151c7d14ec5
  • That request goes to \Sylius\Bundle\CoreBundle\OrderPay\Action\PaymentRequestPayAction::__invoke
    • that will dispatch command to process the payment in \Sylius\Bundle\PaymentBundle\Processor\HttpResponseProcessor::process
    • that will find command provider fitting the payment method in \Sylius\Bundle\PaymentBundle\CommandProvider\AbstractServiceCommandProvider::provide, in our case \ThreeBRS\SyliusGPWebpayPaymentGatewayPlugin\CommandProvider\CapturePaymentRequestCommandProvider
    • the provider will give command \ThreeBRS\SyliusGPWebpayPaymentGatewayPlugin\Command\CapturePaymentRequest
    • that will be handled by \ThreeBRS\SyliusGPWebpayPaymentGatewayPlugin\CommandHandler\CapturePaymentRequestHandler
      • ⚠️ if messenger is configured as async, the payment will not be processed immediately and customer will end on Pay page again ⚠️
      • that command handler may resolve the payment, but in our case it will just prepare payload for the payment gateway webpage
    • then the "capture" response is processed by \ThreeBRS\SyliusGPWebpayPaymentGatewayPlugin\ResponseProvider\CaptureHttpResponseProvider which in our case will return a redirect to the payment gateway webpage

Development

Usage

  • Develop your plugin in /src
  • See bin/ for useful commands

Testing

After your changes you must ensure that the tests are still passing.

make ci

License

This library is under the MIT license.

Credits

Developed by 3BRS
Forked from manGoweb.

统计信息

  • 总下载量: 17
  • 月度下载量: 0
  • 日度下载量: 0
  • 收藏数: 0
  • 点击次数: 1
  • 依赖项目数: 0
  • 推荐数: 0

GitHub 信息

  • Stars: 0
  • Watchers: 2
  • Forks: 0
  • 开发语言: PHP

其他信息

  • 授权协议: MIT
  • 更新时间: 2024-07-24