feat(subscription): 对齐续费接口为一步生成支付码

- 修正续费请求路径为后端实际的 /renew-pay/{id},避免 404 错误
- 续费接口新增 method 和 envVersion 参数支持余额与微信支付
- 续费请求返回支付结果,微信支付返回小程序码,余额支付直接成功
- 续费不再分步调起支付,前端确认续费逻辑简化为一步调用后端接口
- 后端 renewPay 优化,避免放弃支付导致服务中断及时长丢失
- 后端续费激活逻辑调整,续费保留原订阅有效期累计时长
- 排查并解决微信小程序支付配置缺失导致续费失败的问题
- 代码及注释同步更新,完善续费流程整体一致性与稳定性
This commit is contained in:
2026-07-15 22:19:54 +08:00
parent 5b5bb3b0e5
commit 015cd50c08
4 changed files with 84 additions and 28 deletions

View File

@@ -286,13 +286,20 @@ export const useAppSubscriptionStore = defineStore('appSubscription', {
// ============================================================
/**
* 续费:基于已有订阅创建续费订单,返回新 subscriptionId再调 pay 发起支付
* 续费:基于已有订阅创建续费订单并生成支付码(一步完成,对齐后端 /renew-pay
* @param id 订阅ID
* @param period 周期month/year
* @param method 支付方式balance/wechat
* @param envVersion 小程序版本(微信支付时使用)
*/
async renew(id: number, period: 'month' | 'year' = 'month'): Promise<SubscribeResult> {
async renew(
id: number,
period: 'month' | 'year' = 'month',
method: 'balance' | 'wechat' = 'wechat',
envVersion?: string
): Promise<PayResult | WechatNativePayResult> {
try {
const result = await renewSubscription(id, period);
const result = await renewSubscription(id, period, method, envVersion);
this.invalidateCache();
return result;
} catch (error) {