0

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/>

エラーが発生しました: Symbol を Integer に変換できません。

私が言ったように、投稿の上部にあるバージョンは問題なく機能し、突然機能しなくなるまで、何が起こっているのかわかりません。おそらく言及する価値があるのは、そのトリガー イベントの可能性があると思われるのは、ライブ キーではなくテスト API キーを使用して誤ってコードをプッシュおよびデプロイし、ユーザーのアカウントがライブ キーを使用して作成されたことです。しかし、これを見つけて、コードを適切なライブ キーに変更したところ、この問題が発生し始めました。(間違ったキーが使用されていた場合、Stripe データベースのテスト バージョンに顧客が存在しないというエラーが発生していました。)

私は、a) API から間違ったものを呼び出していたときにコードがどのように機能したか (このコードを継承しました)、b) 機能しなくなった理由と再び機能させる方法について困惑しています。何が壊れていますか?ありがとう。

4

1 に答える 1

3

Stripe API Upgrades ページには、次の最近の更新がリストされています。これは、表示されているものと関係があるようです。

2013-07-05 Customer オブジェクトには、完全に展開された active_card の代わりに、cards サブリストと default_card id が含まれるようになりました。default_card 属性は、顧客を取得するときにカード オブジェクトに展開できますが、デフォルトでは展開されません。

Stripe の顧客オブジェクトは、カードのリストと別の default_card 属性を返すようになりました。これは、私が知る限り、カード リストで見つけることができるデフォルト カードの ID です。

于 2013-07-16T18:16:13.277 に答える