开放平台解密component_verify_ticket交流学习
开放平台 第三⽅平台
授权流程技术说明 第⼀步
解密 推送的component_verify_ticket  推送的url 是
这⾥填写的url
他会在你url后⾯给你穿四个参数会以这样GET的形式传送到你的url所以你只需要GET接收就OK了
还会POST 传送XML数据这个需要你去接收 $encryptMst = file_get_contents('php://input') 这个就可以不要  担⼼接
受不到 下⾯会有解释⼀些坑
以上就是会每10分钟给你发来的数据 下⾯会有代码
这⾥很重要 把字都看了 还有 代码⾥⾯的注释也很重要 仔细看⼀下
现在来说明⼀下 你⾃⼰访问⾃⼰的URL 不会带这些参数所以 总是提⽰你解密失败 假如你有写⽇志 你仔细观察  每⼗分钟她就会有⼀次数
据传过来 代码如果完整的话是会解密成功的 我⾃⼰在这坑⾥连续三天加班11点没弄  明⽩ 估计是太迟钝 所以写下来和⼤家交流⼀下 避免
有和我同样的同学困扰 有问题也可以和我交流            QQ1062549054 还有很多同学们要去⾃习看⽂档 ⽂档他不会说的那么细 ⽽且⽂
档仅供参考 要多查资料
代码⾥ 你可以直接把解密后的component_verify_ticket 存到数据库 下⾯我⾃⼰集百家代码写的代码
<?php  define("TOKEN", "Lango"); require_once('wxBizMsgCrypt.php');  $wechatObj = new wechatCallbackapiTe  echo $nonce."<br/>";        echo $msg_sign."<br/>";        exit();*/
// 这⾥是PDO ⽅式连接数据库        $pdo = new PDO("mysql:host=localhost;dbname=db","XXXX","XXXX");          $pdo-
>setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);          $pdo->exec('set names utf8');        // 接受POST
传过来的数据        $encryptMsg = file_get_contents("php://input");        $this->logResult('log.log', 'XML
SHUJU'.$encryptMsg."\n");        $pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);        //转换为simplexml对象
//$xmlResult = simplexml_load_string($encryptMsg);        //输出xml节点名称和值            //$encrypt = $xmlResult-
>Encrypt;                  //  这是提取XML ⾥⾯Encrypt 节点的内容 上⾯注释的 也是⼀种⽅式⽅式很多 都可以⽤        $xml_tree = new
\DOMDocument();        $xml_tree->loadXML($encryptMsg);        $array_e = $xml_tree->getElementsByTagName('Encrypt');
$encrypt = $array_e->item(0)->nodeValue;        $format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName>
<Encrypt><![CDATA[%s]]></Encrypt></xml>";        $from_xml = sprintf($format, $encrypt);        $this->logResult('log.log', $from_xml."\n\r");
// 第三⽅收到平台发送的消息        $msg = '';        $errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);        if ($errCode == 0)          {            print("解密后: " . $msg . "\n");            $xml = new
\DOMDocument();            $xml->loadXML($msg);            $array_e = $xml-
>getElementsByTagName('ComponentVerifyTicket');            $component_verify_ticket = $array_e->item(0)->nodeValue;
代码转换
// 写到⽇志            file_put_contents('log.log', $component_verify_ticket."\n\r");            $this->logResult('log.log','解密后component_verify_ticket:'.$component_verify_ticket."\n\r");            // 写到数据库            $sql = "insert into tickets(Ticket) value('$component_verify_ticket');";            $pdo->query($sql);            echo 'success';          } else          {            $this-
>logResult('log.log','解密后失败:'.$errCode."\n");            print("解密后失败:".$errCode . "<br/>");        }    }    // ⽇志    public function logResult($path,$data)    {        header("content-type:text/html;charset=utf-8");        file_put_contents($path,
'['.date('Y-m-d : h:i:sa',time()).']'.$data."\n\r",FILE_APPEND);    } }

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。