wanmeiyizhan/pages/contact/wanmeiyizhanwx.js
2025-01-15 18:39:05 +08:00

765 lines
29 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

((e, n) => {
"function" == typeof define && (define.amd || define.cmd) ? define(function () {
return n(e)
}) : n(e, !0)
})(this, function (r, e) {
var a, c, n, i, t, o, s, d, l, u, p, f, m, g, h, S, y, I, v, _, w, T;
if (!r.jWeixin) return a = {
config: "preVerifyJSAPI",
onMenuShareTimeline: "menu:share:timeline",
onMenuShareAppMessage: "menu:share:appmessage",
onMenuShareQQ: "menu:share:qq",
onMenuShareWeibo: "menu:share:weiboApp",
onMenuShareQZone: "menu:share:QZone",
previewImage: "imagePreview",
getLocation: "geoLocation",
openProductSpecificView: "openProductViewWithPid",
addCard: "batchAddCard",
openCard: "batchViewCard",
chooseWXPay: "getBrandWCPayRequest",
openEnterpriseRedPacket: "getRecevieBizHongBaoRequest",
startSearchBeacons: "startMonitoringBeacons",
stopSearchBeacons: "stopMonitoringBeacons",
onSearchBeacons: "onBeaconsInRange",
consumeAndShareCard: "consumedShareCard",
openAddress: "editAddress"
}, c = (() => {
var e, n = {};
for (e in a) n[a[e]] = e;
return n
})(), i = (n = r.document).title, t = navigator.userAgent.toLowerCase(), f = navigator.platform.toLowerCase(), o = !(!f.match("mac") && !f.match("win")), s = -1 != t.indexOf("wxdebugger"), d = -1 != t.indexOf("micromessenger"), l = -1 != t.indexOf("android"), u = -1 != t.indexOf("iphone") || -1 != t.indexOf("ipad"), p = (f = t.match(/micromessenger\/(\d+\.\d+\.\d+)/) || t.match(/micromessenger\/(\d+\.\d+)/)) ? f[1] : "", m = {
initStartTime: L(),
initEndTime: 0,
preVerifyStartTime: 0,
preVerifyEndTime: 0
}, g = {
version: 1,
appId: "",
initTime: 0,
preVerifyTime: 0,
networkType: "",
isPreVerifyOk: 1,
systemType: u ? 1 : l ? 2 : -1,
clientVersion: p,
url: encodeURIComponent(location.href)
}, h = {}, S = {
_completes: []
}, y = {
state: 0,
data: {}
}, O(function () {
m.initEndTime = L()
}), I = !1, v = [], _ = {
config: function (e) {
C("config", h = e);
var o = !1 !== h.check;
O(function () {
if (o) k(a.config, {
verifyJsApiList: A(h.jsApiList),
verifyOpenTagList: A(h.openTagList)
}, (S._complete = function (e) {
m.preVerifyEndTime = L(), y.state = 1, y.data = e
}, S.success = function (e) {
g.isPreVerifyOk = 0
}, S.fail = function (e) {
S._fail ? S._fail(e) : y.state = -1
}, (t = S._completes).push(function () {
B()
}), S.complete = function (e) {
for (var n = 0, i = t.length; n < i; ++n) t[n]();
S._completes = []
}, S)), m.preVerifyStartTime = L();
else {
y.state = 1;
for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n]();
S._completes = []
}
var t
}), _.invoke || (_.invoke = function (e, n, i) {
r.WeixinJSBridge && WeixinJSBridge.invoke(e, P(n), i)
}, _.on = function (e, n) {
r.WeixinJSBridge && WeixinJSBridge.on(e, n)
})
},
ready: function (e) {
(0 != y.state || (S._completes.push(e), !d && h.debug)) && e()
},
error: function (e) {
p < "6.0.2" || (-1 == y.state ? e(y.data) : S._fail = e)
},
checkJsApi: function (e) {
k("checkJsApi", {
jsApiList: A(e.jsApiList)
}, (e._complete = function (e) {
l && (i = e.checkResult) && (e.checkResult = JSON.parse(i));
var n, i = e,
t = i.checkResult;
for (n in t) {
var o = c[n];
o && (t[o] = t[n], delete t[n])
}
}, e))
},
onMenuShareTimeline: function (e) {
M(a.onMenuShareTimeline, {
complete: function () {
k("shareTimeline", {
title: e.title || i,
desc: e.title || i,
img_url: e.imgUrl || "",
link: e.link || location.href,
type: e.type || "link",
data_url: e.dataUrl || ""
}, e)
}
}, e)
},
onMenuShareAppMessage: function (n) {
M(a.onMenuShareAppMessage, {
complete: function (e) {
"favorite" === e.scene ? k("sendAppMessage", {
title: n.title || i,
desc: n.desc || "",
link: n.link || location.href,
img_url: n.imgUrl || "",
type: n.type || "link",
data_url: n.dataUrl || ""
}) : k("sendAppMessage", {
title: n.title || i,
desc: n.desc || "",
link: n.link || location.href,
img_url: n.imgUrl || "",
type: n.type || "link",
data_url: n.dataUrl || ""
}, n)
}
}, n)
},
onMenuShareQQ: function (e) {
M(a.onMenuShareQQ, {
complete: function () {
k("shareQQ", {
title: e.title || i,
desc: e.desc || "",
img_url: e.imgUrl || "",
link: e.link || location.href
}, e)
}
}, e)
},
onMenuShareWeibo: function (e) {
M(a.onMenuShareWeibo, {
complete: function () {
k("shareWeiboApp", {
title: e.title || i,
desc: e.desc || "",
img_url: e.imgUrl || "",
link: e.link || location.href
}, e)
}
}, e)
},
onMenuShareQZone: function (e) {
M(a.onMenuShareQZone, {
complete: function () {
k("shareQZone", {
title: e.title || i,
desc: e.desc || "",
img_url: e.imgUrl || "",
link: e.link || location.href
}, e)
}
}, e)
},
updateTimelineShareData: function (e) {
k("updateTimelineShareData", {
title: e.title,
link: e.link,
imgUrl: e.imgUrl
}, e)
},
updateAppMessageShareData: function (e) {
k("updateAppMessageShareData", {
title: e.title,
desc: e.desc,
link: e.link,
imgUrl: e.imgUrl
}, e)
},
startRecord: function (e) {
k("startRecord", {}, e)
},
stopRecord: function (e) {
k("stopRecord", {}, e)
},
onVoiceRecordEnd: function (e) {
M("onVoiceRecordEnd", e)
},
playVoice: function (e) {
k("playVoice", {
localId: e.localId
}, e)
},
pauseVoice: function (e) {
k("pauseVoice", {
localId: e.localId
}, e)
},
stopVoice: function (e) {
k("stopVoice", {
localId: e.localId
}, e)
},
onVoicePlayEnd: function (e) {
M("onVoicePlayEnd", e)
},
uploadVoice: function (e) {
k("uploadVoice", {
localId: e.localId,
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
}, e)
},
downloadVoice: function (e) {
k("downloadVoice", {
serverId: e.serverId,
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
}, e)
},
translateVoice: function (e) {
k("translateVoice", {
localId: e.localId,
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
}, e)
},
chooseImage: function (e) {
k("chooseImage", {
scene: "1|2",
count: e.count || 9,
sizeType: e.sizeType || ["original", "compressed"],
sourceType: e.sourceType || ["album", "camera"]
}, (e._complete = function (e) {
if (l) {
var n = e.localIds;
try {
n && (e.localIds = JSON.parse(n))
} catch (e) {}
}
}, e))
},
getLocation: function (e) {},
getLocation: function (e) {
e = e || {}, k(a.getLocation, {
type: e.type || "wgs84"
}, (e._complete = function (e) {
delete e.type
}, e))
},
previewImage: function (e) {
k(a.previewImage, {
current: e.current,
urls: e.urls
}, e)
},
uploadImage: function (e) {
k("uploadImage", {
localId: e.localId,
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
}, e)
},
downloadImage: function (e) {
k("downloadImage", {
serverId: e.serverId,
isShowProgressTips: 0 == e.isShowProgressTips ? 0 : 1
}, e)
},
getLocalImgData: function (e) {
!1 === I ? (I = !0, k("getLocalImgData", {
localId: e.localId
}, (e._complete = function (e) {
var n;
I = !1, 0 < v.length && (n = v.shift(), wx.getLocalImgData(n))
}, e))) : v.push(e)
},
getNetworkType: function (e) {
k("getNetworkType", {}, (e._complete = function (e) {
var n = e,
e = n.errMsg,
i = (n.errMsg = "getNetworkType:ok", n.subtype);
if (delete n.subtype, i) n.networkType = i;
else {
var i = e.indexOf(":"),
t = e.substring(i + 1);
switch (t) {
case "wifi":
case "edge":
case "wwan":
n.networkType = t;
break;
default:
n.errMsg = "getNetworkType:fail"
}
}
}, e))
},
openLocation: function (e) {
k("openLocation", {
latitude: e.latitude,
longitude: e.longitude,
name: e.name || "",
address: e.address || "",
scale: e.scale || 28,
infoUrl: e.infoUrl || ""
}, e)
},
hideOptionMenu: function (e) {
k("hideOptionMenu", {}, e)
},
showOptionMenu: function (e) {
k("showOptionMenu", {}, e)
},
closeWindow: function (e) {
k("closeWindow", {}, e = e || {})
},
hideMenuItems: function (e) {
k("hideMenuItems", {
menuList: e.menuList
}, e)
},
showMenuItems: function (e) {
k("showMenuItems", {
menuList: e.menuList
}, e)
},
hideAllNonBaseMenuItem: function (e) {
k("hideAllNonBaseMenuItem", {}, e)
},
showAllNonBaseMenuItem: function (e) {
k("showAllNonBaseMenuItem", {}, e)
},
scanQRCode: function (e) {
k("scanQRCode", {
needResult: (e = e || {}).needResult || 0,
scanType: e.scanType || ["qrCode", "barCode"]
}, (e._complete = function (e) {
var n;
u && (n = e.resultStr) && (n = JSON.parse(n), e.resultStr = n && n.scan_code && n.scan_code.scan_result)
}, e))
},
openAddress: function (e) {
k(a.openAddress, {}, (e._complete = function (e) {
(e = e).postalCode = e.addressPostalCode, delete e.addressPostalCode, e.provinceName = e.proviceFirstStageName, delete e.proviceFirstStageName, e.cityName = e.addressCitySecondStageName, delete e.addressCitySecondStageName, e.countryName = e.addressCountiesThirdStageName, delete e.addressCountiesThirdStageName, e.detailInfo = e.addressDetailInfo, delete e.addressDetailInfo
}, e))
},
openProductSpecificView: function (e) {
k(a.openProductSpecificView, {
pid: e.productId,
view_type: e.viewType || 0,
ext_info: e.extInfo
}, e)
},
addCard: function (e) {
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
var r = n[t],
r = {
card_id: r.cardId,
card_ext: r.cardExt
};
i.push(r)
}
k(a.addCard, {
card_list: i
}, (e._complete = function (e) {
if (n = e.card_list) {
for (var n, i = 0, t = (n = JSON.parse(n)).length; i < t; ++i) {
var o = n[i];
o.cardId = o.card_id, o.cardExt = o.card_ext, o.isSuccess = !!o.is_succ, delete o.card_id, delete o.card_ext, delete o.is_succ
}
e.cardList = n, delete e.card_list
}
}, e))
},
chooseCard: function (e) {
k("chooseCard", {
app_id: h.appId,
location_id: e.shopId || "",
sign_type: e.signType || "SHA1",
card_id: e.cardId || "",
card_type: e.cardType || "",
card_sign: e.cardSign,
time_stamp: e.timestamp + "",
nonce_str: e.nonceStr
}, (e._complete = function (e) {
e.cardList = e.choose_card_info, delete e.choose_card_info
}, e))
},
openCard: function (e) {
for (var n = e.cardList, i = [], t = 0, o = n.length; t < o; ++t) {
var r = n[t],
r = {
card_id: r.cardId,
code: r.code
};
i.push(r)
}
k(a.openCard, {
card_list: i
}, e)
},
consumeAndShareCard: function (e) {
k(a.consumeAndShareCard, {
consumedCardId: e.cardId,
consumedCode: e.code
}, e)
},
chooseWXPay: function (e) {
k(a.chooseWXPay, x(e), e), B({
jsApiName: "chooseWXPay"
})
},
openEnterpriseRedPacket: function (e) {
k(a.openEnterpriseRedPacket, x(e), e)
},
startSearchBeacons: function (e) {
k(a.startSearchBeacons, {
ticket: e.ticket
}, e)
},
stopSearchBeacons: function (e) {
k(a.stopSearchBeacons, {}, e)
},
onSearchBeacons: function (e) {
M(a.onSearchBeacons, e)
},
openEnterpriseChat: function (e) {
k("openEnterpriseChat", {
useridlist: e.userIds,
chatname: e.groupName
}, e)
},
launchMiniProgram: function (e) {
k("launchMiniProgram", {
targetAppId: e.targetAppId,
path: (e => {
var n;
if ("string" == typeof e && 0 < e.length) return n = e.split("?")[0], n += ".html", void 0 !== (e = e.split("?")[1]) ? n + "?" + e : n
})(e.path),
envVersion: e.envVersion
}, e)
},
openBusinessView: function (e) {
k("openBusinessView", {
businessType: e.businessType,
queryString: e.queryString || "",
envVersion: e.envVersion
}, (e._complete = function (n) {
if (l) {
var e = n.extraData;
if (e) try {
n.extraData = JSON.parse(e)
} catch (e) {
n.extraData = {}
}
}
}, e))
},
miniProgram: {
navigateBack: function (e) {
e = e || {}, O(function () {
k("invokeMiniProgramAPI", {
name: "navigateBack",
arg: {
delta: e.delta || 1
}
}, e)
})
},
navigateTo: function (e) {
O(function () {
k("invokeMiniProgramAPI", {
name: "navigateTo",
arg: {
url: e.url
}
}, e)
})
},
redirectTo: function (e) {
O(function () {
k("invokeMiniProgramAPI", {
name: "redirectTo",
arg: {
url: e.url
}
}, e)
})
},
switchTab: function (e) {
O(function () {
k("invokeMiniProgramAPI", {
name: "switchTab",
arg: {
url: e.url
}
}, e)
})
},
reLaunch: function (e) {
O(function () {
k("invokeMiniProgramAPI", {
name: "reLaunch",
arg: {
url: e.url
}
}, e)
})
},
postMessage: function (e) {
O(function () {
k("invokeMiniProgramAPI", {
name: "postMessage",
arg: e.data || {}
}, e)
})
},
getEnv: function (e) {
O(function () {
e({
miniprogram: "miniprogram" === r.__wxjs_environment
})
})
}
}
}, w = 1, T = {}, n.addEventListener("error", function (e) {
var n, i, t;
l || (t = (n = e.target).tagName, i = n.src, "IMG" != t && "VIDEO" != t && "AUDIO" != t && "SOURCE" != t) || -1 != i.indexOf("wxlocalresource://") && (e.preventDefault(), e.stopPropagation(), (t = n["wx-id"]) || (t = w++, n["wx-id"] = t), T[t] || (T[t] = !0, wx.ready(function () {
wx.getLocalImgData({
localId: i,
success: function (e) {
n.src = e.localData
}
})
})))
}, !0), n.addEventListener("load", function (e) {
var n;
l || (n = (e = e.target).tagName, "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || (n = e["wx-id"]) && (T[n] = !1)
}, !0), e && (r.wx = r.jWeixin = _), _;
function k(n, e, i) {
r.WeixinJSBridge ? WeixinJSBridge.invoke(n, P(e), function (e) {
V(n, e, i)
}) : C(n, i)
}
function M(n, i, t) {
r.WeixinJSBridge ? WeixinJSBridge.on(n, function (e) {
t && t.trigger && t.trigger(e), V(n, e, i)
}) : C(n, t || i)
}
function P(e) {
return (e = e || {}).appId = h.appId, e.verifyAppId = h.appId, e.verifySignType = "sha1", e.verifyTimestamp = h.timestamp + "", e.verifyNonceStr = h.nonceStr, e.verifySignature = h.signature, e
}
function x(e) {
return {
timeStamp: e.timestamp + "",
nonceStr: e.nonceStr,
package: e.package,
paySign: e.paySign,
signType: e.signType || "SHA1"
}
}
function V(e, n, i) {
"openEnterpriseChat" != e && "openBusinessView" !== e || (n.errCode = n.err_code), delete n.err_code, delete n.err_desc, delete n.err_detail;
var t = n.errMsg,
e = (t || (t = n.err_msg, delete n.err_msg, t = ((e, n) => {
var i, t = c[e];
return t && (e = t), t = "ok", n && (i = n.indexOf(":"), "access denied" != (t = (t = (t = -1 != (t = -1 != (t = "failed" == (t = "confirm" == (t = n.substring(i + 1)) ? "ok" : t) ? "fail" : t).indexOf("failed_") ? t.substring(7) : t).indexOf("fail_") ? t.substring(5) : t).replace(/_/g, " ")).toLowerCase()) && "no permission to execute" != t || (t = "permission denied"), "" == (t = "config" == e && "function not exist" == t ? "ok" : t)) && (t = "fail"), n = e + ":" + t
})(e, t), n.errMsg = t), (i = i || {})._complete && (i._complete(n), delete i._complete), t = n.errMsg || "", h.debug && !i.isInnerInvoke && alert(JSON.stringify(n)), t.indexOf(":"));
switch (t.substring(e + 1)) {
case "ok":
i.success && i.success(n);
break;
case "cancel":
i.cancel && i.cancel(n);
break;
default:
i.fail && i.fail(n)
}
i.complete && i.complete(n)
}
function A(e) {
if (e) {
for (var n = 0, i = e.length; n < i; ++n) {
var t = e[n],
t = a[t];
t && (e[n] = t)
}
return e
}
}
function C(e, n) {
var i;
!h.debug || n && n.isInnerInvoke || ((i = c[e]) && (e = i), n && n._complete && delete n._complete, console.log('"' + e + '",', n || ""))
}
function B(n) {
var i;
o || s || h.debug || p < "6.0.2" || g.systemType < 0 || (i = new Image, g.appId = h.appId, g.initTime = m.initEndTime - m.initStartTime, g.preVerifyTime = m.preVerifyEndTime - m.preVerifyStartTime, _.getNetworkType({
isInnerInvoke: !0,
success: function (e) {
g.networkType = e.networkType;
e = "https://open.weixin.qq.com/sdk/report?v=" + g.version + "&o=" + g.isPreVerifyOk + "&s=" + g.systemType + "&c=" + g.clientVersion + "&a=" + g.appId + "&n=" + g.networkType + "&i=" + g.initTime + "&p=" + g.preVerifyTime + "&u=" + g.url + "&jsapi_name=" + (n ? n.jsApiName : "");
i.src = e
}
}))
}
function L() {
return (new Date).getTime()
}
function O(e) {
d && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1))
}
});
// 业务逻辑
(function () {
var url = window.location.href.split('#')[0]
console.log('url', url);
let noncestr = Math.random().toString(36).substr(2, 15);
let time = Math.floor(Date.now() / 1000);
let currentUrl = url
fetch(`https://api.eshangtech.com/EShangApiMain/WeChat/GetJsapiTicket?appId=wxcf4dbe1815d5d872&sourcePlatform=publicprogram`, {
method: "GET",
headers: {
"Content-Type": "application/json; charset=utf-8"
}
}).then(response => response.json()).then(config => {
console.log('config', config);
fetch(`https://api.eshangtech.com/EShangApiMain/WeChat/GetConfigSignature`, {
method: "POST",
body: JSON.stringify({
jsapi_ticket: config.Result_Data,
timestamp: time,
noncestr: noncestr,
url: currentUrl,
jsApiList: ["getLocation", "scanQRCode", "openLocation"],
// "openLocation", "getLocation",
}),
headers: {
"Content-Type": "application/json; charset=utf-8"
}
}).then(response2 => response2.json()).then(config2 => {
console.log('config2', config2);
console.log('config3', JSON.stringify({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来若要查看传入的参数可以在pc端打开参数信息会通过log打出仅在pc端时才会打印。
appId: 'wxcf4dbe1815d5d872', // 必填,公众号的唯一标识
timestamp: time, // 必填,生成签名的时间戳
nonceStr: noncestr, // 必填,生成签名的随机串
signature: config2.Result_Data, // 必填,签名
jsApiList: ["scanQRCode"] // 必填需要使用的JS接口列表
// "openLocation", "getLocation",
}));
wx.config({
url: currentUrl,
// debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来若要查看传入的参数可以在pc端打开参数信息会通过log打出仅在pc端时才会打印。
appId: 'wxcf4dbe1815d5d872', // 必填,公众号的唯一标识
timestamp: time, // 必填,生成签名的时间戳
nonceStr: noncestr, // 必填,生成签名的随机串
signature: config2.Result_Data, // 必填,签名
jsApiList: ["getLocation", "scanQRCode", "openLocation"] // 必填需要使用的JS接口列表
// "openLocation", "getLocation",
})
wx.ready(function () {
// config信息验证后会执行ready方法所有接口调用都必须在config接口获得结果之后config是一个客户端的异步操作所以如果需要在页面加载时就调用相关接口则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口则可以直接调用不需要放在ready函数中。
});
wx.error(function (res) {
// config信息验证失败会执行error函数如签名过期导致验证失败具体错误信息可以打开config的debug模式查看也可以在返回的res参数中查看对于SPA可以在这里更新签名。
});
})
})
})();
const wmyz_app = {
uniApi: (option) => {
const {
apiName,
params,
success
} = option; // 解构出 apiName 和 params
console.log('option', option);
if (apiName === 'openNewPage') {
wx.miniProgram.navigateTo({
url: `/pages/thirdParty/newPage?url=${params.url}&title=${params.title}`
});
} else if (apiName === 'navigateBack') {
wx.miniProgram.navigateBack({
delta: 1
});
} else if (apiName === 'getLocation') {
wx.getLocation({
type: params.type,
success: function (res) {
params.success(res)
}
})
} else if (apiName === 'scanCode') {
wx.scanQRCode({
needResult: 1, // 默认为0扫描结果由微信处理1则直接返回扫描结果
scanType: ["qrCode", "barCode"], // 可以指定扫二维码还是一维码,默认二者都有
success: function (res) {
params.success(res)
}
})
} else if (apiName === 'openLocation') {
wx.openLocation({
latitude: Number(params.latitude), // 纬度浮点数范围为90 ~ -90
longitude: Number(params.longitude), // 经度浮点数范围为180 ~ -180。
name: params.name, // 位置名
address: '', // 地址详情说明
scale: 16, // 地图缩放级别,整型值,范围从1~28。默认为最大
infoUrl: '', // 在查看位置界面底部显示的超链接,可点击跳转
fail: function (res) {
params.success(res)
}
})
} else if (apiName === 'getStorageSync') {
return new Promise((resolve, reject) => {
try {
let res = ''
if (params === 'userInfo') {
res = window.location.href.split('#')[1]
}
resolve(success({
MEMBERSHIP_MOBILEPHONE: res
}));
} catch (error) {
reject(error); // 捕获并返回错误
}
});
}
}
};
window.wmyz_app = wmyz_app;
// wx.config({
// debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来若要查看传入的参数可以在pc端打开参数信息会通过log打出仅在pc端时才会打印。
// appId: 'wx4c497eddcec4a0e7', // 必填,公众号的唯一标识
// timestamp: '', // 必填,生成签名的时间戳
// nonceStr: '', // 必填,生成签名的随机串
// signature: '', // 必填,签名
// jsApiList: [] // 必填需要使用的JS接口列表
// });