asioso/pimcore-payone-module

帮助电子商务和payone的组件

安装: 177

依赖: 0

建议者: 0

安全: 0

星标: 3

关注者: 1

分支: 1

开放问题: 0

类型:pimcore-bundle

v1.3.14 2020-06-16 08:53 UTC

README

先决条件

payment_frame_screenshot

安装

composer

将组件添加到composer.json中

composer require asioso/pimcore-payone-module

在扩展管理器中启用组件

[注意]确保已启用NumberGeneratorBundle。

否则,老样子 - 这将创建一个新的数据库表并导入一个ObjectBrick。

添加静态路由

您需要在pimcore的后端添加一个名为的静态路由。否则,结账过程将无法工作

pattern:
#(.*?)/paymentAction/([a-zA-Z\-\_]+)/([a-z\-]+)#


reverse:
/%prefix/paymentAction/%controller/%action

bundle:
PayoneBundle

controller:
%controller

action:
%action

variables:
prefix,controller,action

static_routes_screenshot

配置

在您的电子商务配置中将payone添加为支付提供商。在您的结账管理器中使用payone作为支付提供商

            default:
                payment:
                    provider: payone

以下是一个示例

# Configuration of payment providers, key is name of provider
providers:
    payone:
      provider_id: PayoneBundle\Ecommerce\PaymentManager\BsPayone
      profile: sandbox
      profiles:
        _defaults:
          data_processor: \AppBundle\Ecommerce\DataProcessor
          hash_algorithm: md5
          #paypal_activate_item_level: true
          partial: PayoneBundle:BsPayone:method_selection_seamless.html.php
          js: /bundles/payone/js/payone-frontend.js
          iframe_css_url: /bundles/payone/css/payment-iframe.css?elementsclientauth=disabled
          payment_methods:
            SEPA:
              icon: /static/img/payment/icons/sepa.png
              partial: PayoneBundle:BsPayone:payment_methods/sepa.html.php

            CCARD:
              icon: /static/img/payment/icons/cc.png
              partial: PayoneBundle:BsPayone:payment_methods/ccard.html.php

            PAYPAL:
              icon: /static/img/payment/icons/paypal.png

            PAYDIRECT:
              icon: /static/img/payment/icons/paydirect.png
              #partial: PayoneBundle:BsPayone:payment_methods/paydirect.html.php

            SOFORT:
              icon: /static/img/payment/icons/klarna.svg
              #partial: PayoneBundle:BsPayone:payment_methods/sofort.html.php

            GIROPAY:
              icon: /static/img/payment/icons/giropay.png
              partial: PayoneBundle:BsPayone:payment_methods/giropay.html.php


            INVOICE:
              icon: /static/img/payment/icons/invoice-logo.png
              # example: use alternative credentials for invoices
              aid: <aid_other-sandbox>
              mid: <mid_other-sandbox>
              portalid: <other-portal-id>
              key: <other-key>
              mode: '%env(PAYONE_MODE)%' #example use env file to set your configuration see- /examples/payment.env



        sandbox:
          aid: <aid_sandbox>
          mid: <mid_sandbox>
          portalid: <portalId>
          key: <sandbox-key>
          mode: test

        live:
          aid: <aid_sandbox>
          mid: <mid_sandbox>
          portalid: <portalId>
          key: <sandbox-key>
          mode: live

启用支付提供商

更新您的支付控制器以支持payone作为支付提供商。请参阅此控制器示例。以下是在支付框架动作中最重要的部分

    /**
     * payment iframe
     */
    public function paymentFrameAction(Request $request)
    {
        // init
        $cart = $this->getCart();
        $checkoutManager = Factory::getInstance()->getCheckoutManager($cart);

        if ($checkoutManager->isCommitted()) {
            throw new \Exception('Cart already committed');
        }

        $paymentInformation = $checkoutManager->startOrderPayment();
        $payment = $checkoutManager->getPayment();

        $language = substr($request->getLocale(), 0, 2);

        // payment config
        if($payment instanceof BsPayone) {
            // payone
            $payment->setPaymentInformation($paymentInformation);
            $config['orderIdent'] = $paymentInformation->getInternalPaymentId();
            $config['cart'] = $cart;
            $config['language'] =   substr($request->getLocale(), 0, 2);

        }

        else {
            throw new \Exception('Unknown Payment configured.');
        }

        // init payment
        $this->view->payment = $payment->initPayment($cart->getPriceCalculator()->getGrandTotal(), $config);        
        
    }
    

数据处理器

我们需要从早期结账步骤中获取一些信息,因此您的此类实现将用于填充个人信息和运货数据。请参阅此示例

回调URL

您需要在payone的商户服务门户中注册您的应用程序的回调地址。它使用您之前定义的静态路由,并看起来像这样

https://<your.domain>/de/paymentAction/BsPayone/confirm-payment-server-side

覆盖默认支付URL

如果您不希望依赖于此组件提供的生成成功/挂起/失败URL(基于静态路由 - 见上述),则可以使用symfony的依赖注入组件的另一种方法。

注册一个新的CompilerPass,请参阅此示例,它设置一个定制的生成服务,该服务生成一个定制的完成路由,但仍然依赖于默认实现的其他URL。请参阅此类以获取更多详细信息。

有任何疑问

请写信至info@asioso.com