Как реализовать платежный шлюз Klarna с Sylius?
Я безуспешно пытаюсь добавить шлюз для проверки платежей Klarna... Я не вижу Klarna Checkout в пользовательском интерфейсе администратора!
Понятия не имею, что мне здесь не хватает, но, как я понял, все, что мне нужно сделать, это установить платеж через шлюз через composer, затем добавить поля в файл config.yml
Нужно ли создавать файл KlarnaGatewayConfigurationType.php? если да, то где мне его добавить и что еще мне делать?
Вот шаги, которые я выполнил: Установил Klarna: composer require klarna/checkout
Затем я добавил в app\config\config.yml
этот код:
payum:
gateways:
klarna_checkout:
factory: klarna_checkout
secret: 'required'
merchant_id: 'required'
terms_uri: ''
checkout_uri: ''
sandbox: true
sylius_payment:
gateways:
klarna_checkout: klarna_checkout
php bin/console payum:gateway:debug
дал мне это:
Order of actions, apis, extensions matters
Found 3 gateways
offline (Payum\Core\Gateway):
........................................................................
klarna_checkout (Payum\Core\Gateway):
Actions:
Payum\Core\Bridge\Symfony\Action\GetHttpRequestAction
Payum\Core\Bridge\Symfony\Action\ObtainCreditCardAction
Sylius\Bundle\PayumBundle\Action\CapturePaymentAction
Sylius\Bundle\PayumBundle\Action\ExecuteSameRequestWithPaymentDetailsAction
Sylius\Bundle\PayumBundle\Action\ResolveNextRouteAction
Payum\Core\Action\CapturePaymentAction
Payum\Core\Action\AuthorizePaymentAction
Payum\Core\Action\PayoutPayoutAction
Payum\Core\Action\ExecuteSameRequestWithModelDetailsAction
Payum\Core\Bridge\Twig\Action\RenderTemplateAction
Payum\Core\Action\GetCurrencyAction
Payum\Core\Action\GetTokenAction
Payum\Klarna\Checkout\Action\AuthorizeRecurringAction
Payum\Klarna\Checkout\Action\AuthorizeAction
Payum\Klarna\Checkout\Action\NotifyAction
Payum\Klarna\Checkout\Action\StatusAction
Payum\Klarna\Checkout\Action\SyncAction
Payum\Klarna\Checkout\Action\ConvertPaymentAction
Payum\Klarna\Checkout\Action\Api\CreateOrderAction
Payum\Klarna\Checkout\Action\Api\UpdateOrderAction
Payum\Klarna\Checkout\Action\Api\FetchOrderAction
Extensions:
Sylius\Bundle\PayumBundle\Extension\UpdatePaymentStateExtension
Payum\Bundle\PayumBundle\Profiler\PayumCollector
Payum\Core\Extension\GenericTokenFactoryExtension
Payum\Core\Bridge\Psr\Log\LoggerExtension
Payum\Core\Bridge\Psr\Log\LogExecutedActionsExtension
Payum\Core\Extension\StorageExtension
Storage: Payum\Core\Bridge\Doctrine\Storage\DoctrineStorage
Model: Sylius\Component\Core\Model\Order
Payum\Core\Extension\StorageExtension
Storage: Payum\Core\Bridge\Doctrine\Storage\DoctrineStorage
Model: Sylius\Component\Core\Model\Payment
Payum\Core\Extension\EndlessCycleDetectorExtension
Apis:
Payum\Core\Bridge\Httplug\HttplugClient
Payum\Klarna\Checkout\Config
Offline (Payum\Core\Gateway):
........................................................................
Последний шаг: php bin/console cache:clear
Что я здесь не так делаю?
2 ответа
Да, вы также должны добавить форму типа конфигурации шлюза, это выглядит так в app/config/services.yml
:
sylius.form.type.gateway_configuration.swipe:
class: Payum\Swipe\Type\SwipeGatewayConfigurationType
tags:
- { name: sylius.gateway_configuration_type, type: swipe, label: Swipe }
- { name: form.type }
Включенный класс должен содержать форму для настройки в Sylius Admin. Вы можете найти другие примеры этого в Sylius\Bundle\PayumBundle\Form\Type
Пространство имен.
Недавно версия Klarna API была обновлена со старой версии V2 до последней версии V3. Поэтому я реализовал то же самое для Klarna Checkout и Klarna Payment.