orcrist-wechat
Version:
for Orcrist Wechat sdk
97 lines (86 loc) • 3.13 kB
text/typescript
import OST from "orcrist-request";
import { traceLog } from "../utils/traceLog";
import { getQueryMap, Toast } from "../utils/common";
const OST_REQ: any = OST;
export const queryWechatAppMSG = (sources) => {
return OST_REQ.request(`/api/trading-product/merchant/wechat/${sources}`, {
method: "GET",
});
};
export const queryOpenID = (code, sources = "") => {
return OST_REQ.request("/api/usercenter/wechat/get_openId", {
method: "POST",
body: {
code,
// ! 测试环境 使用π健康渠道号
// ! 问题: 渠道号1100110101在用户中心配置了两个公众号,生产环境为广州,测试环境为π健康
// ! 处理方式:测试环境做兼容,在无source模式下微信禁止异常访问页面,测试环境使用100000000渠道号指向π健康
// ! TODO: 移除用户中心配置,更换测试渠道号为1000000000,统一接入测试环境验证标准
source: sources === "1000000000" ? "1100110101" : sources,
},
})
.then(({ success, data }) => {
if (success && data) {
sessionStorage.setItem("SP_WX_OPENID", data);
return Promise.resolve({ code: 20000, data, type: "openID" });
} else {
Toast(`系统异常,获取微信信息异常,可尝试重新进入 (CODE: 60002)`, 3);
return Promise.resolve({ code: -1, data: "", type: "openID" });
}
})
.catch((err) => {
traceLog({
log: encodeURIComponent(
`[ GetOpenIDService ] Error Code: 500. ${err.message}`
),
});
Toast("网络异常,请重新进入页面", 3);
throw new Error(err.message);
});
};
/**
* 获取微信用户信息
* @param code
* @param openid
* @param source
*/
export const queryUserInfo = (code, source) => {
return OST_REQ.request(`/api/wecahtmanagercenter/wechat/user/get_user_info`, {
method: "POST",
body: {
code,
// openid,
source: source === "1000000000" ? "1100110101" : source,
},
})
.then(({ success, data }) => {
// 清除显式授权标志位
sessionStorage.removeItem("SNSAPI_USERINFO");
if (success && data) {
sessionStorage.setItem("SP_WX_USERINFO", JSON.stringify(data));
sessionStorage.setItem("SP_WX_OPENID", data.openid);
return Promise.resolve({ code: 20000, data, type: "userINFO" });
} else {
// 异常情况,清除显式授权标志位,规避获取冗余问题
sessionStorage.removeItem("SNSAPI_USERINFO");
Toast(`系统异常,获取微信信息异常,可尝试重新进入 (CODE: 60005)`, 3);
return Promise.resolve({ code: -1, data: "", type: "userINFO" });
}
})
.catch((err) => {
// 清除显式授权标志位
sessionStorage.removeItem("SNSAPI_USERINFO");
traceLog({
log: encodeURIComponent(
`[ GetOpenIDService ] Error Code: 500. ${err.message}`
),
});
Toast("网络异常,请重新进入页面", 3);
throw new Error(err.message);
});
};
export default {
queryOpenID,
queryWechatAppMSG,
queryUserInfo,
};