借助此功能,我正在创建条带结帐会话,该会话将为我提供付款网址。 我在会话中传递 client_reference_id = sender_id 我如何在我的付款意图成功有效负载中获取它。 这两者是如何连接的帮助我。
def generate_payment_link(sender_id, selected_option_title, email_address): #genrating payment link
try:
# Create a Checkout Session
session = stripe.checkout.Session.create(
payment_method_types=['card'],
line_items=[{
'price_data': {
'currency': 'inr',
'product_data': {
'name': f'{selected_option_title}',
},
'unit_amount': 10000,
},
'quantity': 1,
"adjustable_quantity": {
"enabled": "True",
"maximum": "100",
"minimum": "1"
},
}],
customer_email = email_address,
client_reference_id = sender_id,
mode='payment',
success_url='https://example.com/success',
cancel_url='https://example.com/cancel',
)
payment_link = session.get('url')
return payment_link
except Exception as e:
print(f"Error generating payment link: {e}")
并在我的网络钩子中接收,就像这样
@app.post("/stripe-webhook")
async def webhook(request: Request):
""" other code"""
if event['type'] == 'checkout.session.completed':
session = event['data']['object']
print(session)
elif event['type'] == 'payment_intent.succeeded':
payment_intent = event['data']['object']
send_success_payment_message()
我尝试传递元数据,但没有收到有关我的付款意图成功有效负载的数据
使用结帐会话时,最好监听
checkout.session.completed
事件而不是 payment_intent.succeeded
来完成订单。 这里有更好的解释。
我们在结账会话中有 3 种付款失败的情况:
checkout.session.async_payment_succeeded
或checkout.session.async_payment_failed
事件才能知道支付是否成功checkout.session.expired
事件