feat: 购买流程重做(新页选套餐→选支付方式)+ 支付后后台自动激活 v1.8.0

- 修复「点击购买授权没反应」:支付方式选择行被 .pay-select-row 的 display:flex 压过 hidden 属性常驻显示;新增全局 [hidden]{display:none!important}
- 点「购买授权」改为打开新页面 buy.html:①展示本项目全部在售套餐 ②选套餐后才显示支付方式 ③下单支付
- 自动激活改为后台 chrome.alarms 每分钟轮询(关掉侧边栏/支付页也能激活),侧边栏轮询保留为快速通道
- authCreateOrder 支持传入所选套餐 cardTypeId;新增 getCardTypes 消息
This commit is contained in:
personal82555 committed 2026-10-20 18:57:04 +08:00
1 parent 540f506c78
commit 9348d52a98
10 files changed
+522 -92

No files matched your search

+3 -44
View File
@@ -133,26 +133,13 @@ class AutoCommentManager {
});
}
// 授权:购买(展开支付方式选择)
// 授权:购买(新页面选套餐 → 选支付方式 → 支付 → 自动激活)
const buyBtn = document.getElementById('buy-btn');
if (buyBtn) {
buyBtn.addEventListener('click', () => {
const row = document.getElementById('pay-select-row');
if (row) row.hidden = !row.hidden;
chrome.tabs.create({ url: chrome.runtime.getURL('buy.html') });
});
}
const payCancelBtn = document.getElementById('pay-cancel-btn');
if (payCancelBtn) {
payCancelBtn.addEventListener('click', () => {
const row = document.getElementById('pay-select-row');
if (row) row.hidden = true;
});
}
document.querySelectorAll('.pay-btn[data-pay]').forEach((btn) => {
btn.addEventListener('click', () => {
this.startBuyFlow(btn.dataset.pay);
});
});
// API密钥配置
document.getElementById('api-key').addEventListener('input', (e) => {
@@ -835,35 +822,7 @@ class AutoCommentManager {
}
}
// 购买流程:下单(带机器码)→ 打开支付页 → 轮询订单 → 自动发卡激活
async startBuyFlow(payType) {
const payRow = document.getElementById('pay-select-row');
if (payRow) payRow.hidden = true;
this.showOrderStatus(true, '⏳ 正在创建订单…');
try {
const res = await chrome.runtime.sendMessage({ action: 'authCreateOrder', payType });
if (!res || !res.ok) {
this.showOrderStatus(false, '✗ 创建订单失败: ' + ((res && res.message) || '未知错误'));
return;
}
const order = res.order;
const priceText = order.couponCode
? `¥${order.amount},原价 ¥${order.originalPrice},已用优惠码 ${order.couponCode}`
: `¥${order.amount}`;
this.showOrderStatus(true, `订单 ${order.orderNo}(${priceText})已创建,请在新页面完成支付,支付成功后自动激活…`);
if (res.payUrl) {
chrome.tabs.create({ url: res.payUrl });
}
this.startOrderPolling(order.orderNo);
} catch (error) {
this.showOrderStatus(false, '✗ 购买失败: ' + error.message);
}
}
// 轮询订单:支付+自动发卡后自动激活
// 轮询订单:支付+自动发卡后自动激活(侧边栏打开时的快速通道;后台 alarm 兜底)
startOrderPolling(orderNo) {
if (this.orderPollTimer) {
clearInterval(this.orderPollTimer);