text: !
      function(a, b) {
          "function" == typeof define && (define.amd || define.cmd) ? define(function() {
              return b(a)
          }) : b(a, !0)
      } (this,
          function(a, b) {
              function c(b, c, d) {
                  a.WeixinJSBridge ? WeixinJSBridge.invoke(b, e(c),
                      function(a) {
                          g(b, a, d)
                      }) : j(b, d)
              }
              function d(b, c, d) {
                  a.WeixinJSBridge ? WeixinJSBridge.on(b,
                      function(a) {
                          d && d.trigger && d.trigger(a),
                              g(b, a, c)
                      }) : d ? j(b, d) : j(b, c)
              }
              function e(a) {
                  return a = a || {},
                      a.appId = z.appId,
                      a.verifyAppId = z.appId,
                      a.verifySignType = "sha1",
                      a.verifyTimestamp = z.timestamp + "",
                      a.verifyNonceStr = z.nonceStr,
                      a.verifySignature = z.signature,
                      a
              }
              function f(a) {
                  return {
                      timeStamp: a.timestamp + "",
                      nonceStr: a.nonceStr,
                      "package": a.package,
                      paySign: a.paySign,
                      signType: a.signType || "SHA1"
                  }
              }
              function g(a, b, c) {
                  var d, e, f;
                  switch (delete b.err_code, delete b.err_desc, delete b.err_detail, d = b.errMsg, d || (d = b.err_msg, delete b.err_msg, d = h(a, d), b.errMsg = d), c = c || {},
                  c._complete && (c._complete(b), delete c._complete), d = b.errMsg || "", z.debug && !c.isInnerInvoke && alert(JSON.stringify(b)), e = d.indexOf(":"), f = d.substring(e + 1)) {
                      case "ok":
                          c.success && c.success(b);
                          break;
                      case "cancel":
                          c.cancel && c.cancel(b);
                          break;
                      default:
                          c.fail && c.fail(b)
                  }
                  c.complete && c.complete(b)
              }
              function h(a, b) {
                  var e, f, c = a,
                      d = p[c];
                  return d && (c = d),
                      e = "ok",
                  b && (f = b.indexOf(":"), e = b.substring(f + 1), "confirm" == e && (e = "ok"), "failed" == e && (e = "fail"), -1 != e.indexOf("failed_") && (e = e.substring(7)), -1 != e.indexOf("fail_") && (e = e.substring(5)), e = e.replace(/_/g, " "), e = e.toLowerCase(), ("access denied" == e || "no permission to execute" == e) && (e = "permission denied"), "config" == c && "function not exist" == e && (e = "ok"), "" == e && (e = "fail")),
                      b = c + ":" + e
              }
              function i(a) {
                  var b, c, d, e;
                  if (a) {
                      for (b = 0, c = a.length; c > b; ++b) d = a[b],
                          e = o[d],
                      e && (a[b] = e);
                      return a
                  }
              }
              function j(a, b) {
                  if (! (!z.debug || b && b.isInnerInvoke)) {
                      var c = p[a];
                      c && (a = c),
                      b && b._complete && delete b._complete,
                          console.log('"' + a + '",', b || "")
                  }
              }
              function k() {
                  if (! ("6.0.2" > w || y.systemType < 0)) {
                      var b = new Image;
                      y.appId = z.appId,
                          y.initTime = x.initEndTime - x.initStartTime,
                          y.preVerifyTime = x.preVerifyEndTime - x.preVerifyStartTime,
                          C.getNetworkType({
                              isInnerInvoke: !0,
                              success: function(a) {
                                  y.networkType = a.networkType;
                                  var c = "https://open.weixin.qq.com/sdk/report?v=" + y.version + "&o=" + y.isPreVerifyOk + "&s=" + y.systemType + "&c=" + y.clientVersion + "&a=" + y.appId + "&n=" + y.networkType + "&i=" + y.initTime + "&p=" + y.preVerifyTime + "&u=" + y.url;
                                  b.src = c
                              }
                          })
                  }
              }
              function l() {
                  return (new Date).getTime()
              }
              function m(b) {
                  t && (a.WeixinJSBridge ? b() : q.addEventListener && q.addEventListener("WeixinJSBridgeReady", b, !1))
              }
              function n() {
                  C.invoke || (C.invoke = function(b, c, d) {
                      a.WeixinJSBridge && WeixinJSBridge.invoke(b, e(c), d)
                  },
                      C.on = function(b, c) {
                          a.WeixinJSBridge && WeixinJSBridge.on(b, c)
                      })
              }
              var o, p, q, r, s, t, u, v, w, x, y, z, A, B, C;
              if (!a.jWeixin) return o = {
                  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"
              },
                  p = function() {
                      var b, a = {};
                      for (b in o) a[o[b]] = b;
                      return a
                  } (),
                  q = a.document,
                  r = q.title,
                  s = navigator.userAgent.toLowerCase(),
                  t = -1 != s.indexOf("micromessenger"),
                  u = -1 != s.indexOf("android"),
                  v = -1 != s.indexOf("iphone") || -1 != s.indexOf("ipad"),
                  w = function() {
                      var a = s.match(/micromessenger\/(\d+\.\d+\.\d+)/) || s.match(/micromessenger\/(\d+\.\d+)/);
                      return a ? a[1] : ""
                  } (),
                  x = {
                      initStartTime: l(),
                      initEndTime: 0,
                      preVerifyStartTime: 0,
                      preVerifyEndTime: 0
                  },
                  y = {
                      version: 1,
                      appId: "",
                      initTime: 0,
                      preVerifyTime: 0,
                      networkType: "",
                      isPreVerifyOk: 1,
                      systemType: v ? 1 : u ? 2 : -1,
                      clientVersion: w,
                      url: encodeURIComponent(location.href)
                  },
                  z = {},
                  A = {
                      _completes: []
                  },
                  B = {
                      state: 0,
                      res: {}
                  },
                  m(function() {
                      x.initEndTime = l()
                  }),
                  C = {
                      config: function(a) {
                          z = a,
                              j("config", a);
                          var b = z.check === !1 ? !1 : !0;
                          m(function() {
                              var a, d, e;
                              if (b) c(o.config, {
                                      verifyJsApiList: i(z.jsApiList)
                                  },
                                  function() {
                                      A._complete = function(a) {
                                          x.preVerifyEndTime = l(),
                                              B.state = 1,
                                              B.res = a
                                      },
                                          A.success = function() {
                                              y.isPreVerifyOk = 0
                                          },
                                          A.fail = function(a) {
                                              A._fail ? A._fail(a) : B.state = -1
                                          };
                                      var a = A._completes;
                                      return a.push(function() {
                                          z.debug || k()
                                      }),
                                          A.complete = function() {
                                              for (var c = 0,
                                                       d = a.length; d > c; ++c) a[c]();
                                              A._completes = []
                                          },
                                          A
                                  } ()),
                                  x.preVerifyStartTime = l();
                              else {
                                  for (B.state = 1, a = A._completes, d = 0, e = a.length; e > d; ++d) a[d]();
                                  A._completes = []
                              }
                          }),
                          z.beta && n()
                      },
                      ready: function(a) {
                          0 != B.state ? a() : (A._completes.push(a), !t && z.debug && a())
                      },
                      error: function(a) {
                          "6.0.2" > w || ( - 1 == B.state ? a(B.res) : A._fail = a)
                      },
                      checkJsApi: function(a) {
                          var b = function(a) {
                              var c, d, b = a.checkResult;
                              for (c in b) d = p[c],
                              d && (b[d] = b[c], delete b[c]);
                              return a
                          };
                          c("checkJsApi", {
                                  jsApiList: i(a.jsApiList)
                              },
                              function() {
                                  return a._complete = function(a) {
                                      if (u) {
                                          var c = a.checkResult;
                                          c && (a.checkResult = JSON.parse(c))
                                      }
                                      a = b(a)
                                  },
                                      a
                              } ())
                      },
                      onMenuShareTimeline: function(a) {
                          d(o.onMenuShareTimeline, {
                                  complete: function() {
                                      c("shareTimeline", {
                                              title: a.title || r,
                                              desc: a.title || r,
                                              img_url: a.imgUrl || "",
                                              link: a.link || location.href,
                                              type: a.type || "link",
                                              data_url: a.dataUrl || ""
                                          },
                                          a)
                                  }
                              },
                              a)
                      },
                      onMenuShareAppMessage: function(a) {
                          d(o.onMenuShareAppMessage, {
                                  complete: function() {
                                      c("sendAppMessage", {
                                              title: a.title || r,
                                              desc: a.desc || "",
                                              link: a.link || location.href,
                                              img_url: a.imgUrl || "",
                                              type: a.type || "link",
                                              data_url: a.dataUrl || ""
                                          },
                                          a)
                                  }
                              },
                              a)
                      },
                      onMenuShareQQ: function(a) {
                          d(o.onMenuShareQQ, {
                                  complete: function() {
                                      c("shareQQ", {
                                              title: a.title || r,
                                              desc: a.desc || "",
                                              img_url: a.imgUrl || "",
                                              link: a.link || location.href
                                          },
                                          a)
                                  }
                              },
                              a)
                      },
                      onMenuShareWeibo: function(a) {
                          d(o.onMenuShareWeibo, {
                                  complete: function() {
                                      c("shareWeiboApp", {
                                              title: a.title || r,
                                              desc: a.desc || "",
                                              img_url: a.imgUrl || "",
                                              link: a.link || location.href
                                          },
                                          a)
                                  }
                              },
                              a)
                      },
                      onMenuShareQZone: function(a) {
                          d(o.onMenuShareQZone, {
                                  complete: function() {
                                      c("shareQZone", {
                                              title: a.title || r,
                                              desc: a.desc || "",
                                              img_url: a.imgUrl || "",
                                              link: a.link || location.href
                                          },
                                          a)
                                  }
                              },
                              a)
                      },
                      startRecord: function(a) {
                          c("startRecord", {},
                              a)
                      },
                      stopRecord: function(a) {
                          c("stopRecord", {},
                              a)
                      },
                      onVoiceRecordEnd: function(a) {
                          d("onVoiceRecordEnd", a)
                      },
                      playVoice: function(a) {
                          c("playVoice", {
                                  localId: a.localId
                              },
                              a)
                      },
                      pauseVoice: function(a) {
                          c("pauseVoice", {
                                  localId: a.localId
                              },
                              a)
                      },
                      stopVoice: function(a) {
                          c("stopVoice", {
                                  localId: a.localId
                              },
                              a)
                      },
                      onVoicePlayEnd: function(a) {
                          d("onVoicePlayEnd", a)
                      },
                      uploadVoice: function(a) {
                          c("uploadVoice", {
                                  localId: a.localId,
                                  isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1
                              },
                              a)
                      },
                      downloadVoice: function(a) {
                          c("downloadVoice", {
                                  serverId: a.serverId,
                                  isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1
                              },
                              a)
                      },
                      translateVoice: function(a) {
                          c("translateVoice", {
                                  localId: a.localId,
                                  isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1
                              },
                              a)
                      },
                      chooseImage: function(a) {
                          c("chooseImage", {
                                  scene: "1|2",
                                  count: a.count || 9,
                                  sizeType: a.sizeType || ["original", "compressed"],
                                  sourceType: a.sourceType || ["album", "camera"]
                              },
                              function() {
                                  return a._complete = function(a) {
                                      if (u) {
                                          var b = a.localIds;
                                          b && (a.localIds = JSON.parse(b))
                                      }
                                  },
                                      a
                              } ())
                      },
                      previewImage: function(a) {
                          c(o.previewImage, {
                                  current: a.current,
                                  urls: a.urls
                              },
                              a)
                      },
                      uploadImage: function(a) {
                          c("uploadImage", {
                                  localId: a.localId,
                                  isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1
                              },
                              a)
                      },
                      downloadImage: function(a) {
                          c("downloadImage", {
                                  serverId: a.serverId,
                                  isShowProgressTips: 0 == a.isShowProgressTips ? 0 : 1
                              },
                              a)
                      },
                      getNetworkType: function(a) {
                          var b = function(a) {
                              var c, d, e, b = a.errMsg;
                              if (a.errMsg = "getNetworkType:ok", c = a.subtype, delete a.subtype, c) a.networkType = c;
                              else switch (d = b.indexOf(":"), e = b.substring(d + 1)) {
                                  case "wifi":
                                  case "edge":
                                  case "wwan":
                                      a.networkType = e;
                                      break;
                                  default:
                                      a.errMsg = "getNetworkType:fail"
                              }
                              return a
                          };
                          c("getNetworkType", {},
                              function() {
                                  return a._complete = function(a) {
                                      a = b(a)
                                  },
                                      a
                              } ())
                      },
                      openLocation: function(a) {
                          c("openLocation", {
                                  latitude: a.latitude,
                                  longitude: a.longitude,
                                  name: a.name || "",
                                  address: a.address || "",
                                  scale: a.scale || 28,
                                  infoUrl: a.infoUrl || ""
                              },
                              a)
                      },
                      getLocation: function(a) {
                          a = a || {},
                              c(o.getLocation, {
                                      type: a.type || "wgs84"
                                  },
                                  function() {
                                      return a._complete = function(a) {
                                          delete a.type
                                      },
                                          a
                                  } ())
                      },
                      hideOptionMenu: function(a) {
                          c("hideOptionMenu", {},
                              a)
                      },
                      showOptionMenu: function(a) {
                          c("showOptionMenu", {},
                              a)
                      },
                      closeWindow: function(a) {
                          a = a || {},
                              c("closeWindow", {
                                      immediate_close: a.immediateClose || 0
                                  },
                                  a)
                      },
                      hideMenuItems: function(a) {
                          c("hideMenuItems", {
                                  menuList: a.menuList
                              },
                              a)
                      },
                      showMenuItems: function(a) {
                          c("showMenuItems", {
                                  menuList: a.menuList
                              },
                              a)
                      },
                      hideAllNonBaseMenuItem: function(a) {
                          c("hideAllNonBaseMenuItem", {},
                              a)
                      },
                      showAllNonBaseMenuItem: function(a) {
                          c("showAllNonBaseMenuItem", {},
                              a)
                      },
                      scanQRCode: function(a) {
                          a = a || {},
                              c("scanQRCode", {
                                      needResult: a.needResult || 0,
                                      scanType: a.scanType || ["qrCode", "barCode"]
                                  },
                                  function() {
                                      return a._complete = function(a) {
                                          var b, c;
                                          v && (b = a.resultStr, b && (c = JSON.parse(b), a.resultStr = c && c.scan_code && c.scan_code.scan_result))
                                      },
                                          a
                                  } ())
                      },
                      openProductSpecificView: function(a) {
                          c(o.openProductSpecificView, {
                                  pid: a.productId,
                                  view_type: a.viewType || 0,
                                  ext_info: a.extInfo
                              },
                              a)
                      },
                      addCard: function(a) {
                          var e, f, g, h, b = a.cardList,
                              d = [];
                          for (e = 0, f = b.length; f > e; ++e) g = b[e],
                              h = {
                                  card_id: g.cardId,
                                  card_ext: g.cardExt
                              },
                              d.push(h);
                          c(o.addCard, {
                                  card_list: d
                              },
                              function() {
                                  return a._complete = function(a) {
                                      var c, d, e, b = a.card_list;
                                      if (b) {
                                          for (b = JSON.parse(b), c = 0, d = b.length; d > c; ++c) e = b[c],
                                              e.cardId = e.card_id,
                                              e.cardExt = e.card_ext,
                                              e.isSuccess = e.is_succ ? !0 : !1,
                                              delete e.card_id,
                                              delete e.card_ext,
                                              delete e.is_succ;
                                          a.cardList = b,
                                              delete a.card_list
                                      }
                                  },
                                      a
                              } ())
                      },
                      chooseCard: function(a) {
                          c("chooseCard", {
                                  app_id: z.appId,
                                  location_id: a.shopId || "",
                                  sign_type: a.signType || "SHA1",
                                  card_id: a.cardId || "",
                                  card_type: a.cardType || "",
                                  card_sign: a.cardSign,
                                  time_stamp: a.timestamp + "",
                                  nonce_str: a.nonceStr
                              },
                              function() {
                                  return a._complete = function(a) {
                                      a.cardList = a.choose_card_info,
                                          delete a.choose_card_info
                                  },
                                      a
                              } ())
                      },
                      openCard: function(a) {
                          var e, f, g, h, b = a.cardList,
                              d = [];
                          for (e = 0, f = b.length; f > e; ++e) g = b[e],
                              h = {
                                  card_id: g.cardId,
                                  code: g.code
                              },
                              d.push(h);
                          c(o.openCard, {
                                  card_list: d
                              },
                              a)
                      },
                      chooseWXPay: function(a) {
                          c(o.chooseWXPay, f(a), a)
                      }
                  },
              b && (a.wx = a.jWeixin = C),
                  C
          });