1

我将 Payola-payments 1.5.1 与 Rails 5.0.1 一起使用,当我尝试在 Stripe 测试模式帐户上付款时遇到以下错误:No route matches [GET] "/payola/events" Payola has通往“/payola/events”的路由,该路由指向 Webhooks 控制器,但它只响应 Post 方法。这是来自事务控制器的重定向,传递的参数是 {"action"=>"new", "controller"=>"users/sessions"}

Payola 以前在我的电脑上运行良好。我能想到的唯一变化是一些 gem 更新,包括切换到 5.0.1。

有没有人遇到过这个?任何帮助将不胜感激。

4

1 回答 1

1

覆盖 Payola Engine 给出的默认路由。我像这样设置我的路线。它适用于 Rails 5.2。

  scope module: 'payola' do
    mount StripeEvent::Engine => 'payola/events', as: :payola
    post 'payola/buy/:product_class/:permalink' => 'transactions#create', as: :buy
    get 'payola/confirm/:guid' => 'transactions#show', as: :confirm
    get 'payola/status/:guid' => 'transactions#status', as: :status
    post 'payola/subscribe/:plan_class/:plan_id' => 'subscriptions#create', as: :subscribe
    get 'payola/confirm_subscription/:guid' => 'subscriptions#show', as: :confirm_subscription
    get 'payola/subscription_status/:guid' => 'subscriptions#status', as: :subscription_status
    delete 'payola/cancel_subscription/:guid' => 'subscriptions#destroy', as: :cancel_subscription
    post 'payola/change_plan/:guid' => 'subscriptions#change_plan', as: :change_subscription_plan
    post 'payola/change_quantity/:guid' => 'subscriptions#change_quantity', as: :change_subscription_quantity
    post 'payola/update_card/:guid' => 'subscriptions#update_card', as: :update_card
    post 'payola/update_customer/:id' => 'customers#update', as: :update_customer
    post 'payola/create_card/:customer_id' => 'cards#create', as: :create_card
    delete 'payola/destroy_card/:id/:customer_id' => 'cards#destroy', as: :destroy_card
  end

最后,我相信禁用 Rails 5.0+ 默认启用的 disable_with。它将停止 Payola 用于处理付款的 JS 表单代码。

<%= f.submit "Submit" data: {disable_with: false} %>
于 2019-01-16T21:28:15.463 回答