我在将数据从 Stripe 检索到我的 rails 应用程序时遇到了一些问题。很奇怪,因为这个周末才开始断,我不知道为什么。将代码回滚到先前的提交,此时我确定该代码有效的页面,没有工作。在之前的提交中,代码仍然被破坏。此外,我没有更改代码。我试图找出问题所在。我已经隔离了问题出在哪一行代码,但我不确定发生了什么。
以前,在视图中,我们有以下代码。此代码有效,直到本周末。
<%= @stripe_details[:active_card][:type] %>, ending in <%= @stripe_details[:active_card][:last4] %><br/>
控制器中的以下代码支持这一点:
if current_user.stripe_id
@stripe_details = Stripe::Customer.retrieve(current_user.stripe_id).to_hash
end
梳理了 Stripe API 文档后,似乎问题在于 Stripe 没有返回 active_card。它确实返回一个 default_card。但是,当我将代码切换为以下内容时:
<%= @stripe_details[:default_card][:type] %>, ending in <%= @stripe_details[:default_card][:last4] %><br/>
我收到一个错误:无法将符号转换为整数。
我不知道发生了什么,因为正如我所说,帖子顶部的版本没有问题,直到突然没有问题。可能值得一提的是,我不小心使用测试 API 密钥而不是实时密钥推送和部署了代码,并且用户的帐户是使用实时密钥创建的,这似乎是一个潜在的触发事件。但是,我发现了这一点,并将代码更改为正确的实时键,并且开始出现此问题。(当使用了错误的键时,我收到了一条错误,提示客户在 Stripe 数据库的测试版本中不存在。)
我只是对 a) 当我们从 API 调用错误的东西时我们的代码如何工作(我继承了这个代码)以及 b) 为什么它停止工作以及如何让它再次工作感到困惑。什么坏了?谢谢。