我能想到的最好的办法是从每个客户的条带中获取客户订阅状态:
2.1.1 :082 > a =Stripe::Customer.all.collect{|c| c.subscriptions.collect{|s| [c.id, s.status]}}.reject(&:empty?)
=> [[["cus_5VT4xC8uCoVIV5", "trialing"]], [["cus_5VT4Oh4AX74vqN", "trialing"]], [["cus_5VT4GFL6pPvsmH", "trialing"]], [["cus_5VT4uePgqT4Rrz", "trialing"]], [["cus_5VT4F8c8iK9cG8", "trialing"]], [["cus_5VT4zO0iMjoKsu", "trialing"]], [["cus_5VT4XQkAKCmRmg", "trialing"]]]
2.1.1 :083 >
在我的例子中,他们都是演示客户,所以他们都有试用状态,接下来你应该循环保存订阅状态等于 active 或 trial 的客户并保存到变量中,然后使用客户 ID从 stripe 你可以在你的应用中找到用户。
附言如果你需要它作为 json (丑陋,但是......你能做什么):
2.1.1 :111 > b = a.map{|r| "#{r[0][0]}, #{r[0][1]}"}.join(', ').split(', ')
=> ["cus_5VT4xC8uCoVIV5", "trialing", "cus_5VT4Oh4AX74vqN", "trialing", "cus_5VT4GFL6pPvsmH", "trialing", "cus_5VT4uePgqT4Rrz", "trialing", "cus_5VT4F8c8iK9cG8", "trialing", "cus_5VT4zO0iMjoKsu", "trialing", "cus_5VT4XQkAKCmRmg", "trialing"]
2.1.1 :112 > h = Hash[*b]
=> {"cus_5VT4xC8uCoVIV5"=>"trialing", "cus_5VT4Oh4AX74vqN"=>"trialing", "cus_5VT4GFL6pPvsmH"=>"trialing", "cus_5VT4uePgqT4Rrz"=>"trialing", "cus_5VT4F8c8iK9cG8"=>"trialing", "cus_5VT4zO0iMjoKsu"=>"trialing", "cus_5VT4XQkAKCmRmg"=>"trialing"}
2.1.1 :113 >
更新
https://stripe.com/docs/api#pagination 使用 starting_after 和 ending_before 参数来浏览条纹客户记录。