{"id":32289,"date":"2024-11-25T12:01:26","date_gmt":"2024-11-25T04:01:26","guid":{"rendered":"https:\/\/fwq.ai\/blog\/32289\/"},"modified":"2024-11-25T12:01:26","modified_gmt":"2024-11-25T04:01:26","slug":"%e5%b0%8f%e7%a8%8b%e5%ba%8f%e5%a6%82%e4%bd%95%e8%8e%b7%e5%8f%96%e6%89%8b%e6%9c%ba%e5%8f%b7%ef%bc%88-thinkphp3-2-3%e6%a1%86%e6%9e%b6%ef%bc%89","status":"publish","type":"post","link":"https:\/\/fwq.ai\/blog\/32289\/","title":{"rendered":"\u5c0f\u7a0b\u5e8f\u5982\u4f55\u83b7\u53d6\u624b\u673a\u53f7\uff08 thinkphp3.2.3\u6846\u67b6\uff09"},"content":{"rendered":"<p>\u672c\u7bc7\u6587\u7ae0\u7ed9\u5927\u5bb6\u5e26\u6765\u7684\u5185\u5bb9\u662f\u5173\u4e8e\u5c0f\u7a0b\u5e8f\u5982\u4f55\u83b7\u53d6\u624b\u673a\u53f7\uff08&nbsp; thinkphp3.2.3\u6846\u67b6\uff09\uff0c\u6709\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u6709\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b\uff0c\u5e0c\u671b\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\u3002<\/p>\n<p>1\u3001\u76f4\u63a5\u4e0a\u4ee3\u7801php<\/p>\n<pre>namespace&nbsp;HomeController;\nuse&nbsp;ThinkController;\nclass&nbsp;ApiController&nbsp;extends&nbsp;Controller&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;\/**\n&nbsp;*&nbsp;error&nbsp;code&nbsp;\u8bf4\u660e.\n&nbsp;*&nbsp;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<ul>\n  &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<li>-41001:&nbsp;encodingAesKey&nbsp;\u975e\u6cd5<\/li>\n<p> &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<li>-41003:&nbsp;aes&nbsp;\u89e3\u5bc6\u5931\u8d25<\/li>\n<p> &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<li>-41004:&nbsp;\u89e3\u5bc6\u540e\u5f97\u5230\u7684buffer\u975e\u6cd5<\/li>\n<p> &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<li>-41005:&nbsp;base64\u52a0\u5bc6\u5931\u8d25<\/li>\n<p> &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; <\/p>\n<li>-41016:&nbsp;base64\u89e3\u5bc6\u5931\u8d25<\/li>\n<p> &nbsp;*&nbsp;\n<\/ul>\n<p> &nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$OK&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalAesKey&nbsp;=&nbsp;-41001; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalIv&nbsp;=&nbsp;-41002; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalBuffer&nbsp;=&nbsp;-41003; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$DecodeBase64Error&nbsp;=&nbsp;-41004; &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u5c0f\u7a0b\u5e8f &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$appid&nbsp;=&nbsp;&#8216;XXX&#8217;;&nbsp;&nbsp;\/\/\u5c0f\u7a0b\u5e8fappid &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$secret&nbsp;=&nbsp;&#8216;XXX&#8217;;&nbsp;\/\/\u5c0f\u7a0b\u5e8f\u79d8\u94a5&nbsp;&nbsp;&nbsp; public&nbsp;$sessionKey&nbsp;=&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u83b7\u53d6openId&nbsp;session-key&nbsp;\u7b49 &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getopenId($value=&#8221;) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$code&nbsp;=&nbsp;I(&#8216;post.code&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appid&nbsp;=&nbsp;self::$appid; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$secret&nbsp;=&nbsp;self::$secret; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;&#8216;https:\/\/api.weixin.qq.com\/sns\/jscode2session?appid=&#8217;.&nbsp;$appid.&#8217;&amp;secret=&#8217;.$secret.&#8217;&amp;js_code=&#8217;.$code.&#8217;&amp;grant_type=authorization_code&#8217;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;httpGet($url); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&nbsp;=&nbsp;json_decode($result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;session([&#8216;sessionKey&#8217;=&gt;$res,&#8217;expire&#8217;=&gt;7200]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;ajaxReturn($res); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u83b7\u53d6\u5c0f\u7a0b\u5e8f\u624b\u673a\u53f7api&nbsp;\u63a5\u53e3\uff0c\u5bf9\u5e94\u4e0b\u9762\u5c0f\u7a0b\u5e8f&nbsp;js &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getPhoneNumber($value=&#8221;) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$encryptedData&nbsp;=&nbsp;I(&#8216;get.encryptedData&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$iv&nbsp;=&nbsp;I(&#8216;get.iv&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;sessionKey=I(&#8216;get.session_key&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&nbsp;=&nbsp;$this-&gt;decryptData($encryptedData,&nbsp;$iv); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$res&nbsp;=&nbsp;json_decode($res); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($res-&gt;phoneNumber){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$res-&gt;phoneNumbe&nbsp;\u5c31\u662f\u624b\u673a\u53f7\u53ef\u4ee5&nbsp;\u5199\u5165\u6570\u636e\u5e93\u6216\u8005\u505a\u5176\u4ed6\u64cd\u4f5c &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;ajaxReturn([&#8216;msg&#8217;=&gt;$res,&#8217;status&#8217;=&gt;&#8217;1&#8217;]);&nbsp;\/\/\u628a\u624b\u673a\u53f7\u8fd4\u56de &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u5c0f\u7a0b\u5e8f\u89e3\u5bc6 &nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;decryptData($encryptedData,&nbsp;$iv) &nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strlen($this-&gt;sessionKey)&nbsp;!=&nbsp;24)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self::$IllegalAesKey; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$aesKey=base64_decode($this-&gt;sessionKey); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(strlen($iv)&nbsp;!=&nbsp;24)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self::$IllegalIv; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$aesIV=base64_decode($iv); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$aesCipher=base64_decode($encryptedData); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result=openssl_decrypt(&nbsp;$aesCipher,&nbsp;&#8220;AES-128-CBC&#8221;,&nbsp;$aesKey,&nbsp;1,&nbsp;$aesIV); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$dataObj=json_decode(&nbsp;$result&nbsp;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;$dataObj&nbsp;&nbsp;==&nbsp;NULL&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self::$IllegalBuffer; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if(&nbsp;$dataObj-&gt;watermark-&gt;appid&nbsp;!=&nbsp;self::$appid&nbsp;) &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;self::$IllegalBuffer; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;&nbsp;$dataObj; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;return&nbsp;self::$OK; &nbsp;&nbsp;&nbsp;&nbsp;} function&nbsp;httpGet($url)&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;$curl&nbsp;=&nbsp;curl_init(); &nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_RETURNTRANSFER,&nbsp;true); &nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_TIMEOUT,&nbsp;500); &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u4e3a\u4fdd\u8bc1\u7b2c\u4e09\u65b9\u670d\u52a1\u5668\u4e0e\u5fae\u4fe1\u670d\u52a1\u5668\u4e4b\u95f4\u6570\u636e\u4f20\u8f93\u7684\u5b89\u5168\u6027\uff0c\u6240\u6709\u5fae\u4fe1\u63a5\u53e3\u91c7\u7528https\u65b9\u5f0f\u8c03\u7528\uff0c\u5fc5\u987b\u4f7f\u7528\u4e0b\u97622\u884c\u4ee3\u7801\u6253\u5f00ssl\u5b89\u5168\u6821\u9a8c\u3002 &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u5982\u679c\u5728\u90e8\u7f72\u8fc7\u7a0b\u4e2d\u4ee3\u7801\u5728\u6b64\u5904\u9a8c\u8bc1\u5931\u8d25\uff0c\u8bf7\u5230&nbsp;http:\/\/curl.haxx.se\/ca\/cacert.pem&nbsp;\u4e0b\u8f7d\u65b0\u7684\u8bc1\u4e66\u5224\u522b\u6587\u4ef6\u3002 &nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_SSL_VERIFYPEER,&nbsp;false); &nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_SSL_VERIFYHOST,&nbsp;false); &nbsp;&nbsp;&nbsp;&nbsp;curl_setopt($curl,&nbsp;CURLOPT_URL,&nbsp;$url); &nbsp;&nbsp;&nbsp;&nbsp;$res&nbsp;=&nbsp;curl_exec($curl); &nbsp;&nbsp;&nbsp;&nbsp;curl_close($curl); &nbsp;&nbsp;&nbsp;&nbsp;return&nbsp;$res; } } <\/p>\n<p>\/\/2\u3001\u5c0f\u7a0b\u5e8f<\/p>\n<p>2.1\u5728app.js \u542f\u52a8\u9875\u9762\u91cc\u5148login<\/p>\n<pre>\/\/&nbsp;\u767b\u5f55\n&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;if&nbsp;(!wx.getStorageSync('session_key')&nbsp;||&nbsp;wx.getStorageSync('time')&nbsp;&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(res)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u53d1\u9001&nbsp;res.code&nbsp;\u5230\u540e\u53f0\u6362\u53d6&nbsp;openId,&nbsp;sessionKey,&nbsp;unionId\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.request({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'https:\/\/www.zhixiaobing.com\/index.php?m=&amp;amp;c=api&amp;amp;a=getopenId',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header:&nbsp;{&nbsp;\"Content-Type\":&nbsp;\"application\/x-www-form-urlencoded\"&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method:&nbsp;'post',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;{&nbsp;code:&nbsp;res.code&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function&nbsp;(res)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(res.data);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.setStorageSync('openid',&nbsp;res.data.openid)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.setStorageSync('session_key',&nbsp;res.data.session_key)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.setStorageSync('time',&nbsp;parseInt(Date.parse(new&nbsp;Date()))&nbsp;+&nbsp;7200)\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\/\/2.2 \u5728\u5c0f\u7a0b\u5e8f\u6a21\u677f\u91cc\u5199\u7ec4\u4ef6<\/p>\n<pre>&lt;button&gt;\/\/\u8fd9\u662f\u5b98\u65b9\u7684\u7ec4\u4ef6\u70b9\u51fb\u4f1a\u5f39\u51fa\u6388\u6743\u9875\u9762&lt;\/button&gt;<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u5728js\u91cc\u5199\u4e0b\u9762\u7684\u51fd\u6570<\/p>\n<p><span>\u7acb\u5373\u5b66\u4e60<\/span>\u201c\u201d\uff1b<\/p>\n<pre>getPhoneNumber:&nbsp;function&nbsp;(e)&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;that&nbsp;=this;\n\n&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;session_key&nbsp;=&nbsp;wx.getStorageSync('session_key')\n&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(e.detail.errMsg&nbsp;==&nbsp;'getPhoneNumber:fail&nbsp;user&nbsp;deny')&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showModal({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'\u63d0\u793a',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showCancel:&nbsp;false,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;'\u672a\u6388\u6743',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function&nbsp;(res)&nbsp;{&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;}&nbsp;else&nbsp;{\/\/\u786e\u8ba4\u6388\u6743\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.request({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'https:\/\/www.showoow.com\/index.php?m=mini&amp;amp;c=api&amp;amp;a=getPhoneNumber&amp;amp;openid='&nbsp;+&nbsp;wx.getStorageSync('openid'),&nbsp;\/\/openid\u662fapp.js&nbsp;\u5df2\u7ecf\u5b58\u7684\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;header:&nbsp;{\"Content-Type\":&nbsp;\"application\/x-www-form-urlencoded\"&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;method:&nbsp;\"get\",\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;data:&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;encryptedData:&nbsp;e.detail.encryptedData,&nbsp;iv:&nbsp;e.detail.iv,&nbsp;session_key:session_key\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:function(res){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if&nbsp;(res.data.msg.phoneNumber){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;console.log(res);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showModal({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'\u63d0\u793a',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;showCancel:&nbsp;false,\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;content:&nbsp;'\u6388\u6743\u6210\u529f',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;success:&nbsp;function&nbsp;()&nbsp;{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.setStorageSync('phoneNumber',&nbsp;res.data.msg.phoneNumber);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;var&nbsp;time&nbsp;=&nbsp;Date.parse(new&nbsp;Date())&nbsp;+&nbsp;60&nbsp;*&nbsp;60&nbsp;*&nbsp;24&nbsp;*&nbsp;2\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.setStorageSync('exp',&nbsp;time&nbsp;);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;setTimeout(function(){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.navigateTo({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;url:&nbsp;'\/pages\/form\/form',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},1500);\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;that.setData({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;show:'show',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;hiden:''\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}else{\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showToast({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'\u6388\u6743\u5931\u8d25',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon:'loading'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;},\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;fail:function(){\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;wx.showToast({\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;title:&nbsp;'\u6388\u6743\u5931\u8d25',\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;icon:&nbsp;'loading'\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;})\n&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\n&nbsp;&nbsp;&nbsp;&nbsp;}\n&nbsp;&nbsp;},<\/pre>\n<p> \u767b\u5f55\u540e\u590d\u5236 <\/p>\n<p>\u5230\u6b64\u5c0f\u7a0b\u5e8f\u83b7\u53d6\u624b\u673a\u53f7\u5b8c\u7ed3\uff0c\u5728\u516c\u53f8\u5199\u4e86\u4e2a\u5c0f\u7a0b\u5e8f\uff0c\u53ef\u4ee5\u6b63\u5e38\u83b7\u53d6\u624b\u673a\u53f7<\/p>\n<p>\u76f8\u5173\u63a8\u8350\uff1a<\/p>\n<\/p>\n<p>\u4ee5\u4e0a\u5c31\u662f\u5c0f\u7a0b\u5e8f\u5982\u4f55\u83b7\u53d6\u624b\u673a\u53f7\uff08 thinkphp3.2.3\u6846\u67b6\uff09\u7684\u8be6\u7ec6\u5185\u5bb9\uff0c\u66f4\u591a\u8bf7\u5173\u6ce8\u7c73\u4e91\u5176\u5b83\u76f8\u5173\u6587\u7ae0\uff01<\/p>\n","protected":false},"excerpt":{"rendered":"<p>\u672c\u7bc7\u6587\u7ae0\u7ed9\u5927\u5bb6\u5e26\u6765\u7684\u5185\u5bb9\u662f\u5173\u4e8e\u5c0f\u7a0b\u5e8f\u5982\u4f55\u83b7\u53d6\u624b\u673a\u53f7\uff08&nbsp; thinkphp3.2.3\u6846\u67b6\uff09\uff0c\u6709\u4e00\u5b9a\u7684\u53c2\u8003\u4ef7\u503c\uff0c\u6709\u9700\u8981\u7684\u670b\u53cb\u53ef\u4ee5\u53c2\u8003\u4e00\u4e0b\uff0c\u5e0c\u671b\u5bf9\u4f60\u6709\u6240\u5e2e\u52a9\u3002 1\u3001\u76f4\u63a5\u4e0a\u4ee3\u7801php namespace&nbsp;HomeController; use&nbsp;ThinkController; class&nbsp;ApiController&nbsp;extends&nbsp;Controller&nbsp;{ &nbsp;&nbsp;&nbsp;&nbsp;\/** &nbsp;*&nbsp;error&nbsp;code&nbsp;\u8bf4\u660e. &nbsp;*&nbsp; \u767b\u5f55\u540e\u590d\u5236 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; -41001:&nbsp;encodingAesKey&nbsp;\u975e\u6cd5 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; -41003:&nbsp;aes&nbsp;\u89e3\u5bc6\u5931\u8d25 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; -41004:&nbsp;\u89e3\u5bc6\u540e\u5f97\u5230\u7684buffer\u975e\u6cd5 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; -41005:&nbsp;base64\u52a0\u5bc6\u5931\u8d25 &nbsp;*&nbsp;&nbsp;&nbsp;&nbsp; -41016:&nbsp;base64\u89e3\u5bc6\u5931\u8d25 &nbsp;*&nbsp; &nbsp;*\/ &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$OK&nbsp;=&nbsp;0; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalAesKey&nbsp;=&nbsp;-41001; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalIv&nbsp;=&nbsp;-41002; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$IllegalBuffer&nbsp;=&nbsp;-41003; &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$DecodeBase64Error&nbsp;=&nbsp;-41004; &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u5c0f\u7a0b\u5e8f &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$appid&nbsp;=&nbsp;&#8216;XXX&#8217;;&nbsp;&nbsp;\/\/\u5c0f\u7a0b\u5e8fappid &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;static&nbsp;$secret&nbsp;=&nbsp;&#8216;XXX&#8217;;&nbsp;\/\/\u5c0f\u7a0b\u5e8f\u79d8\u94a5&nbsp;&nbsp;&nbsp; public&nbsp;$sessionKey&nbsp;=&#8221;; &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u83b7\u53d6openId&nbsp;session-key&nbsp;\u7b49 &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getopenId($value=&#8221;) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$code&nbsp;=&nbsp;I(&#8216;post.code&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$appid&nbsp;=&nbsp;self::$appid; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$secret&nbsp;=&nbsp;self::$secret; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$url&nbsp;=&nbsp;&#8216;https:\/\/api.weixin.qq.com\/sns\/jscode2session?appid=&#8217;.&nbsp;$appid.&#8217;&amp;secret=&#8217;.$secret.&#8217;&amp;js_code=&#8217;.$code.&#8217;&amp;grant_type=authorization_code&#8217;; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$result&nbsp;=&nbsp;httpGet($url); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&nbsp;=&nbsp;json_decode($result); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;session([&#8216;sessionKey&#8217;=&gt;$res,&#8217;expire&#8217;=&gt;7200]); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;ajaxReturn($res); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;} &nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;\u83b7\u53d6\u5c0f\u7a0b\u5e8f\u624b\u673a\u53f7api&nbsp;\u63a5\u53e3\uff0c\u5bf9\u5e94\u4e0b\u9762\u5c0f\u7a0b\u5e8f&nbsp;js &nbsp;&nbsp;&nbsp;&nbsp;public&nbsp;function&nbsp;getPhoneNumber($value=&#8221;) &nbsp;&nbsp;&nbsp;&nbsp;{&nbsp;&nbsp;&nbsp; &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$encryptedData&nbsp;=&nbsp;I(&#8216;get.encryptedData&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$iv&nbsp;=&nbsp;I(&#8216;get.iv&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$this-&gt;sessionKey=I(&#8216;get.session_key&#8217;); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;$res&nbsp;=&nbsp;$this-&gt;decryptData($encryptedData,&nbsp;$iv); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$res&nbsp;=&nbsp;json_decode($res); &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;if($res-&gt;phoneNumber){ &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;\/\/&nbsp;$res-&gt;phoneNumbe&nbsp;\u5c31\u662f\u624b\u673a\u53f7\u53ef\u4ee5&nbsp;\u5199\u5165\u6570\u636e\u5e93\u6216\u8005\u505a\u5176\u4ed6\u64cd\u4f5c &nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;} [&hellip;]<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"closed","ping_status":"","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[19],"tags":[],"class_list":["post-32289","post","type-post","status-publish","format-standard","hentry","category-19"],"_links":{"self":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/32289","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/comments?post=32289"}],"version-history":[{"count":0,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/posts\/32289\/revisions"}],"wp:attachment":[{"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/media?parent=32289"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/categories?post=32289"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/fwq.ai\/blog\/wp-json\/wp\/v2\/tags?post=32289"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}