feat(payment): connect payment service flow
This commit is contained in:
@@ -3,13 +3,13 @@
|
||||
* 订阅成功回跳页
|
||||
*
|
||||
* 流程:
|
||||
* 1. 用户在 Stripe 托管页完成结账
|
||||
* 2. Stripe 重定向到 `/subscription/success?session_id=xxx`
|
||||
* 1. 用户在支付服务托管页完成结账
|
||||
* 2. 支付服务重定向到 `/subscription/success`
|
||||
* 3. 这个页面显示 "购买成功" + 调 `getCurrentUser` 刷新 user
|
||||
* 4. 点 "返回订阅页" 跳回 `/subscription`
|
||||
*
|
||||
* 注意:webhook 会异步触发 + 更新 user.isVip + voiceMinutes
|
||||
* 此页面拿到 session_id 后 轮询几次 getCurrentUser 等待 webhook 完成(避免 webhook 还没到 user 就还没更新的情况)
|
||||
* 注意:权益发放由后端支付服务链路异步完成。
|
||||
* 此页面轮询几次 getCurrentUser 等待 user 状态完成更新。
|
||||
*/
|
||||
import { useEffect, useRef, useState } from "react";
|
||||
import Link from "next/link";
|
||||
@@ -25,7 +25,7 @@ export default function SubscriptionSuccessPage() {
|
||||
const [errorMessage, setErrorMessage] = useState<string | null>(null);
|
||||
const hasRefreshed = useRef(false);
|
||||
|
||||
// 轮询 getCurrentUser 等待 webhook 完成
|
||||
// 轮询 getCurrentUser 等待后端权益发放完成
|
||||
useEffect(() => {
|
||||
if (hasRefreshed.current) return;
|
||||
hasRefreshed.current = true;
|
||||
|
||||
Reference in New Issue
Block a user