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:
1 parent
540f506c78
commit
9348d52a98
10 files changed
+522
-92
No files matched your search
+3
-44
@@ -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);
|
||||
|
||||
Reference in new issue
Block a user