diff --git a/src/common/modules.js b/src/common/modules.js index 771ec369..f9ea1266 100644 --- a/src/common/modules.js +++ b/src/common/modules.js @@ -202,15 +202,19 @@ let timer = {} * https://open.weixin.qq.com/connect/oauth2/authorize?appid=APPID&redirect_uri=REDIRECT_URI&response_type=code&scope=SCOPE&agentid=AGENTID#wechat_redirect * @param params */ -const oauth2Weixin = params => qs.stringifyUrl({ - url: "https://open.weixin.qq.com/connect/oauth2/authorize", - query: { - response_type: 'code', - redirect_uri: encodeURIComponent(location.href), - ...params - }, - fragmentIdentifier: "wechat_redirect" -}) +const oauth2Weixin = params => { + const redirect = qs.parseUrl(location.href) + delete redirect.query.code + return qs.stringifyUrl({ + url: "https://open.weixin.qq.com/connect/oauth2/authorize", + query: { + response_type: 'code', + redirect_uri: qs.stringifyUrl(redirect), + ...params + }, + fragmentIdentifier: "wechat_redirect" + }) +} export const wxwork = { state: () => ({ agentSignURL: "", @@ -287,12 +291,9 @@ export const wxwork = { dispatch("agentSign", {corpId, suiteId}).then(() => excute(true)).then(() => resolve()) } else reject("URL缺少必要参数(corpId)") }) - } else new Promise((resolve, reject) => { - const {appid} = params - if (!!appid) { - const oauthURL = oauth2Weixin(params) - location.replace(oauthURL) - } else reject("URL缺少必要参数(appid)") + } else new Promise(() => { + const oauthURL = oauth2Weixin(params) + location.replace(oauthURL) }) } return excute()