chatgpt Business (team) 长链接提取代码

小动物维修中心 2026-08-19 18:41 1

(async function generateGenericHostedLink() {
console.log("⏳ [chatgpt-link] 正在获取 Session Token...");

// ── 1. 获取当前登录的 Access Token ──────────────────────────────────────
let accessToken;
try {
const session = await fetch("/api/auth/session", { credentials: "include" }).then((r) => r.json());
accessToken = session?.accessToken;
if (!accessToken) throw new Error("accessToken 为空");
} catch (e) {
console.error("❌ [chatgpt-link] 获取 Token 失败,请确保已登录 ChatGPT:", e.message);
return;
}
console.log("✅ [chatgpt-link] Token 获取成功");

// ── 2. 构造请求 Payload ──────────────────────────────────────────────────
const payload = {
// 计划名称:Plus 填 "chatgptplusplan",Team 填 "chatgptteamplan"
plan_name: "chatgptteamplan",

// 如果是 Plus 计划,请删除下面这整个 team_plan_data 对象
team_plan_data: {
workspace_name: "Workspace_Name", // [修改] 你的工作区名称
price_interval: "month", // 按月 (month) 或 按年 (year)
seat_quantity: 2, // [修改] 团队人数(至少为 2)
},

billing_details: {
country: "US", // [修改] 国家代码,例如 US, JP, GB
currency: "USD", // [修改] 对应币种,例如 USD, JPY, GBP
},

cancel_url: "https://chatgpt.com/#pricing",

// [修改] 填入优惠码(如果没有优惠码,请删除整个 promo_code 字段)
promo_code: "YOUR_PROMO_CODE_HERE",

checkout_ui_mode: "hosted",
};

// ── 3. 发送请求 ──────────────────────────────────────────────────────────
console.log("⏳ [chatgpt-link] 正在向 OpenAI 请求支付信息...");
let data;
try {
const response = await fetch(
"https://chatgpt.com/backend-api/payments/checkout",
{
method: "POST",
credentials: "include",
headers: {
Authorization: `Bearer ${accessToken}`,
"Content-Type": "application/json",
},
body: JSON.stringify(payload),
}
);
data = await response.json();

if (!response.ok) {
console.error("❌ [chatgpt-link] 请求失败,HTTP", response.status);
console.error(data);
return;
}
} catch (e) {
console.error("❌ [chatgpt-link] 网络请求异常:", e.message);
return;
}

// ── 4. 处理结果并执行跳转 ──────────────────────────────────────
const hostedUrl = data?.url || data?.stripe_hosted_url || data?.checkout_url;

if (hostedUrl) {
// 方案 A:成功拿到了直接的长链接
console.log("─".repeat(60));
console.log("✅ [chatgpt-link] 成功生成 Hosted 直接链接!");
console.log("🔗 请点击下方链接或复制到无痕窗口支付:");
console.log(hostedUrl);
console.log("─".repeat(60));
// window.location.href = hostedUrl; // 取消注释可自动跳转

} else if (data.checkout_session_id && data.publishable_key) {
// 方案 B:OpenAI 走 Custom 模式,利用 session_id 触发原生 Stripe 跳转
console.log("⚠️ [chatgpt-link] 接口返回了 Custom 模式,未能直接拿到长链接。");
console.log("%c✅ 正在利用 session_id 通过 Stripe.js 进行原生跳转...", "color:#10a37f;font-size:14px");

if (!window.Stripe) {
await new Promise((resolve, reject) => {
const script = document.createElement("script");
script.src = "https://js.stripe.com/v3/";
script.onload = resolve;
script.onerror = reject;
document.head.appendChild(script);
});
}

const stripe = window.Stripe(data.publishable_key);

console.log("%c🚀 正在拉起 Stripe 收银台,请稍候...", "color:orange;font-size:16px");
stripe.redirectToCheckout({ sessionId: data.checkout_session_id });

} else {
// 方案 C:未知异常格式
console.error("❌ [chatgpt-link] 无法解析支付信息,响应格式异常:", data);
}
})();


bybit au 已测试,并成功支付。

最新回复 (0)
    没有回复
* 帖子来源NodeSeek
返回