【发布时间】:2021-03-11 07:57:37
【问题描述】:
我只是想在成功的 web hook 调用后将用户的条带订阅信息添加到 SQLlite db。然而,尽管每个条带仪表板的网络挂钩成功,但最终结果始终是“没有被存储”。有谁知道为什么以及我该怎么做?
@blueprint.route('/Dashboard') #change it to calendar retrieve
def test_api_request():
user = User.query.filter_by(email=UserEmail).first()
session['id'] = user.id
@blueprint.route("/stripe_webhook", methods=["POST"])
def stripe_webhook():
payload = request.get_data(as_text=True)
sig_header = request.headers.get("Stripe-Signature") #previous doc
event = None
try:
event = stripe.Webhook.construct_event(
payload, sig_header, stripe_keys["endpoint_secret"]
)
except ValueError as e:
return "Invalid payload", 400
except stripe.error.SignatureVerificationError as e:
# Invalid signature
return "Invalid signature", 400
if event["type"] == "checkout.session.completed":
stripeData = event["data"]["object"]
stripe_customer_id = stripeData['customer']
stripe_subscription_id = stripeData['subscription']
user = User.query.filter_by(id=str(session['id'])).first()
user = User(stripeSubscripstionId= stripe_subscription_id, stripeCustomerId= stripe_customer_id)
db.session.add(user)
db.session.commit()
return {}
@blueprint.route("/success")
def success():
user = User.query.filter_by(id=str(session['id'])).first()
if user.stripeSubscriptionId:
return render_template("/General/success.html")
return "didn't get stored"
【问题讨论】:
标签: python sqlite flask stripe-payments webhooks