Browse Source

fix: 修复redirect参数HTML实体编码问题(/解码为/)

MyFramework User 3 months ago
parent
commit
f1ab826b0a
1 changed files with 5 additions and 1 deletions
  1. 5 1
      server/src/modules/payment/payment.controller.ts

+ 5 - 1
server/src/modules/payment/payment.controller.ts

@@ -303,7 +303,11 @@ router.post('/alipay/qrcode', authMiddleware, async (ctx: Context) => {
 
 // 生成微信 OAuth 授权链接(前端跳转到微信获取 code)
 router.get('/wechat/oauth-url', async (ctx: Context) => {
-  const { redirect } = ctx.query as { redirect?: string };
+  let { redirect } = ctx.query as { redirect?: string };
+  // 修复HTML实体编码问题(Nginx或Koa可能把 / 编码成 /)
+  if (redirect) {
+    redirect = redirect.replace(//|//gi, '/').replace(/:|:/gi, ':');
+  }
   // OAuth授权必须使用公众号appId
   const appId = process.env.WECHAT_PUBLIC_APP_ID || process.env.WECHAT_APP_ID;