在Sylius中启用Stripe

时间:2016-09-23 20:28:25

标签: symfony stripe-payments sylius payum

我安装了Sylius,我正试图连接到Stripe进行付款。我做了一些阅读,发现Stripe包含在Payum中。好的,关闭安装Payum。

所以我按照这里的第一部分说明进行操作:https://github.com/Payum/Stripe/blob/master/Resources/docs/checkout.md

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

在那之后,似乎Sylius和Symfony分别使用configs,因为我在sylius上读到的有关Payum的所有内容都引用了标准的config.yml文件,而不是Payum中引用的config.php文件。文档。所以我在其他地方找到了在线的基本配置,并将其添加到我的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

通过这些更改,我现在收到错误:

  

没有可以加载配置的扩展程序   “sylius_payments”(在/Users/Me/Code/mysite/app/config/config.yml中)。   查找命名空间“sylius_payments”,找到“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”,“资产”,“框架”,“独白”,   “安全”,“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(正在导入   来自“/Users/Me/Code/mysite/app/config/config_dev.yml”)。

我不确定从哪里开始,因为这个主题的文档很少。

1 个答案:

答案 0 :(得分:1)

我想提出一个可能的答案。基于我从评论和外部资源中获得的帮助,我已经制定了我的config.yml可能只需要以下内容(当然通过作曲家安装后:php composer.phar需要payum / stripe php-http / guzzle6-适配器)

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中工作的完整解决方案是:

通过composer安装:

将此添加到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

重新启动Web服务器。那就是它!