Проблема с сохранением данных, поступающих от Stripe Webhook Rails - PullRequest
0 голосов
/ 27 декабря 2018

Я хочу получить данные (идентификатор клиента) из веб-крючка Stripe, затем сохранить их в моей базе данных, я получаю данные, но проблема в том, что 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>

Может кто-нибудь увидеть что-то, что я пропускаю?Я буду очень признателен за помощь.Спасибо!

1 Ответ

0 голосов
/ 04 января 2019

Мой код был неправильным, но не все.Пользовательский объект был nil, потому что я пытался получить customer_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
...