UNPKG

orcrist-wechat

Version:

for Orcrist Wechat sdk

97 lines (86 loc) 3.13 kB
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, };