spree 未找到付款

标签 spree

我正在将 actvie 商家网关集成到使用 spree 的 Rails 应用程序中,但总是出现 无法通过 :next 从 : payment 转换状态(原因:未找到付款),尽管有是一种付款方式。

我正在使用 Spree 3.1-stable 这是我的代码:

payment = @order.payments.create({
    amount: @order.total,
    payment_method: payment_method,
    source: credit_card,
  })
# @order.next! through Cannot transition state via :next from :payment (Reason(s): No payment found)
@order.next!

关于如何修复此类错误的任何想法

最佳答案

订单流经状态机,从购物车状态开始,到完成状态结束。可以使用 Checkout Flow API 配置中间状态。

默认状态如下:

购物车 地址 送货 支付 确认 完全的 仅当 payment_required? 时才会触发付款状态返回 true。

只有在确认需要确认时才会触发确认状态?返回 true。

只能通过以下两种方式之一达到完整状态:

订单无需付款。 订单需付款,且至少已收到订单总额作为付款。 假设订单满足下一个状态的条件,您将能够通过调用该对象的 next 将其转换到下一个状态。如果返回 false,则订单不符合条件。要找出无法转换的原因,请检查错误方法调用的结果。

将状态从付款更改为完成需要至少完成一笔付款。!

所以

payment = @order.payments.create({
amount: @order.total,
payment_method: payment_method,
source: credit_card, })

payment.complete!

# @order.next! through Cannot transition state via :next from :payment (Reason(s): No payment found)
@order.next!

关于 spree 未找到付款,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42410261/

相关文章:

cancan - Spree自定义角色权限

ruby-on-rails - 如何更改 spree 默认主页?

javascript - 当我在 Spree 商店中添加 Braintree Drop-in UI 时,付款方式选择出现问题

ruby-on-rails - S3 与 Heroku 上的 Spree Commerce 集成

ruby-on-rails - Asset Pipeline - 无法让我的 CSS 生效

ruby-on-rails - 升级 spree 到 1.0.0

ios - 如何在 iOS 应用程序中使用 API 上传产品图像并在 Spree 中设置产品属性

spree 分析仪表板

ruby-on-rails - Airbrake 和 Spree 商业 API : undefined method `airbrake_request_data`

ruby-on-rails - 强制 Spree Commerce 在生产模式下禁用 SSL