首页 > 解决方案 > 升级 Recurly Gem 时 billing_info 无效

问题描述

ruby gem 从版本 2.9.3 -> 2.18.0 开始。一直在为 Recurly.js 使用 v4,所以它保持不变。

这已经工作了多年,我决定升级 gem。

我正在生成前端令牌:

recurly.configure({ publicKey: RECURLY_JS_PUBLIC_KEY })

它生成一个令牌并将其传递给我们执行的后端:

Recurly::Account.create!(
  account_code: account_code,
  billing_info: { token_id: params['recurly-token'] }
)

它不断引发此错误:

Recurly::Resource::Invalid (billing_info is invalid)

我一直在搞砸这个很多。放入随机字符串作为令牌或等待 20 分钟让令牌过期将引发不同的错误消息:

Recurly::Resource::Invalid:  Token (billing_info.token_id) is either invalid or expired

所以我觉得它正在正确读取我的令牌并且密钥是正确的。会不会是我用来生成令牌的计费信息不好?我已经填写了许多正确地址和测试信用卡号码的不同组合。

我没有想法,任何帮助都会很好。

标签: ruby-on-railsrubyrecurly

解决方案


想通了这个问题。

国家/地区输入存在问题。原来是ISO alpha-2 code为国家工作的。但是一旦我更新了 gem,ISO alpha-2 code就不再工作了。前端验证将起作用,它会创建一个很好的令牌,但后端不会接受该令牌。

所以使用US不再起作用但United States起作用了。

我最终从这个列表中建立了一个下拉列表:https ://docs.recurly.com/docs/countries-provinces-and-states


推荐阅读