{"id":75,"date":"2023-12-21T09:34:24","date_gmt":"2023-12-21T01:34:24","guid":{"rendered":"http:\/\/www.zrxf.xyz\/?p=75"},"modified":"2023-12-21T16:04:25","modified_gmt":"2023-12-21T08:04:25","slug":"%e5%be%ae%e4%bf%a1-%e6%94%af%e4%bb%98%e5%ae%9d-%e4%ba%ba%e8%84%b8%e8%af%86%e5%88%ab%e8%ae%a4%e8%af%81","status":"publish","type":"post","link":"http:\/\/www.zrxf.xyz\/?p=75","title":{"rendered":"\u5fae\u4fe1-\u652f\u4ed8\u5b9d&#8212;\u4eba\u8138\u8bc6\u522b\u8ba4\u8bc1"},"content":{"rendered":"<p>\u4eba\u8138\u8bc6\u522b\u4ee3\u7801\u89e3\u8bfb\u8d77\u6765\u592a\u590d\u6742\uff0c\u4ee5\u4e0b\u4ee3\u7801\u5927\u81f4\u5c31\u662f\u5fae\u4fe1\u652f\u4ed8\u5b9d\u4eba\u8138\u8bc6\u522b\u8ba4\u8bc1\u7684\u5168\u90e8\u6d41\u7a0b\uff0c\u5927\u7ea6\u6bcf\u4e00\u884c\u4ee3\u7801\u90fd\u505a\u4e86\u8be6\u7ec6\u7684\u6ce8\u91ca\uff0c\u53ef\u80fd\u4f1a\u6709\u4e0d\u5b8c\u5584\u7684\u53ef\u4ee5\u6307\u51fa\u6765\uff0c\u5177\u4f53\u7684\u4e1a\u52a1\u903b\u8f91\u540e\u7eed\u4f1a\u505a\u8fdb\u4e00\u6b65\u7684\u6574\u7406\u8bf4\u660e\u3002<\/p>\n<p> \u5148\u5f15\u5165\u8fdb\u6765\u51e0\u4e2a\u5c01\u88c5\u7684\u63a5\u53e3\u65b9\u6cd5\uff1a<\/p>\n<p>import { facewxauth, facewxback, wxSdk } from &#8220;@\/api\/module\/base&#8221;;<br \/>\nimport wx from &#8220;weixin-js-sdk&#8221;; <\/p>\n<p>import axios from &#8216;@\/libs\/api.request&#8217;<br \/>\nimport qs from &#8216;qs&#8217;<\/p>\n<p>\/\/\u5fae\u4fe1sdk<br \/>\nexport const wxSdk = (data) =&gt; {<br \/>\n  return axios.request({<br \/>\n    url: &#8216;\/auth\/wx\/jssdksignature.do&#8217;,<br \/>\n    method: &#8216;post&#8217;,<br \/>\n    data: qs.stringify(data)<br \/>\n  })<br \/>\n}<\/p>\n<p>\/\/\u5fae\u4fe1\u4eba\u8138\u8bc6\u522b\u521d\u59cb\u5316<br \/>\nexport const facewxauth = (data) =&gt; {<br \/>\n  return axios.request({<br \/>\n    url: &#8216;\/icard\/face\/wx-auth.do&#8217;,<br \/>\n    method: &#8216;post&#8217;,<br \/>\n    data: qs.stringify(data)<br \/>\n  })<br \/>\n}<\/p>\n<p>\/\/\u5fae\u4fe1\u4eba\u8138\u8bc6\u522b\u7ed3\u679c\u67e5\u8be2<br \/>\nexport const facewxback = (data) =&gt; {<br \/>\n  return axios.request({<br \/>\n    url: &#8216;\/icard\/face\/wx-auth-callback.do&#8217;,<br \/>\n    method: &#8216;post&#8217;,<br \/>\n    data: qs.stringify(data)<br \/>\n  })<br \/>\n}<br \/>\nnavigator\u662fHTML\u4e2d\u7684\u5185\u7f6e\u5bf9\u8c61\uff0c\u5305\u542b\u6d4f\u89c8\u5668\u7684\u4fe1\u606f\uff1buserAgent\u662fnavigator\u7684\u5c5e\u6027\u65b9\u6cd5\uff0c\u53ef\u4ee5\u8fd4\u56de\u7531\u5ba2\u6237\u673a\u53d1\u9001\u670d\u52a1\u5668\u7684\u5934\u90e8\u7684\u503c\uff0c\u53ef\u4ee5\u5224\u65ad\u7528\u6237\u4f7f\u7528\u54ea\u4e2a\u7aef\u7684\u54ea\u79cd\u6d4f\u89c8\u5668\u6253\u5f00\u9875\u9762\u3002\u4f5c\u7528\u5176\u5b9e\u5c31\u662f\u8fd4\u56de\u5f53\u524d\u7528\u6237\u6240\u4f7f\u7528\u7684\u662f\u4ec0\u4e48\u6d4f\u89c8\u5668\uff0ctoLowerCase(\uff09\u662f\u5c06\u8f6c\u6362\u4e3a\u5c0f\u5199\u3002<\/p>\n<p>userAgent\u53d8\u91cf\u63a5\u6536\u7684\u4fe1\u606f\u5728\u8fd9\u91cc\u7684\u610f\u601d\u5c31\u662f\u5f53\u524d\u7528\u6237\u6240\u4f7f\u7528\u7684\u6d4f\u89c8\u5668\u4fe1\u606f\uff0c\u53d6\u5f97\u6d4f\u89c8\u5668\u7684userAgent\u5b57\u7b26\u4e32<\/p>\n<p>let userAgent = window.navigator.userAgent.toLowerCase();<br \/>\nmicromessenger\u4e3a\u5fae\u4fe1\u5185\u5d4c\u7684\u6d4f\u89c8\u5668 \uff0c\u901a\u8fc7userAgent\u662f\u5426indexOf\u5305\u542bMicroMessenger\u6765\u5224\u65ad\u662f\u5426\u5728\u5fae\u4fe1\u5185\u7f6e\u6d4f\u89c8\u5668\u6253\u5f00\u7f51\u9875 <\/p>\n<p>let userAgent = window.navigator.userAgent.toLowerCase(); <\/p>\n<p>if (userAgent.indexOf(&#8220;micromessenger&#8221;) &gt; -1) {<br \/>\n        \/\/ \u4ee3\u7801\u6267\u884c\u8fdb\u6765\uff0c\u5219\u8868\u660e\u662f\u5728\u5fae\u4fe1\u5185\u7f6e\u7684\u6d4f\u89c8\u5668\u4e2d\u64cd\u4f5c\u7684<br \/>\n        \/\/ \u8c03\u7528jssdk\u4eba\u8138\u6838\u8eab\u6821\u9a8c<br \/>\n        let req = { userName: this.name, userCardNo: this.cardNo };<br \/>\n        \/\/\u4eba\u8138\u8bc6\u522b\u524d\u5148\u8fdb\u884c\u4e00\u6b21\u521d\u59cb\u5316\uff0c\u8c03\u7528\u5fae\u4fe1\u4eba\u8138\u8bc6\u522b\u521d\u59cb\u5316\u5c01\u88c5\u63a5\u53e3\u7684\u65b9\u6cd5facewxauth()\uff0c\u4f20\u5165\u53c2\u6570\u4e3a\u7528\u6237\u672c\u4eba\u7684\u4fe1\u606f<br \/>\n        facewxauth(req).then((res) =&gt; {<br \/>\n          \/\/ \u7528navigator.userAgent\u8fd9\u79cd\u65b9\u6cd5\u53ef\u4ee5\u5224\u65ad\u7528\u6237\u4f7f\u7528\u54ea\u4e2a\u7aef\u7684\u54ea\u79cd\u6d4f\u89c8\u5668\u6253\u5f00\u9875\u9762<br \/>\n          var u = navigator.userAgent,<br \/>\n            app = navigator.appVersion;<br \/>\n          \/\/ \u53d6\u5230\u6d4f\u89c8\u5668\u4fe1\u606f\uff0c\u8fd0\u884c\u903b\u8f91\u5224\u65ad\u662f\u54ea\u4e2a\u7aef\u6253\u5f00\u7684\u6d4f\u89c8\u5668\uff0c\u8fd9\u91cc\u5224\u65ad\u662f\u5426\u662f\u5b89\u5353\u7aef<br \/>\n          var isAndroid = u.indexOf(&#8220;Android&#8221;) &gt; -1 || u.indexOf(&#8220;Linux&#8221;) &gt; -1; \/\/g<br \/>\n          \/\/ match() \u2f45\u6cd5\u53ef\u5728\u5b57\u7b26\u4e32\u5185\u68c0\u7d22\u6307\u5b9a\u7684\u503c\uff0c\u6216\u627e\u5230\u2f00\u4e2a\u6216\u591a\u4e2a\u6b63\u5219\u8868\u8fbe\u5f0f\u7684\u5339\u914d<br \/>\n          \/\/ \u5224\u65ad\u7ed3\u679c\u65f6\u8fd9\u91cc\u5224\u65ad\u662f\u5426\u662fios\u7ec8\u7aef<br \/>\n          var isIOS = !!u.match(\/\\(i[^;]+;( U;)? CPU.+Mac OS X\/); \/\/ios\u7ec8\u7aef<\/p>\n<p>          \/\/ \u53d6\u5230\u4eba\u8138\u8bc6\u522b\u521d\u59cb\u5316\u6210\u529f\u540e\u7684\u7ed3\u679c rsp<br \/>\n          let rsp = res.data;<br \/>\n;<br \/>\n          \/\/ \u8fd4\u56de\u7684code\u4e3a200\u65f6\uff0c\u8868\u660e\u521d\u59cb\u5316\u6210\u529f\u4e86<br \/>\n          if (rsp.code == 200) {<br \/>\n            \/\/   \u53d6\u5230\u521d\u59cb\u5316\u6210\u529f\u540e\u7684\u6570\u636e data1<br \/>\n            let data1 = rsp.data;<\/p>\n<p>            \/\/ \u8c03\u7528\u5fae\u4fe1jssdk<br \/>\n            let datas = {<br \/>\n              \/\/ \u5224\u65ad\u8df3\u8f6c\u7684\u5730\u5740\u662f\u5b89\u5353\u8fd8\u662fios\uff0c\u4e24\u4e2a\u4e0d\u4e00\u6837\uff0c\u6240\u4ee5\u9700\u8981\u5224\u65ad\u4e00\u4e0b<br \/>\n              url: isAndroid<br \/>\n                ? window.location.href<br \/>\n                : process.env.VUE_APP_BASE_URL +<br \/>\n                  process.env.VUE_APP_PUBLICPATH +<br \/>\n                  &#8220;faceauth&#8221;,<br \/>\n            };<\/p>\n<p>            \/\/\u8c03\u7528\u5fae\u4fe1sdk\u5c01\u88c5\u63a5\u53e3\u7684\u65b9\u6cd5wxSdk(),\u63a5\u53d7\u4e00\u4e2a\u53c2\u6570\u662f\u5730\u5740<br \/>\n            wxSdk(datas).then((res) =&gt; {<br \/>\n              \/\/ \u628athis\u7684\u6307\u5411\u91cd\u65b0\u8d4b\u503c<br \/>\n              var that = this;<br \/>\n              \/\/ \u53d6\u5230sdk\u63a5\u53e3\u8c03\u7528\u6210\u529f\u8fd4\u56de\u7684\u7ed3\u679c<br \/>\n              let data = res.data.data;<br \/>\n              \/\/ wx \u5c31\u662f\u5f15\u5165\u7684\u5fae\u4fe1\u5185\u7684\u7f51\u9875\u5f00\u53d1\u5de5\u5177js-sdk\u5305\uff0c\u6240\u6709\u9700\u8981\u4f7f\u7528JS-SDK\u7684\u9875\u9762\u5fc5\u987b\u5148\u6ce8\u5165\u914d\u7f6e\u4fe1\u606f\uff0c\u5426\u5219\u5c06\u65e0\u6cd5\u8c03\u7528\uff0c\u901a\u8fc7config\u63a5\u53e3\u6ce8\u5165\u6743\u9650\u9a8c\u8bc1\u914d\u7f6e<br \/>\n              wx.config({<br \/>\n                beta: true, \/\/ \u5fc5\u586b\uff0c\u5f00\u542f\u5185\u6d4b\u63a5\u53e3\u8c03\u7528\uff0c\u6ce8\u5165 wx.invoke \u548c wx.on \u65b9\u6cd5<br \/>\n                debug: false, \/\/ \u9009\u586b\uff0c\u5f00\u542f\u8c03\u8bd5\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u4e3a false \u4e0d\u5f00\u542f<br \/>\n                appId: data.appid, \/\/ \u5fc5\u586b\uff0c\u516c\u4f17\u53f7\u7684\u552f\u4e00\u6807\u8bc6<br \/>\n                timestamp: data.timeStamp, \/\/ \u5fc5\u586b\uff0c\u751f\u6210\u7b7e\u540d\u7684\u65f6\u95f4\u6233<br \/>\n                nonceStr: data.nonceStr, \/\/ \u5fc5\u586b\uff0c\u751f\u6210\u7b7e\u540d\u7684\u968f\u673a\u4e32<br \/>\n                signature: data.signature, \/\/ \u5fc5\u586b\uff0c\u7b7e\u540d<br \/>\n                jsApiList: [&#8220;requestWxFacePictureVerify&#8221;], \/\/ \u5fc5\u586b\uff0c\u9700\u8981\u4f7f\u7528\u7684S\u63a5\u53e3\u5217\u8868<br \/>\n              });<\/p>\n<p>              \/\/config\u4fe1\u606f\u9a8c\u8bc1\u540e\u4f1a\u6267\u884cready\u65b9\u6cd5\uff0c\u4ece\u8fd9\u91cc\u5f00\u59cb\uff0c\u7b97\u662f\u5f00\u59cb\u4eba\u8138\u8bc6\u522b\u8ba4\u8bc1\u4e86\uff0c\u4e4b\u524d\u90fd\u662f\u5728\u505a\u4e00\u4e9b\u914d\u7f6e<br \/>\n              \/\/ \u901a\u8fc7ready\u63a5\u53e3\u5904\u7406\u4eba\u8138\u8bc6\u522b\u6210\u529f\u9a8c\u8bc1<br \/>\n              wx.ready(function () {<br \/>\n                \/\/ \u8c03\u7528wx.invoke\u65b9\u6cd5\uff0c\u4f20\u51653\u4e2a\u53c2\u6570\uff0c\u7b2c\u4e00\u4e2a\u53c2\u6570\u662f\u5fae\u4fe1\u5c0f\u7a0b\u5e8f\u6216\u8005\u7f51\u9875\u4eba\u8138\u8bc6\u522b\u7684\u63a5\u53e3\u8ba4\u8bc1requestWxFacePictureVerify\uff0c\u7b2c\u4e8c\u4e2a\u53c2\u6570\u662f\u4e00\u4e2a\u914d\u7f6e\u5bf9\u8c61\uff0c\u5bf9\u8c61\u542b-\u8c03\u7528\u5fae\u4fe1sdk\u83b7\u53d6\u7684appid\uff0c\u8c03\u7528\u5fae\u4fe1\u521d\u59cb\u5316\u63a5\u53e3\u83b7\u53d6\u7684 userIdKey<br \/>\n                wx.invoke(<br \/>\n                  &#8220;requestWxFacePictureVerify&#8221;,<br \/>\n                  {<br \/>\n                    \/\/ \u8c03\u7528\u5fae\u4fe1sdk\u83b7\u53d6\u7684appid<br \/>\n                    appId: data.appid,<br \/>\n                    \/\/ \u8c03\u7528\u5fae\u4fe1\u521d\u59cb\u5316\u63a5\u53e3\u83b7\u53d6\u7684 userIdKey \uff0c\u8fd9\u91cc\u662f\u4e09\u5143\u5224\u65ad<br \/>\n                    request_verify_pre_info: data1.userIdKey<br \/>\n                      ? &#8216;{&#8220;user_id_key&#8221;:&#8221;&#8216; + data1.userIdKey + &#8216;&#8221;}&#8217;<br \/>\n                      : &#8220;{}&#8221;,<br \/>\n                    \/\/ check_alive_type\u4eba\u8138\u6838\u9a8c\u4ea4\u4e92\u65b9\u5f0f\uff0c\u4e3a1\u5c4f\u5e55\u95ea\u70c1<br \/>\n                    check_alive_type: &#8220;1&#8221;,<br \/>\n                  },<br \/>\n                  \/\/ \u4ee3\u7801\u6267\u884c\u56de\u8c03\u5230\u8fd9\u8bf4\u660e\uff0c\u5fae\u4fe1\u4eba\u8138\u8bc6\u522b\u63a5\u53e3\u9a8c\u8bc1\u901a\u8fc7<br \/>\n                  function (res) {<br \/>\n                    if (res.err_code == 0) {<br \/>\n                      that.$toast.loading({<br \/>\n                        message: &#8220;\u52a0\u8f7d\u4e2d&#8230;&#8221;,<br \/>\n                        forbidClick: true,<br \/>\n                        duration: 0,<br \/>\n                      });<br \/>\n                      \/\/\u5982\u679cres.err_code == 0\u5c31\u8c03\u7528\u6838\u8eab\u56de\u8c03\u63a5\u53e3<br \/>\n                      \/\/\u8c03\u7528 \u5fae\u4fe1\u4eba\u8138\u8bc6\u522b\u7ed3\u679c\u67e5\u8be2\u7684\u63a5\u53e3<br \/>\n                      facewxback({ verifyResult: res.verify_result }).then(<br \/>\n                        (res) =&gt; {<br \/>\n                          \/\/ \u6e05\u9664loading\u63d0\u793a\u6548\u679c<br \/>\n                          that.$toast.clear();<br \/>\n                          \/\/ \u53d6\u5230\u4eba\u8138\u8bc6\u7684\u7ed3\u679c\u7528backRsp\u53c2\u6570\u63a5\u6536<br \/>\n                          let backRsp = res.data;<br \/>\n                          \/\/ \u82e5code == 200\u6b64\u65f6\u5c31\u53ef\u4ee5\u505a\u4eba\u8138\u8ba4\u8bc1\u6210\u529f\u540e\u7684\u64cd\u4f5c\u4e86<br \/>\n                          if (backRsp.code == 200) {<br \/>\n                            \/\/ \u8ba4\u8bc1\u6210\u529f\u540e\u5982\u679c\u662f\u8981\u8df3\u8f6c\u9875\u9762\u5fc5\u987b\u5f97\u7528window.location.href\u8df3\u8f6c<br \/>\n                            window.location.href =<br \/>\n                              process.env.VUE_APP_BASE_URL +<br \/>\n                              process.env.VUE_APP_PUBLICPATH +<br \/>\n                              &#8220;home&#8221;;<br \/>\n                          } else {<br \/>\n                            \/\/ \u4e0d\u6210\u529f\u5373\u63d0\u793a<br \/>\n                            this.$dialog({<br \/>\n                              title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n                              message: backRsp.msg,<br \/>\n                            }).then(() =&gt; {});<br \/>\n                          }<br \/>\n                        }<br \/>\n                      );<br \/>\n                    } else {<br \/>\n                      \/\/ \u5f53res.err_code \u4e0d\u4e3a 0\u65f6\uff0c\u8fdb\u884c\u9519\u8bef\u4e1a\u52a1\u63d0\u793a<br \/>\n                      let ret = res.err_msg;<br \/>\n                      if (res.err_code) {<br \/>\n                        ret += &#8221; err_code: &#8221; + res.err_code;<br \/>\n                      }<br \/>\n                      this.$dialog({<br \/>\n                        title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n                        message: ret,<br \/>\n                      }).then(() =&gt; {});<br \/>\n                    }<br \/>\n                  }<br \/>\n                );<br \/>\n              });<br \/>\n            });<br \/>\n          } else {<br \/>\n            \/\/ \u82e5\u4eba\u8138\u8bc6\u522b\u521d\u59cb\u5316\u5931\u8d25\uff0c\u8fdb\u884c\u9519\u8bef\u7684\u4e1a\u52a1\u63d0\u793a<br \/>\n            this.$dialog({<br \/>\n              title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n              message: rsp.msg,<br \/>\n            }).then(() =&gt; {});<br \/>\n          }<br \/>\n        });<br \/>\n        \/\/ \u5982\u679c\u662f\u652f\u4ed8\u5b9d\u63a5\u53e3\u4eba\u8138\u8ba4\u8bc1\u7684\u8bdd<br \/>\n      } else if (userAgent.indexOf(&#8220;alipayclient&#8221;) &gt; -1) {<br \/>\n        var that = this;<br \/>\n        \/\/ \u8c03\u7528\u652f\u4ed8\u5b9d\u7684\u63a5\u53e3\u4f20\u5165\u4e2a\u4eba\u4fe1\u606f\u8fdb\u884c\u4eba\u8138\u8bc6\u522b\u521d\u59cb\u5316<br \/>\n        facezfbauth({ userName: this.name, userCardNo: this.cardNo }).then(<br \/>\n          (res) =&gt; {<br \/>\n            \/\/ \u5f53code\u4e3a200\u65f6\uff0c\u4ee3\u8868\u521d\u59cb\u5316\u6210\u529f\u4e86<br \/>\n            if (res.data.code == 200) {<br \/>\n              \/\/ \u53d6\u5230\u521d\u59cb\u5316\u6210\u529f\u540e\u7684\u7ed3\u679c\u7528\u53d8\u91cfdata\u63a5\u6536<br \/>\n              let data = res.data.data;<br \/>\n              \/\/ \u8c03\u7528\u652f\u4ed8\u5b9d\u7684AlipayJSBridge.call\u65b9\u6cd5\uff0c\u7aef\u5185\u63a5\u5165\u652f\u4ed8\u5b9dh5\u9875\u9762\uff0cAlipayJSBridge\u662f\u652f\u4ed8\u5b9d\u5ba2\u6237\u7aef\u901a\u8fc7bridge\u673a\u5236\uff0c\u5141\u8bb8\u524d\u7aefH5\u9875\u9762\u901a\u8fc7\u7279\u5b9a\u7684JS\u65b9\u6cd5\uff0cAlipayJSBridge\u4e0d\u9700\u8981\u4efb\u4f55\u7684\u5f15\u7528\uff0c\u662f\u652f\u4ed8\u5b9d\u5728window.load\u540e\u76f4\u63a5\u5b58\u5728\u7684\u3002\u8fd9\u91cc\u63a5\u65363\u4e2a\u53c2\u6570\uff0c\u7b2c\u4e00\u4e2astartBizService\u63a5\u53e3\u53d1\u8d77\u8bf7\u6c42\u8ba4\u8bc1\uff0c\u7b2c\u4e00\u4e2a\u5524\u8d77\u8ba4\u8bc1\u6d41\u7a0b\u7684\u53c2\u6570\u5bf9\u8c61\uff0c\u53d1\u8d77\u8ba4\u8bc1\u7684\u4fe1\u606f\u5305\u62eccertifyId\u548c\u7f51\u5173url,\u4e24\u8005\u90fd\u901a\u8fc7\u670d\u52a1\u7aef\u7684\u76f8\u5173\u63a5\u53e3\u53d6\u5f97\uff0c\u8fd8\u6709\u4e00\u4e2acallback\u56de\u8c03\u51fd\u6570<br \/>\n              AlipayJSBridge.call(<br \/>\n                &#8220;startBizService&#8221;,<br \/>\n                \/\/ \u63a5\u5165\u4e00\u4e2aname\u5bf9\u8c61\uff0c\u5524\u8d77\u8ba4\u8bc1\u6d41\u7a0b,\u53d1\u8d77\u8ba4\u8bc1\u7684\u4fe1\u606f\u5305\u62eccertifyId\u548c\u7f51\u5173url,\u4e24\u8005\u90fd\u901a\u8fc7\u670d\u52a1\u7aef\u7684\u76f8\u5173\u63a5\u53e3\u53d6\u5f97\u3002<br \/>\n                {<br \/>\n                  name: &#8220;open-certify&#8221;,<br \/>\n                  param: JSON.stringify({<br \/>\n                    certifyId: data.certifyId,<br \/>\n                    url: data.certifyUrl,<br \/>\n                  }),<br \/>\n                },<br \/>\n                \/\/ \u6267\u884c\u5230\u56de\u8c03\u51fd\u6570\u8fd9\u91cc\u8ba4\u8bc1\u7ed3\u679c\u56de\u8c03\u5c31\u88ab\u89e6\u53d1\u4e86, \u7ee7\u7eed\u4ee5\u4e0b\u4e1a\u52a1\u5904\u7406\u903b\u8f91<br \/>\n                function (verifyResult) {<br \/>\n                  \/\/ \u8ba4\u8bc1\u7ed3\u679c\u56de\u8c03\u89e6\u53d1, \u4ee5\u4e0b\u5904\u7406\u903b\u8f91\u4e3a\u793a\u4f8b\u4ee3\u7801\uff0c\u5f00\u53d1\u8005\u53ef\u6839\u636e\u81ea\u8eab\u4e1a\u52a1\u7279\u6027\u6765\u81ea\u884c\u5904\u7406<br \/>\n                  if (verifyResult.resultStatus === &#8220;9000&#8221;) {<br \/>\n                    \/\/verifyResult.resultStatus === &#8220;9000&#8221;\u4ee3\u8868 \u9a8c\u8bc1\u6210\u529f\uff0c\u63a5\u5165\u65b9\u5728\u6b64\u5904\u5904\u7406\u540e\u7eed\u7684\u4e1a\u52a1\u903b\u8f91\u3002<br \/>\n                    \/\/ \u653e\u4e00\u4e2aloading\u52a0\u8f7d\u72b6\u6001<br \/>\n                    that.$toast.loading({<br \/>\n                      message: &#8220;\u52a0\u8f7d\u4e2d&#8230;&#8221;,<br \/>\n                      forbidClick: true,<br \/>\n                      duration: 0,<br \/>\n                    });<br \/>\n                    \/\/ \u9a8c\u8bc1\u6210\u529f\uff0c\u8c03\u7528facezfbback()\u63a5\u53e3,\u4f20\u5165\u4e00\u4e2a\u8bc1\u4e66ID\u53c2\u6570<br \/>\n                    facezfbback({<br \/>\n                      certifyId: data.certifyId,<br \/>\n                    }).then((res) =&gt; {<br \/>\n                      \/\/ \u9a8c\u8bc1\u6210\u529f\u540e\u6e05\u9664\u5f00\u542f\u7684loading<br \/>\n                      that.$toast.clear();<br \/>\n                      if (res.data.code == 200) {<br \/>\n                        \/\/ \u5224\u65ad\u9a8c\u8bc1\u7ed3\u679ccode\u662f\u5426\u4e3a200\uff0c\u662f\u7684\u8bdd\u8c03\u6574\u9a8c\u8bc1\u6210\u529f\u540e\u7684\u9875\u9762<br \/>\n                        window.location.href =<br \/>\n                          process.env.VUE_APP_API_BASE_URL +<br \/>\n                          process.env.VUE_APP_PUBLICPATH +<br \/>\n                          &#8220;\/index&#8221;;<br \/>\n                        return;<br \/>\n                      }<br \/>\n                    });<br \/>\n                  }<br \/>\n                  \/\/ \u7528\u6237\u4e3b\u52a8\u53d6\u6d88\u8ba4\u8bc1<br \/>\n                  if (verifyResult.resultStatus === &#8220;6001&#8221;) {<br \/>\n                    \/\/ \u53ef\u505a\u4e0b toast \u5f31\u63d0\u793a<br \/>\n                    that.$toast(&#8220;\u5df2\u53d6\u6d88\u8ba4\u8bc1&#8221;);<br \/>\n                  }<br \/>\n                }<br \/>\n              );<br \/>\n            }<br \/>\n          }<br \/>\n        );<br \/>\n      }<br \/>\n \u53e6\u4e00\u4e2a\u5237\u8138\u8ba4\u8bc1\u7684\u903b\u8f91\u4ee3\u7801\uff0c\u548c\u4e0a\u9762\u51e0\u4e4e\u662f\u5927\u540c\u5c0f\u5f02\u7684\uff1a<\/p>\n<p>import wx from &#8220;weixin-js-sdk&#8221;;<br \/>\nimport { wxF, wxC, getInformation, zfbF, zfbC, wxSdk } from &#8220;@\/api\/module\/auth&#8221;;<br \/>\nimport config from &#8220;@\/config\/index&#8221;;<br \/>\nface() {<br \/>\n      var that = this;<br \/>\n      if (this.username == &#8220;&#8221; || this.usercard == &#8220;&#8221; || this.phone == &#8220;&#8221;) {<br \/>\n        Dialog.alert({<br \/>\n          title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n          \/\/ message: backRsp.msg<br \/>\n          message: &#8220;\u8bf7\u8f93\u5165\u7528\u6237\u4fe1\u606f&#8221;,<br \/>\n        }).then(() =&gt; {});<br \/>\n      } else {<br \/>\n        let userAgent = window.navigator.userAgent.toLowerCase(); \/\/\u53d6\u5f97\u6d4f\u89c8\u5668\u7684userAgent\u5b57\u7b26\u4e32<br \/>\n        if (userAgent.indexOf(&#8220;micromessenger&#8221;) &gt; -1) {<br \/>\n          \/\/return new Promise((resolve , reject) =&gt; {<br \/>\n          let data = {<br \/>\n            authId: this.authId,<br \/>\n            phone: this.phone,<br \/>\n          };<br \/>\n          wxF(data).then((res) =&gt; {<br \/>\n            if (res.data.code == 200) {<br \/>\n              let data1 = res.data.data;<br \/>\n              var u = navigator.userAgent,<br \/>\n              \/\/ navigator.appVersion \u5c5e\u6027\u53ef\u8fd4\u56de\u6d4f\u89c8\u5668\u7684\u5e73\u53f0\u548c\u7248\u672c\u4fe1\u606f\uff0c\u8be5\u5c5e\u6027\u662f\u4e00\u4e2a\u53ea\u8bfb\u7684\u5b57\u7b26\u4e32<br \/>\n                app = navigator.appVersion;<br \/>\n              var isAndroid =<br \/>\n                u.indexOf(&#8220;Android&#8221;) &gt; -1 || u.indexOf(&#8220;Linux&#8221;) &gt; -1; \/\/g<br \/>\n                \/\/ \u68c0\u6d4b User-Agent \u662f\u5426\u4e3a iOS \u8bbe\u5907\uff0cios\u8bbe\u5907\u53d1\u9001\u8bf7\u6c42\u7684\u5b57\u7b26\u4e32\u4fe1\u606f\u662f\u5927\u6982\u662f\u8fd9\u6837Mozilla\/5.0 (iPhone; CPU iPhone OS 13_1_3 like Mac OS X) AppleWebKit\/605.1.15 (KHTML, like Gecko) Version\/13.0.1 Mobile\/15E148 Safari\/604.1<br \/>\n              var isIOS = !!u.match(\/\\(i[^;]+;( U;)? CPU.+Mac OS X\/); \/\/ios\u7ec8\u7aef<br \/>\n              \/\/ \u63a5\u4e0b\u6765\u9700\u8981\u5224\u65ad\u8df3\u8f6c\u7684\u9875\u9762url\u8def\u5f84,\u8df3\u8f6c\u7684\u662f\u5b89\u5353\u7aef\u8fd8\u662fios\u7aef\uff0c\u662f\u5b89\u5353\u65f6\u5c31\u5b89\u5353\u7aef\u5730\u5740\u5237\u65b0\u5f53\u524d\u9875\u9762\uff0cios\u7aef\u65f6\u5c31\u8df3\u8f6cios\u7aef\u9875\u9762<br \/>\n              let datas = {<br \/>\n                url: isAndroid<br \/>\n                  ? window.location.href<br \/>\n                  : &#8220;\u8df3\u8f6c\u5730\u5740&#8221;,<br \/>\n              };<br \/>\n              wxSdk(datas).then((res) =&gt; {<br \/>\n                let data = res.data.data;<br \/>\n                wx.config({<br \/>\n                  beta: true, \/\/ \u5fc5\u586b\uff0c\u5f00\u542f\u5185\u6d4b\u63a5\u53e3\u8c03\u7528\uff0c\u6ce8\u5165 wx.invoke \u548c wx.on \u65b9\u6cd5<br \/>\n                  debug: false, \/\/ \u9009\u586b\uff0c\u5f00\u542f\u8c03\u8bd5\u6a21\u5f0f\uff0c\u9ed8\u8ba4\u4e3a false \u4e0d\u5f00\u542f<br \/>\n                  appId: data.appid, \/\/ \u5fc5\u586b\uff0c\u516c\u4f17\u53f7\u7684\u552f\u4e00\u6807\u8bc6<br \/>\n                  timestamp: data.timeStamp, \/\/ \u5fc5\u586b\uff0c\u751f\u6210\u7b7e\u540d\u7684\u65f6\u95f4\u6233<br \/>\n                  nonceStr: data.nonceStr, \/\/ \u5fc5\u586b\uff0c\u751f\u6210\u7b7e\u540d\u7684\u968f\u673a\u4e32<br \/>\n                  signature: data.signature, \/\/ \u5fc5\u586b\uff0c\u7b7e\u540d\uff0c\u89c1\u9644\u5f551<br \/>\n                  jsApiList: [<br \/>\n                    &#8220;checkIsSupportFaceDetect&#8221;,<br \/>\n                    &#8220;requestWxFacePictureVerify&#8221;,<br \/>\n                  ],<br \/>\n                });<br \/>\n                that.show = true;<br \/>\n                wx.ready(function () {<br \/>\n                  wx.invoke(<br \/>\n                    &#8220;requestWxFacePictureVerify&#8221;,<br \/>\n                    {<br \/>\n                      appId: data.appid,<br \/>\n                      request_verify_pre_info: data1.userIdKey<br \/>\n                        ? &#8216;{&#8220;user_id_key&#8221;:&#8221;&#8216; + data1.userIdKey + &#8216;&#8221;}&#8217;<br \/>\n                        : &#8220;{}&#8221;,<br \/>\n                      check_alive_type: &#8220;1&#8221;,<br \/>\n                    },<br \/>\n                    function (res) {<br \/>\n                      if (res.err_code == 0) {<br \/>\n                        that.$toast.loading({<br \/>\n                          message: &#8220;\u52a0\u8f7d\u4e2d&#8230;&#8221;,<br \/>\n                          forbidClick: true,<br \/>\n                          duration: 0,<br \/>\n                        });<br \/>\n                        \/\/\u6838\u5fc3\u56de\u8c03<br \/>\n                        wxC({<br \/>\n                          verifyResult: res.verify_result,<br \/>\n                          orderNo: data1.orderNo,<br \/>\n                          extend: data1.extend,<br \/>\n                        }).then((res) =&gt; {<br \/>\n                          let backRsp = res.data;<br \/>\n                          if (backRsp.code == 200) {<br \/>\n                            window.location.href =<br \/>\n                              config.domain +<br \/>\n                              config.context +<br \/>\n                              &#8220;\/success?authType=&#8221; +<br \/>\n                              backRsp.data.authType;<br \/>\n                            that.$toast.clear();<br \/>\n                            that.show = false;<br \/>\n                            return;<br \/>\n                          } else {<br \/>\n                            Dialog.alert({<br \/>\n                              title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n                              message: &#8220;\u4eba\u8138\u8ba4\u8bc1\u672a\u6210\u529f&#8221;,<br \/>\n                            }).then(() =&gt; {});<br \/>\n                          }<br \/>\n                        });<br \/>\n                      } else {<br \/>\n                        Dialog.alert({<br \/>\n                          title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n                          message: &#8220;\u4eba\u8138\u8ba4\u8bc1\u672a\u6210\u529f\u54df&#8221;,<br \/>\n                        }).then(() =&gt; {<br \/>\n                          that.show = false;<br \/>\n                        });<br \/>\n                      }<br \/>\n                    }<br \/>\n                  );<br \/>\n                });<br \/>\n                wx.error(function (res) {<br \/>\n                  \/\/ config\u4fe1\u606f\u9a8c\u8bc1\u5931\u8d25\u4f1a\u6267\u884cerror\u51fd\u6570\uff0c\u5982\u7b7e\u540d\u8fc7\u671f\u5bfc\u81f4\u9a8c\u8bc1\u5931\u8d25\uff0c\u5177\u4f53\u9519\u8bef\u4fe1\u606f\u53ef\u4ee5\u6253\u5f00config\u7684debug\u6a21\u5f0f\u67e5\u770b\uff0c\u4e5f\u53ef\u4ee5\u5728\u8fd4\u56de\u7684res\u53c2\u6570\u4e2d\u67e5\u770b\uff0c\u5bf9\u4e8eSPA\u53ef\u4ee5\u5728\u8fd9\u91cc\u66f4\u65b0\u7b7e\u540d\u3002<br \/>\n                  console.log(&#8220;config\u5931\u8d25&#8221;, res);<br \/>\n                });<br \/>\n              });<br \/>\n            } else {<br \/>\n              Dialog.alert({<br \/>\n                title: &#8220;\u4e1a\u52a1\u63d0\u793a&#8221;,<br \/>\n                message: res.data.msg,<br \/>\n              }).then(() =&gt; {});<br \/>\n            }<br \/>\n          });<br \/>\n          \/\/})<br \/>\n        } else if (userAgent.indexOf(&#8220;alipayclient&#8221;) &gt; -1) {<br \/>\n          \/\/\u9a8c\u8bc1\u652f\u4ed8\u5b9d\u7248\u672c<br \/>\n          \/\/ let v = this.compareVersion();<br \/>\n          \/\/ if (v == -1){<br \/>\n          \/\/     Dialog.alert({<br \/>\n          \/\/         title: &#8216;\u63d0\u793a&#8217;,<br \/>\n          \/\/         message: &#8216;\u652f\u4ed8\u5b9d\u7248\u672c\u8fc7\u4f4e\uff0c\u65e0\u6cd5\u4f7f\u7528\u4eba\u8138\u8bc6\u522b\u529f\u80fd&#8217;<br \/>\n          \/\/     }).then(() =&gt; {<\/p>\n<p>          \/\/     });<\/p>\n<p>          \/\/ }else{<br \/>\n          zfbF({ authId: this.authId, phone: this.phone }).then((res) =&gt; {<br \/>\n            if (res.data.code == 200) {<br \/>\n              that.show = true;<br \/>\n              let data = res.data.data;<br \/>\n              AlipayJSBridge.call(<br \/>\n                &#8220;startBizService&#8221;,<br \/>\n                {<br \/>\n                  name: &#8220;open-certify&#8221;,<br \/>\n                  param: JSON.stringify({<br \/>\n                    certifyId: data.certifyId,<br \/>\n                    url: data.certifyUrl,<br \/>\n                  }),<br \/>\n                },<br \/>\n                function (verifyResult) {<br \/>\n                  \/\/ \u8ba4\u8bc1\u7ed3\u679c\u56de\u8c03\u89e6\u53d1, \u4ee5\u4e0b\u5904\u7406\u903b\u8f91\u4e3a\u793a\u4f8b\u4ee3\u7801\uff0c\u5f00\u53d1\u8005\u53ef\u6839\u636e\u81ea\u8eab\u4e1a\u52a1\u7279\u6027\u6765\u81ea\u884c\u5904\u7406<br \/>\n                  if (verifyResult.resultStatus === &#8220;9000&#8221;) {<br \/>\n                    that.$toast.loading({<br \/>\n                      message: &#8220;\u52a0\u8f7d\u4e2d&#8230;&#8221;,<br \/>\n                      forbidClick: true,<br \/>\n                      duration: 0,<br \/>\n                    });<br \/>\n                    \/\/ \u9a8c\u8bc1\u6210\u529f\uff0c\u63a5\u5165\u65b9\u5728\u6b64\u5904\u5904\u7406\u540e\u7eed\u7684\u4e1a\u52a1\u903b\u8f91<br \/>\n                    zfbC({<br \/>\n                      certifyId: data.certifyId,<br \/>\n                      extend: data.extend,<br \/>\n                      orderNo: data.orderNo,<br \/>\n                    }).then((res) =&gt; {<br \/>\n                      if (res.data.code == 200) {<br \/>\n                        window.location.href =<br \/>\n                          config.domain +<br \/>\n                          config.context +<br \/>\n                          &#8220;\/success?authType=&#8221; +<br \/>\n                          res.data.data.authType;<br \/>\n                        that.$toast.clear();<br \/>\n                        that.show = false;<br \/>\n                        return;<br \/>\n                      }<br \/>\n                    });<br \/>\n                  }<br \/>\n                  \/\/ \u7528\u6237\u4e3b\u52a8\u53d6\u6d88\u8ba4\u8bc1<br \/>\n                  if (verifyResult.resultStatus === &#8220;6001&#8221;) {<br \/>\n                    that.show = false;<br \/>\n                    \/\/ \u53ef\u505a\u4e0b toast \u5f31\u63d0\u793a<br \/>\n                    that.$toast(&#8220;\u5df2\u53d6\u6d88\u8ba4\u8bc1&#8221;);<br \/>\n                    \/\/ }else {<br \/>\n                    \/\/     Dialog.alert({<br \/>\n                    \/\/         title: &#8216;\u63d0\u793a&#8217;,<br \/>\n                    \/\/         message: &#8216;\u4eba\u8138\u8ba4\u8bc1\u5931\u8d25&#8217;<br \/>\n                    \/\/     }).then(() =&gt; {<\/p>\n<p>                    \/\/     });<br \/>\n                  }<br \/>\n                  \/\/const   errorCode = verifyResult.result &amp;&amp; verifyResult.result.errorCode ;<br \/>\n                  \/\/ \u5176\u4ed6\u7ed3\u679c\u72b6\u6001\u7801\u5224\u65ad\u548c\u5904\u7406 &#8230;<br \/>\n                }<br \/>\n              );<br \/>\n              \/**<br \/>\n               * \u5524\u8d77\u8ba4\u8bc1\u6d41\u7a0b<br \/>\n               * \u53c2\u6570: certifyId\u3001url \u9700\u8981\u901a\u8fc7\u652f\u4ed8\u5b9d openapi \u5f00\u653e\u5e73\u53f0\u7f51\u5173\u63a5\u53e3\u83b7\u53d6<br \/>\n               * \u8be6\u7ec6\u8bf4\u660e\u53ef\u67e5\u770b\u6587\u6863\u4e0b\u65b9\u7684\u53c2\u6570\u8bf4\u660e<br \/>\n               **\/<br \/>\n            }<br \/>\n          });<br \/>\n          \/\/}<br \/>\n        }<br \/>\n      }<br \/>\n    },<br \/>\n\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014\u2014<\/p>\n\n\n\n<pre class=\"wp-block-verse\"><\/pre>\n","protected":false},"excerpt":{"rendered":"","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[5],"tags":[],"_links":{"self":[{"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/posts\/75"}],"collection":[{"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=75"}],"version-history":[{"count":2,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/posts\/75\/revisions"}],"predecessor-version":[{"id":77,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=\/wp\/v2\/posts\/75\/revisions\/77"}],"wp:attachment":[{"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=75"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=75"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/www.zrxf.xyz\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=75"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}