payplug/sylius-payplug-plugin

Sylius应用中的PayPlug支付插件。

安装数: 53,528

依赖项: 0

建议者: 0

安全: 0

星级: 10

关注者: 9

分支: 18

开放问题: 3

类型:sylius-plugin


README

License CI Version Total Downloads

Sylius的PayPlug支付插件

此插件允许您将Payplug支付集成到Sylius平台应用程序中,包括支付功能和订单退款。

要求

在渠道设置中,基础货币必须设置为EUR,因为支付网关仅支持此货币。

在本地环境中,插件将无法正常工作,因为您将无法收到支付网关的支付状态通知。

⚠️ 退款要求

由于对退款插件的依赖,您需要对插件进行一些调整,以便其正常工作。请遵循以下要求。

要生成退款时的“贷项凭证”,您的服务器需要安装WKHTMLTOPDF二进制文件,具体说明请参阅退款插件文档 # 预先要求

兼容性

安装

  1. 需要payplug/sylius-payplug-plugin

    composer config extra.symfony.allow-contrib true
    composer require payplug/sylius-payplug-plugin
  2. 将迁移应用到您的数据库

    bin/console doctrine:migrations:migrate
  3. 将Sylius覆盖的模板复制到templates/bundles/SyliusAdminBundle

    mkdir -p templates/bundles/SyliusAdminBundle/
    cp -R vendor/payplug/sylius-payplug-plugin/src/Resources/views/SyliusAdminBundle/* templates/bundles/SyliusAdminBundle/
  4. config/services.yaml中将Payplug添加到Sylius Refund Plugin的可退款支付方式

    parameters:
        locale: fr_FR
        sylius_refund.supported_gateways:
            - payplug
            - payplug_oney
            - payplug_bancontact
            - payplug_apple_pay
            - payplug_american_express
  5. config/routes.yaml中添加Payplug路由

    sylius_payplug:
       resource: "@PayPlugSyliusPayPlugPlugin/Resources/config/routing.yaml"
  6. 为Customer和PaymentMethod实体添加特质

  • App\Entity\Customer\Customer

    <?php
    
    declare(strict_types=1);
    
    namespace App\Entity\Customer;
    
    use Doctrine\ORM\Mapping as ORM;
    use PayPlug\SyliusPayPlugPlugin\Entity\Traits\CustomerTrait;
    use Sylius\Component\Core\Model\Customer as BaseCustomer;
    
    /**
    * @ORM\Entity
    * @ORM\Table(name="sylius_customer")
    */
    #[ORM\Entity]
    #[ORM\Table(name: 'sylius_customer')]
    class Customer extends BaseCustomer
    {
       use CustomerTrait;
    }
  • App\Entity\Payment\PaymentMethod

    <?php
    
    declare(strict_types=1);
    
    namespace App\Entity\Payment;
    
    use Doctrine\ORM\Mapping as ORM;
    use PayPlug\SyliusPayPlugPlugin\Entity\Traits\PaymentMethodTrait;
    use Sylius\Component\Core\Model\PaymentMethod as BasePaymentMethod;
    use Sylius\Component\Payment\Model\PaymentMethodTranslationInterface;
    
    /**
     * @ORM\Entity
     * @ORM\Table(name="sylius_payment_method")
     */
    #[ORM\Entity]
    #[ORM\Table(name: 'sylius_payment_method')]
    class PaymentMethod extends BasePaymentMethod
    {
        use PaymentMethodTrait;
    
        protected function createTranslation(): PaymentMethodTranslationInterface
        {
            return new PaymentMethodTranslation();
        }
    }
  • App\Entity\Payment\Payment

    <?php
    
    declare(strict_types=1);
    
    namespace App\Entity\Payment;
    
    use Doctrine\Common\Collections\ArrayCollection;
    use Doctrine\ORM\Mapping as ORM;
    use PayPlug\SyliusPayPlugPlugin\Entity\Traits\PaymentTrait;
    use Sylius\Component\Core\Model\Payment as BasePayment;
    
    /**
    * @ORM\Entity
    * @ORM\Table(name="sylius_payment")
    */
    #[ORM\Entity]
    #[ORM\Table(name: 'sylius_payment')]
    class Payment extends BasePayment
    {
       use PaymentTrait;
    }
  1. 处理翻译

    php bin/console translation:extract en PayPlugSyliusPayPlugPlugin --dump-messages
    php bin/console translation:extract fr PayPlugSyliusPayPlugPlugin --dump-messages
  2. 清除缓存

    php bin/console cache:clear

🎉 您现在可以添加Payplug支付方式了。在您的后台,转到配置 > 支付方式,然后点击创建,选择"Payplug"。

日志

如果您想在生产环境中跟踪日志,您需要在config/packages/prod/monolog.yaml中添加配置,日志应在var/log/prod.log中,可以通过短语[Payum][Payplug]进行搜索。

  monolog:
      handlers:
         ...
         
         payum:
             level: debug
             type: stream
             path: "%kernel.logs_dir%/%kernel.environment%.log"

自定义

您可以装饰可用服务,并扩展表单。

运行以下命令以查看与该插件共享的Symfony服务

$ bin/console debug:container payplug_sylius_payplug_plugin

模板覆盖

此插件覆盖了一些Sylius模板。如果您也打算覆盖它们,您应该在您的应用程序中检索它们。

将插件中覆盖的Sylius模板复制到您的模板目录中(例如 templates/bundles/)

mkdir -p templates/bundles/SyliusAdminBundle/
mkdir -p templates/bundles/SyliusShopBundle/
mkdir -p templates/bundles/SyliusUiBundle/
cp -R vendor/payplug/sylius-payplug-plugin/src/Resources/views/SyliusAdminBundle/* templates/bundles/SyliusAdminBundle/
cp -R vendor/payplug/sylius-payplug-plugin/src/Resources/views/SyliusShopBundle/* templates/bundles/SyliusShopBundle/
cp -R vendor/payplug/sylius-payplug-plugin/src/Resources/views/SyliusUiBundle/* templates/bundles/SyliusUiBundle/

您还需要编辑您的twig配置以添加您的路径,以避免我们的配置被前置

twig:
  paths:
    '%kernel.project_dir%/templates/bundles/SyliusAdminBundle': SyliusAdmin
    '%kernel.project_dir%/templates/bundles/SyliusShopBundle': SyliusShop
    '%kernel.project_dir%/templates/bundles/SyliusUiBundle': SyliusUi

开发

有关如何贡献的说明,请参阅贡献指南

许可证

此库受MIT许可证的约束。

Oney集成

要实现更好的Oney集成,您可以查看Oney增强文档

文档