<ruby id="bdb3f"></ruby>

    <p id="bdb3f"><cite id="bdb3f"></cite></p>

      <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
        <p id="bdb3f"><cite id="bdb3f"></cite></p>

          <pre id="bdb3f"></pre>
          <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

          <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
          <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

          <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                <ruby id="bdb3f"></ruby>

                合規國際互聯網加速 OSASE為企業客戶提供高速穩定SD-WAN國際加速解決方案。 廣告
                下載文件選擇phpdemo [https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip](https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip) 在控制器中調用 ``` <?php namespace app\system\api; use app\common\controller\Common; use Env; use think\Db as Db; class Xcx extends Common { public function sendCode(){ $APPID = 'wx9633f7d19a7822f9'; $AppSecret = 'd24b0b731ad4930843003990ab886d20'; $code = input('get.code'); if(empty($code)){ echo "code不能為空"; die; } $url = 'https://api.weixin.qq.com/sns/jscode2session?appid='.$APPID.'&secret='.$AppSecret.'&js_code='.$code.'&grant_type=authorization_code'; $arr = $this -> vegt($url); $arr = json_decode($arr,true); // $openid = $arr['openid']; $session_key = $arr['session_key']; // 數字簽名校驗 $signature = input('get.signature'); $signature2 = sha1($_GET['rawData'].$session_key); if($signature != $signature2){ echo "數字簽名失敗"; die; } // 獲取信息,對接口進行解密 // Vendor("PHP.wxBizDataCrypt"); require_once '../extend/PHP/wxBizDataCrypt.php';//引用類文件 $encryptedData = $_GET['encryptedData']; $iv = $_GET['iv']; if(empty($signature) || empty($encryptedData) || empty($iv)){ echo "傳遞信息不全"; } include_once "../extend/PHP/wxBizDataCrypt.php"; $pc = new \WXBizDataCrypt($APPID,$session_key); $errCode = $pc->decryptData($encryptedData,$iv,$data); if($errCode != 0){ echo "解密數據失敗"; die; }else { $data = json_decode($data,true); session('myinfo',$data); $save['open_id'] = $data['openId']; $save['cooker_name'] = $data['nickName']; $save['sex'] = $data['gender']; $save['cooker_address'] = $data['city']; $save['ctime'] = time(); $save['cooker_header'] = $_GET['cooker_header']; !empty($data['unionId']) && $save['unionId'] = $data['unionId']; $res = Db::table('hisi_system_cooker') -> where(['open_id'=>$data['openId']]) -> find(); if(!$res){ $db = Db::table('hisi_system_cooker') -> insert($save); $userId = Db::table('hisi_system_cooker') -> getLastInsID(); //獲得剛插入的id if($db !== false){ $data['msg'] = '保存用戶成功'; $data['userId'] = $userId; $data['userInfo'] = $save; echo json_encode($data); }else{ echo "error"; } }else{ $data['msg'] = '用戶已經存在'; $data['data'] = $res; echo json_encode($data); } } //生成第三方3rd_session // $session3rd = null; // $strPol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz"; // $max = strlen($strPol)-1; // for($i=0;$i<16;$i++){ // $session3rd .=$strPol[rand(0,$max)]; // } // echo $session3rd; } public function vegt($url){ $info = curl_init(); curl_setopt($info,CURLOPT_RETURNTRANSFER,true); curl_setopt($info,CURLOPT_HEADER,0); curl_setopt($info,CURLOPT_NOBODY,0); curl_setopt($info,CURLOPT_SSL_VERIFYPEER, false); curl_setopt($info,CURLOPT_SSL_VERIFYHOST, false); curl_setopt($info,CURLOPT_URL,$url); $output= curl_exec($info); curl_close($info); return $output; } } ``` 或者也可以下面這種 ``` <?php namespace app\teacherapi\controller; use think\Controller; /** * @date: 2018-12 * 微信操作類 */ class WxDecode extends Controller { public function httpGet($url) { $curl = curl_init(); curl_setopt($curl, CURLOPT_RETURNTRANSFER, true); curl_setopt($curl, CURLOPT_TIMEOUT, 500); curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false); curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); curl_setopt($curl, CURLOPT_URL, $url); $res = curl_exec($curl); curl_close($curl); return $res; } /** * @author: zxf * @date: 2018-12-08 * @description: 解密微信用戶敏感數據 * @return array */ public function WxDecode() { // 接收參數 $data = request() -> param(); // 引入解密文件 在微信小程序開發文檔下載 vendor('wx.WXBizDataCrypt'); vendor('wx.ErrorCode'); $appid = config('TESTPPID'); $appsecret = config('TESTSECREET'); $grant_type = "authorization_code"; //授權(必填) $code = $data['code']; //有效期5分鐘 登錄會話 $encryptedData=$data['encryptedData']; $iv = $data['iv']; $signature = $data['signature']; $rawData = $data['rawData']; // 拼接url $url = "https://api.weixin.qq.com/sns/jscode2session?"."appid=".$appid."&secret=".$appsecret."&js_code=".$code."&grant_type=".$grant_type; $res = json_decode($this->httpGet($url),true); $sessionKey = $res['session_key']; //取出json里對應的值 $signature2 = sha1(htmlspecialchars_decode($rawData).$sessionKey); // 驗證簽名 if ($signature2 !== $signature){ return json("驗簽失敗"); } // 獲取解密后的數據 $pc = new \WXBizDataCrypt($appid, $sessionKey); $errCode = $pc->decryptData($encryptedData, $iv, $data ); if ($errCode == 0) { return return_succ($data); } else { return return_error($errCode); } } } ``` 參考網址 [https://www.jb51.net/article/174181.htm](https://www.jb51.net/article/174181.htm)
                  <ruby id="bdb3f"></ruby>

                  <p id="bdb3f"><cite id="bdb3f"></cite></p>

                    <p id="bdb3f"><cite id="bdb3f"><th id="bdb3f"></th></cite></p><p id="bdb3f"></p>
                      <p id="bdb3f"><cite id="bdb3f"></cite></p>

                        <pre id="bdb3f"></pre>
                        <pre id="bdb3f"><del id="bdb3f"><thead id="bdb3f"></thead></del></pre>

                        <ruby id="bdb3f"><mark id="bdb3f"></mark></ruby><ruby id="bdb3f"></ruby>
                        <pre id="bdb3f"><pre id="bdb3f"><mark id="bdb3f"></mark></pre></pre><output id="bdb3f"></output><p id="bdb3f"></p><p id="bdb3f"></p>

                        <pre id="bdb3f"><del id="bdb3f"><progress id="bdb3f"></progress></del></pre>

                              <ruby id="bdb3f"></ruby>

                              哎呀哎呀视频在线观看