Я просмотрел много сообщений, но нигде не нашел решения своего вопроса. В Интернете не найти ни одного места, где объясняется, как правильно добавить новый платежный шлюз в комплект Sylius Payum.
Я использую последнюю версию sylius
0.10.*
и хочу добавить новый платежный шлюз (Rabobank Omnikassa, конечная точка оплаты в Нидерландах).
Есть некоторая информация о том, как добавить PaymentFactory
для PayumPayumBundle
, однако структура папок этого пакета совсем не похожа на SyliusPayumBundle
. Я создал свой собственный Acme\Bundle\PayumBundle
, который переопределяет SyliusPayumBundle
.
Я хотел бы настроить его аналогично PaypalExpressCheckoutPaymentFactory.
конфиг/payum.yml
Здесь я просто проверяю несколько вещей, чтобы заставить Силиуса найти мои вещи.
payum:
contexts:
rabobank:
storages:
Sylius\Component\Core\Model\Order:
doctrine:
driver: orm
Sylius\Component\Core\Model\Payment:
doctrine:
driver: orm
custom:
actions:
- Shopfish\Bundle\PayumBundle\Payum\Rabobank\Action\CapturePaymentAction
- Shopfish\Bundle\PayumBundle\Payum\Rabobank\Action\NotifyOrderAction
конфиг/services.xml
Я не уверен, какие служебные теги использовать, где ..
<parameters>
<parameter key="shopfish.payum.rabobank.action.capture_payment.class">Shopfish\Bundle\PayumBundle\Payum\Rabobank\Action\CapturePaymentAction</parameter>
<parameter key="shopfish.payum.rabobank.action.notify_order.class">Shopfish\Bundle\PayumBundle\Payum\Rabobank\Action\NotifyOrderAction</parameter>
<parameter key="shopfish.payum.rabobank.action.payment_status.class">Shopfish\Bundle\PayumBundle\Payum\Rabobank\Action\PaymentStatusAction</parameter>
</parameters>
<services>
<!-- Rabobank Omnikassa -->
<service id="shopfish.payum.rabobank.action.capture_payment" class="%shopfish.payum.rabobank.action.capture_payment.class%" public="false">
<tag name="payum.action" factory="omnipay" />
</service>
<service id="shopfish.payum.rabobank.action.notify_order" class="%shopfish.payum.rabobank.action.notify_order.class%" public="false">
<argument type="service" id="event_dispatcher" />
<argument type="service" id="sylius.manager.payment" />
<argument type="service" id="finite.factory" />
<tag name="payum.action" factory="paypal_express_checkout_nvp" />
</service>
</services>
конфиг/config.yml
И конечно я прописываю шлюз в файле config.yml
sylius_payment:
gateways:
rabobank: Rabobank Omnikassa
Исключение: неверная конфигурация пути
Кажется, он не распознает Rabobank
как допустимый тип. Где зарегистрировать новый тип?
InvalidConfigurationException: Invalid configuration for path "payum.contexts.rabobank.omnipay": Given type Rabobank is not supported. These types AuthorizeNet_AIM, AuthorizeNet_SIM, Buckaroo, CardSave, Dummy, Eway_Rapid, GoCardless, Manual, Migs_ThreeParty, Migs_TwoParty, Mollie, MultiSafepay, Netaxept, NetBanx, PayFast, Payflow_Pro, PaymentExpress_PxPay, PaymentExpress_PxPost, PayPal_Express, PayPal_Pro, Pin, SagePay_Direct, SagePay_Server, SecurePay_DirectPost, Stripe, TargetPay_Directebanking, TargetPay_Ideal, TargetPay_Mrcash, TwoCheckout, WorldPay are supported.
Регистрация платежной фабрики
В этом файле вы можете увидеть, как они регистрируют фабрики. в Паюме. Я хотел бы сделать то же самое в Sylius из своего собственного Bundle.
Какие хорошие шаги можно предпринять отсюда?