企業微信推送suite_ticket


  1. 是新手,啥也不會,踩了不少坑。於是寫了這邊文章。

這個是官方給出的文檔,有那么一瞬間我瞬間崩了。

 

 

 這是啥呀,完全沒有頭緒,后來由於我一直一直看文檔,每一個字都不放過,最終我發現。

2.這是我認真看文檔發現一個encyypt解密,於是我點進去。

 

 

 

 

 

3.點進來后,我發現,里面有一個加密解密的文件庫,這是企業微信自帶的。於是我煥然大悟,QAQ完全不能用微信或者其他的解密方式,用企業微信自帶的就可以了!

 

 

 

4.點進來,往下滑,他就有一個加密解密的碼雲代碼。

 

 

 5.這是下載的語言

 

 

 6.這是PHP的。

 

 

 7.只能說接觸新東西,真的得摸索,這東西弄了我一上午。

 

 

 我把代碼貼上來,大家自行將代碼拔下來,就可以直接用了。

public function getTicket()
    {
        $super_id = superId(\session('admin_cate_id'),\session('admin'));
        $enterprise_set = db("enterprise_set")->where(['super_id' => $super_id])->find();


        $encodingAesKey = $enterprise_set['encodingAesKey'];//這是已有的值
        $token = $enterprise_set['token'];//這是已有的值
        $corpId = $enterprise_set['crop_id']; //  企業ID //這是已有的值
        $suiteId = $enterprise_set['suite_id']; //  應用id //這是已有的值
        
        $msg_signature = $_GET['msg_signature'] ?? 0;//這是回調過來企業微信給的數據
        $timestamp = $_GET['timestamp'] ?? 0;//這是回調過來企業微信給的數據
        $nonce = $_GET['nonce'] ?? 0;//這是回調過來企業微信給的數據
        $file = "./909090.txt";//這是xml格式的數據
        $file1 = "./909091.txt";//這是json的數據
        $sReqData = file_get_contents('php://input');
        file_put_contents($file, "獲取驗證票據(新)" . date('Y-m-d H:i:s') . "\n" . $sReqData . "\n", FILE_APPEND);
        file_put_contents($file1, json_encode($_GET), FILE_APPEND);
        $a['msg_signature'] = $msg_signature;
        $a['timestamp'] = $timestamp;
        $a['nonce'] = $nonce;
        $xml =  simplexml_load_string($sReqData, 'SimpleXMLElement', LIBXML_NOCDATA); //  xml格式轉成對象
        $ToUserName = $xml->ToUserName;
        if ($suiteId == $ToUserName) { //證明是企業微信后台推送
            db("enterprise_set")->where(['suite_id' => $ToUserName])->update(['msg_signature' => $a['msg_signature'], 'timestamp' => $a['timestamp'], 'nonce' => $a['nonce'], 'createtime' => time()]);
            $set = db("enterprise_set")->where(['suite_id' => $ToUserName])->find();
            // print_r($ToUserName);die;
            include_once EXTEND_PATH . "callback/WXBizMsgCrypt.php";//導入企業微信的解密文件
            $wxcpt = new \WXBizMsgCrypt($token, $encodingAesKey, $ToUserName);
            $sMsg     = '';  // 解析之后的明文
            $err_code = $wxcpt->DecryptMsg($set['msg_signature'], $set['timestamp'], $set['nonce'], $sReqData, $sMsg);
            $xmls = simplexml_load_string($sMsg, 'SimpleXMLElement', LIBXML_NOCDATA); //  xml格式轉成對象
            if ($err_code == 0) {
                if ($xmls->InfoType) {
                    $xmls = json_decode(json_encode($xmls), 1);
                    $suite_ticket = $xmls['SuiteTicket'];
                    if (!empty($suite_ticket)) {
                        //保存下獲取到數據
                        db("enterprise_set")->where(['suite_id' => $ToUserName])->update(['suite_ticket' => $suite_ticket]);
                        echo 'success';  // 返回企業微信消息 success
                    } else {
                        echo 200; //錯誤信息
                    }
                }
            }
        }
    }

上面就是企業微信

推送suite_ticket

的完整版了。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM