我正在使用rails 5构建市场。我已经能够使用'stripe gem'
使用条带连接设置“自定义管理帐户”。
我也在使用'stripe_event gem'
来捕捉来自条纹的webhook。我可以使用标准条带帐户毫无问题地执行此操作。
但是,根据stripe docs使用条带连接时,我必须在某处添加另一个account attribute
。由于挂钩的事件在主要条带帐户中不存在,但在连接的帐户中不存在。
完全有道理我只是不知道如何更新我的课程。
Stripe.api_key = Rails.configuration.stripe[:secret_key]
class RecordAccount
def call(event)
myevent = event.data.object
#Look up StripeAccount in our database
stripe_account = StripeAccount.where(stripe_id: myevent.account).last
#Record Verification details and status in StripeAccount
u = stripe_account.update_attributes(
verification_status: myevent.legal_entity.verification.status,
verification_details: myevent.legal_entity.verification.details,
)
u.save
end
end
StripeEvent.configure do |events|
events.subscribe 'account.updated', RecordAccount.new
end
我从上面得到的回复是404 - 事件XXXX未找到。这是有道理的,但我该如何解决它。我知道这是一个简单的答案,我一直在看屏幕太久了。
答案 0 :(得分:0)
我还没有使用过您提及的宝石,但我对连接帐户事件也有同样的问题。就我而言,我只是在我的应用中设置了一个端点来接收Stripe webhook事件。
重要的是,对于关联帐户,您必须使用"帐户"有效负载中的属性以及事件ID,而对于涉及您的帐户的事件,您只需使用事件ID。
这是我的意思的代码示例
begin
payload = JSON.parse(request.body.read)
# Verify the event by fetching it from Stripe
if payload['account'].present?
# This is for connected accounts
Stripe::Event.retrieve(payload['id'], stripe_account: payload['account'])
else
# Normal events
Stripe::Event.retrieve(payload['id'])
end
rescue Stripe::StripeError => e
# Handle this however you prefer
raise ActiveRecord::RecordNotFound.new(e)
end
希望它有所帮助!