ruby-on-rails - 升级 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
所以我觉得它正在正确读取我的令牌并且密钥是正确的。会不会是我用来生成令牌的计费信息不好?我已经填写了许多正确地址和测试信用卡号码的不同组合。
我没有想法,任何帮助都会很好。
解决方案
想通了这个问题。
国家/地区输入存在问题。原来是ISO alpha-2 code
为国家工作的。但是一旦我更新了 gem,ISO alpha-2 code
就不再工作了。前端验证将起作用,它会创建一个很好的令牌,但后端不会接受该令牌。
所以使用US
不再起作用但United States
起作用了。
我最终从这个列表中建立了一个下拉列表:https ://docs.recurly.com/docs/countries-provinces-and-states
推荐阅读
- c# - 有没有一种简单的方法可以在其他类方法中使用 2 个不同的类
- r - dplyr:summary_at 中的自定义函数
- javascript - 错误 - 无法读取 null 的属性“toLowerCase”
- python - 如何使用套接字在 Python 中处理多人游戏中的数据
- r - 在 for 循环中出现 tryCatch 错误“找不到对象”
- angular - 如何使用 Angular 8+ 从控制器检查 Ionic 框架中的选择框选项?
- excel - 根据特定范围内的活动单元格显示行号和列号
- azure - Azure Function App 代理正在删除查询字符串
- android - E/BitmapFactory:无法解码流:java.io.FileNotFoundException:null:打开失败:ENOENT(没有这样的文件或目录)
- java - 从原始 myString 中删除输入字符串