ruby-on-rails - 保存来自 Stripe Webhook Rails 的数据时出现问题
问题描述
我想从 Stripe webhook 获取数据(客户 ID),然后将其保存到我的数据库中,我得到了数据,但问题是我的数据库上的 customer_id 仍然为零。这是我的代码
StripeEvent.configure do |events|
events.all do |event|
if event.type == 'customer.created'
customer = event.data.object
user = User.where('customer_id LIKE ?', "%#{customer['id']}%").first
if user
customer = Stripe::Customer.retrieve(JSON.parse(user.customer_id)['id'])
user.customer_id = customer.to_json
user.save!
end
end
end
end
这段代码:
user = User.where('customer_id LIKE ?', "%#{customer['id']}%").first
给出这个输出:
SELECT "users".* FROM "users" WHERE (customer_id LIKE '%cus_EEIReNX3M4je2U%') ORDER BY "users"."id" ASC LIMIT
当我到达我的数据库时,我的 customer_id 字段仍然为零,这是输出:
<User id: 3, email: "achielinda44@yahoo.com", created_at: "2018-12-27 03:47:41", updated_at: "2018-12-27 03:47:41", first_name: "Achie", last_name: nil, gender: nil, gender_preferences: nil, description: "trial stripe", photo: nil, provider: nil, uid: nil, name: nil, image: nil, customer_id: nil>
谁能看到我错过的东西?我将非常感谢您的帮助。谢谢!
解决方案
我的代码全错了,但不是全错。用户对象为 nil,因为我试图获取一个尚不可用的 customer_id,所以我使用电子邮件获取了用户,然后将条带客户 ID 传递给他们,最后保存了他们。有效!
StripeEvent.configure do |events|
events.all do |event|
if event.type == 'customer.created'
customer = event.data.object
user = User.find_by(email: customer.email)
if user
user.customer_id = customer.id
user.save!
end
end
end
推荐阅读
- shopify - 如何在shopify中查找已售产品的总数?
- sql-server - 在 SQL Server Management Studio 中添加表时出错
- php - 我如何在一段时间内迭代我的数据库数据,因为我需要从多个表中获取它
- javascript - 对具有相同类的多个选择应用更改功能
- html - 无法为标签内的标签设置 ID 值
- automated-tests - 无法在无头 chrome 中运行我的 CodeceptJS 测试用例
- c# - C#:Debug.Assert() 条件复杂
- regex - 匹配任何至少偏离给定字符串一个字符的字符串
- javascript - 如何使用jQuery在按下按钮时在textarea中向上、向下、向左、向右移动光标?
- java - 如何执行与 JPA 标准相关的查询