! function(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, s, d, o, l, u, p, f, m, g, h, S, y, I, _, w, v, 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 = function() { var e, n = {}; for (e in a) n[a[e]] = e; return n }(), n = r.document, i = n.title, t = navigator.userAgent.toLowerCase(), f = navigator.platform .toLowerCase(), s = !(!f.match("mac") && !f.match("win")), d = -1 != t.indexOf("wxdebugger"), o = -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: B(), 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: {} }, L(function() { m.initEndTime = B() }), I = !1, _ = [], w = { config: function(e) { P("config", h = e); var o = !1 !== h.check; L(function() { if (o) k(a.config, { verifyJsApiList: A(h.jsApiList) }, (S._complete = function(e) { m.preVerifyEndTime = B(), 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() { var n; s || d || h.debug || p < "6.0.2" || g.systemType < 0 || (n = new Image, g.appId = h.appId, g.initTime = m .initEndTime - m.initStartTime, g.preVerifyTime = m .preVerifyEndTime - m.preVerifyStartTime, w .getNetworkType({ isInnerInvoke: !0, success: function(e) { g.networkType = e.networkType, n .src = "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 } })) }), S.complete = function(e) { for (var n = 0, i = t.length; n < i; ++n) t[n](); S._completes = [] }, S)), m.preVerifyStartTime = B(); else { y.state = 1; for (var e = S._completes, n = 0, i = e.length; n < i; ++n) e[n](); S._completes = [] } var t }), h.beta && !w.invoke && (w.invoke = function(e, n, i) { r.WeixinJSBridge && WeixinJSBridge.invoke(e, M(n), i) }, w.on = function(e, n) { r.WeixinJSBridge && WeixinJSBridge.on(e, n) }) }, ready: function(e) { (0 != y.state || (S._completes.push(e), !o && 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) { x(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) { x(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) { x(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) { x(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) { x(a.onMenuShareQZone, { complete: function() { k("shareQZone", { title: e.title || i, desc: e.desc || "", img_url: e.imgUrl || "", link: e.link || location.href }, e) } }, e) }, startRecord: function(e) { k("startRecord", {}, e) }, stopRecord: function(e) { k("stopRecord", {}, e) }, onVoiceRecordEnd: function(e) { x("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) { x("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) { 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 < _.length && (n = _.shift(), wx.getLocalImgData(n)) }, e))) : _.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, C(e), e) }, openEnterpriseRedPacket: function(e) { k(a.openEnterpriseRedPacket, C(e), e) }, startSearchBeacons: function(e) { k(a.startSearchBeacons, { ticket: e.ticket }, e) }, stopSearchBeacons: function(e) { k(a.stopSearchBeacons, {}, e) }, onSearchBeacons: function(e) { x(a.onSearchBeacons, e) }, openEnterpriseChat: function(e) { k("openEnterpriseChat", { useridlist: e.userIds, chatname: e.groupName }, e) } }, v = 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 = v++, 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, e.src, "IMG" != n && "VIDEO" != n && "AUDIO" != n && "SOURCE" != n) || (n = e["wx-id"]) && (T[n] = !1) }, !0), e && (r.wx = r.jWeixin = w), w; function k(n, e, i) { r.WeixinJSBridge ? WeixinJSBridge.invoke(n, M(e), function(e) { V(n, e, i) }) : P(n, i) } function x(n, i, t) { r.WeixinJSBridge ? WeixinJSBridge.on(n, function(e) { t && t.trigger && t.trigger(e), V(n, e, i) }) : P(n, t || i) } function M(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 C(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 && (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 = function(e, n) { var i = c[e]; i && (e = i); i = "ok"; { var t; n && (t = n.indexOf(":"), "access denied" != (i = (i = (i = -1 != (i = -1 != (i = "failed" == (i = "confirm" == (i = n.substring(t + 1)) ? "ok" : i) ? "fail" : i).indexOf("failed_") ? i .substring(7) : i).indexOf("fail_") ? i.substring(5) : i).replace( /_/g, " ")).toLowerCase()) && "no permission to execute" != i || (i = "permission denied"), "" == (i = "config" == e && "function not exist" == i ? "ok" : i)) && (i = "fail") } return n = e + ":" + i }(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 P(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() { return (new Date).getTime() } function L(e) { o && (r.WeixinJSBridge ? e() : n.addEventListener && n.addEventListener("WeixinJSBridgeReady", e, !1)) } });