asioso / pimcore-payone-module
帮助电子商务和payone的组件
v1.3.14
2020-06-16 08:53 UTC
Requires
- guzzlehttp/guzzle: ~6.0
- pimcore/pimcore: ^6
README
先决条件
- PHP 7.1或更高版本(https://secure.php.net/)
- Composer(https://getcomposer.org/download/)
- 使用
(v5.7或更高版本)的Pimcore安装 - PAYONE账户或测试账户(https://www.payone.com/kontakt/)
安装
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
配置
在您的电子商务配置中将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