|
@@ -721,8 +721,6 @@ async def webhook_smshelper(
|
|
|
logger.info(f'smshelper webhook title={payload.title}, content={payload.content}')
|
|
logger.info(f'smshelper webhook title={payload.title}, content={payload.content}')
|
|
|
if "微信支付" in payload.title:
|
|
if "微信支付" in payload.title:
|
|
|
res = await WebhookService.smshelper_payment_webhook(db, payload)
|
|
res = await WebhookService.smshelper_payment_webhook(db, payload)
|
|
|
- if res:
|
|
|
|
|
- print(f"📧 send payment succeeded notification email")
|
|
|
|
|
return success()
|
|
return success()
|
|
|
|
|
|
|
|
@public_router.post("/webhook/stripe", summary="Stripe Webhook", tags=["webhook"], response_model=ApiResponse)
|
|
@public_router.post("/webhook/stripe", summary="Stripe Webhook", tags=["webhook"], response_model=ApiResponse)
|
|
@@ -731,16 +729,26 @@ async def webhook_stripe(
|
|
|
db: AsyncSession = Depends(get_db),
|
|
db: AsyncSession = Depends(get_db),
|
|
|
redis_client: Redis = Depends(get_redis_client)
|
|
redis_client: Redis = Depends(get_redis_client)
|
|
|
):
|
|
):
|
|
|
- payload = request.body()
|
|
|
|
|
|
|
+ payload = await request.body()
|
|
|
sig_header = request.headers.get("stripe-signature")
|
|
sig_header = request.headers.get("stripe-signature")
|
|
|
|
|
+
|
|
|
|
|
+
|
|
|
|
|
+ # 3️⃣ 打调试日志(安全,不要打 secret)
|
|
|
|
|
+ logger.info("Stripe webhook received")
|
|
|
|
|
+ logger.info("Stripe-Signature: %s", sig_header)
|
|
|
|
|
+ logger.info("Payload bytes length: %s", len(payload))
|
|
|
|
|
+ logger.info("Payload raw: %s", payload.decode("utf-8", errors="ignore"))
|
|
|
|
|
+ logger.info(
|
|
|
|
|
+ "Webhook secret prefix: %s",
|
|
|
|
|
+ settings.stripe_webhook_secret[:8] if settings.stripe_webhook_secret else None,
|
|
|
|
|
+ )
|
|
|
|
|
+
|
|
|
event = stripe.Webhook.construct_event(
|
|
event = stripe.Webhook.construct_event(
|
|
|
payload=payload,
|
|
payload=payload,
|
|
|
sig_header=sig_header,
|
|
sig_header=sig_header,
|
|
|
- secret=settings.STRIPE_WEBHOOK_SECRET,
|
|
|
|
|
|
|
+ secret=settings.stripe_webhook_secret,
|
|
|
)
|
|
)
|
|
|
res = await WebhookService.stripe_payment_webhook(db, event)
|
|
res = await WebhookService.stripe_payment_webhook(db, event)
|
|
|
- if res:
|
|
|
|
|
- print(f"📧 send payment succeeded notification email")
|
|
|
|
|
return success()
|
|
return success()
|
|
|
|
|
|
|
|
@public_router.post("/auth/auto-register", summary="自动注册", tags=["用户管理"], response_model=ApiResponse[AutoRegisterData])
|
|
@public_router.post("/auth/auto-register", summary="自动注册", tags=["用户管理"], response_model=ApiResponse[AutoRegisterData])
|