2016-09-23 4 views
0

У меня есть установка Sylius, которую я пытаюсь подключить к Stripe для платежей. Я прочитал немного и узнал, что Stripe включен в Payum. Хорошо, выключитесь, чтобы установить Payum.Включить полосу в Sylius

Так я последовал за первую часть инструкции здесь: https://github.com/Payum/Stripe/blob/master/Resources/docs/checkout.md

php composer.phar require payum/stripe php-http/guzzle6-adapter 

После этого, казалось, что Sylius и Symfony их пути разошлись с конфиги, потому что все, что я читал о Payum на ссылках sylius стандартный файл config.yml, а не файл config.php, на который ссылается документация Payum. Так что я нашел базовую конфигурацию в Интернете в другом месте вместо этого, и добавил это к моему config.yml:

payum: 
    security: 
     token_storage: 
      myBundle\CoreBundle\Entity\PayumSecurityToken: 
       doctrine: 
        driver: orm 
    contexts: 
     stripe: 
      omnipay: 
       type: Stripe 
       options: 
        apiKey: my_key_is_here 
        testMode: true 
       actions: 
         - sylius.payum.stripe.action.capture_order_using_credit_card 
         - sylius.payum.action.obtain_credit_card 
         - sylius.payum.action.order_status 
         - sylius.payum.action.execute_same_request_with_payment_details 
      storages: 
       myBundle\CoreBundle\Entity\Order: 
         doctrine: 
          driver: orm 
       Sylius\Bundle\PaymentsBundle\Model\Payment: 
         doctrine: 
          driver: orm 

sylius_payments: 
    driver: doctrine/orm 
    gateways: 
      stripe: Stripe 

С этими изменениями, теперь я получаю ошибку:

There is no extension able to load the configuration for "sylius_payments" (in /Users/Me/Code/mysite/app/config/config.yml). Looked for namespace "sylius_payments", found "sylius_installer", "sylius_order", "sylius_money", "sylius_currency", "sylius_contact", "sylius_locale", "sylius_settings", "sylius_cart", "sylius_product", "sylius_archetype", "sylius_channel", "sylius_variation", "sylius_attribute", "sylius_taxation", "sylius_shipping", "sylius_payment", "sylius_mailer", "sylius_report", "sylius_promotion", "sylius_addressing", "sylius_inventory", "sylius_taxonomy", "sylius_flow", "sylius_pricing", "sylius_sequence", "sylius_content", "sylius_search", "sylius_rbac", "sylius_user", "sylius_ui", "sylius_admin", "sylius_shop", "sylius_metadata", "sylius_association", "sylius_review", "sylius_core", "sylius_web", "sylius_resource", "sylius_grid", "winzou_state_machine", "sylius_api", "sonata_block", "cmf_core", "cmf_block", "cmf_content", "cmf_routing", "cmf_menu", "cmf_create", "cmf_media", "doctrine", "doctrine_cache", "doctrine_phpcr", "assetic", "framework", "monolog", "security", "swiftmailer", "twig", "sonata_intl", "bazinga_hateoas", "fos_oauth_server", "fos_rest", "fos_elastica", "knp_gaufrette", "knp_menu", "knp_snappy", "liip_imagine", "payum", "jms_serializer", "jms_translation", "stof_doctrine_extensions", "white_october_pagerfanta", "doctrine_migrations", "sylius_fixtures", "sylius_payum", "sylius_theme", "debug", "web_profiler" in /Users/Me/Code/mysite/app/config/config.yml (which is being imported from "/Users/Me/Code/mysite/app/config/config_dev.yml").

Я не уверен, где отсюда, так как на эту тему очень мало документов.

+0

Возможно, это 'sylius_payments' ошибочно, вместо этого может быть' sylius_payment' – yceruto

+0

Действительно, это действительно начало бросать другую ошибку. Хороший улов! Теперь он жалуется: InvalidConfigurationException в строке ArrayNode.php 317: Нераспознанная опция «контексты» в разделе «payum» – carbide20

+0

Вы установили расширение полосы плательщика, но пытаетесь настроить мост ominpay. Это две совершенно разные вещи. И вы используете очень старую версию, не так ли? Рассмотрите возможность обновления до более новых версий, множество исправлений и новых функций. –

ответ

1

Я хотел бы предложить возможный ответ. Основываясь на помощи, полученной от комментариев и внешних ресурсов, я сформулировал, что моему config.yml может потребоваться следующее (после установки через композитора, конечно: php composer.phar требует payum/stripe php-http/guzzle6-adapter)

payum: 
    gateways: 
     stripe: 
      factory: stripe_checkout 
      publishable_key: my_pusblishable_key 
      secret_key: my_secret_key 

Это, кажется, все, что нужно, чтобы не вызывать ошибку при запуске, как и в моем исходном вопросе. С тех пор я очистил кеш и перезапустил сервер. Тем не менее, я не вижу никаких новых параметров, появляющихся в моей панели «Методы оплаты» в администраторе Sylius. Разве это не должно теперь проявляться как жизнеспособный вариант? Я не буду принимать свой ответ, пока мы не выясним, что нужно, чтобы действительно заставить Stripe работать.

редактировать

Похоже, что другой немного я имел, активируя шлюз я только что определили, было правильным. Добавив это, теперь все работает, и шлюз корректно отображается на панели администратора. Ура!

sylius_payments: 
    driver: doctrine/orm 
    gateways: 
      stripe: Stripe 

Полное решение для получения Stripe, работающих в Sylius является:

Установить с помощью композитора:

Добавьте это в config.yml:

payum: 
    gateways: 
     stripe: 
      factory: stripe_checkout 
      publishable_key: my_publishable_key 
      secret_key: my_secret_key 

sylius_payment: 
    driver: doctrine/orm 
    gateways: 
      stripe: Stripe 

Очистить кэш:

php app/console cache:clear 

Перезапустите веб-сервер для хорошей оценки. Это оно!