我创建了一个 payum 付款方式。我设置了一个存储付款详细信息的付款表单,然后生成付款安全令牌。到目前为止,一切似乎都正常,payum 会在存储中生成令牌。
但是,我似乎无法注册它。我不知道应该在哪里添加操作,以便在加载付款方式时使用它们。
我有以下问题。
-
在哪里添加对我的 PaymentFactory 的引用?目前,我在捆绑构建方法中加载 payum 扩展,并将 PaymentFactory 的实例添加到扩展中。这就是我需要做的全部吗?
- 我创建了一个捕获和状态操作。在哪里将这些操作添加到支付网关?我需要在 PaymentFactory 中注册它们吗?我向这两个类添加了转储和退出,当我在浏览器中运行付款时,它似乎永远不会在我设置的点上执行操作并退出。
任何帮助,将不胜感激
提前致谢 :)
有多种方法可以向付款添加操作:
-
最快的是使用定制工厂。
payum:
contexts:
you_name_it:
custom:
actions:
- your.action.service.from.container
- your.another.action.service.from.container
-
创建支付工厂。这是先进的技术,如果您需要自定义配置,它可能会很有用。为此你必须实施PaymentFactoryInterface
and 将其注册到 Payum 扩展 https://github.com/Payum/PayumBundle/blob/master/PayumBundle.php#L27。您可以直接在工厂中添加操作(需要对 symfony 容器有很好的了解):
<?php
function create(ContainerBuilder $container, $contextName, array $config)
{
$paymentDefinition = new Definition;
$paymentId = 'paymentId';
$container->setDefinition($paymentId, $paymentDefinition);
$paymentDefinition->addMethodCall('addAction', array(
new Reference('your.action.service.from.container')
));
}
或者您可以使用操作加载 xml 文件。操作服务必须有一个标签payum.action
。标签必须有一个factory
定义的。它必须与您创建的工厂的名称相匹配。例子:paypal_express_checkout_nvp.xml https://github.com/Payum/PayumBundle/blob/master/Resources/config/payment/paypal_express_checkout_nvp.xml#L47
<service
id="your.action.service.from.container"
class="%your.action.service.from.container.class%"
public="false"
>
<tag name="payum.action" factory="your_factory_name" />
</service>
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)