123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354 |
- <?php
- namespace Tests\Common\Support\Wechat\Crypt;
- use Modules\Common\Support\Wechat\Crypt\WXBizMsgCrypt;
- use PHPUnit\Framework\TestCase;
- use Tests\UsedTestCase;
- class WXBizMsgCryptTest extends UsedTestCase
- {
- public function testDemo() {
- // 第三方发送消息给公众平台
- $encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG";
- $token = "pamtest";
- $timeStamp = "1409304348";
- $nonce = "xxxxxx";
- $appId = "wxb11529c136998cb6";
- $text = "<xml><ToUserName><![CDATA[oia2Tj我是中文jewbmiOUlr6X-1crbLOvLw]]></ToUserName><FromUserName><![CDATA[gh_7f083739789a]]></FromUserName><CreateTime>1407743423</CreateTime><MsgType><![CDATA[video]]></MsgType><Video><MediaId><![CDATA[eYJ1MbwPRJtOvIEabaxHs7TX2D-HV71s79GUxqdUkjm6Gs2Ed1KF3ulAOA9H1xG0]]></MediaId><Title><![CDATA[testCallBackReplyVideo]]></Title><Description><![CDATA[testCallBackReplyVideo]]></Description></Video></xml>";
- $pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);
- $encryptMsg = '';
- $errCode = $pc->encryptMsg($text, $timeStamp, $nonce, $encryptMsg);
- if ($errCode == 0) {
- print("加密后: " . $encryptMsg . "\n");
- } else {
- print($errCode . "\n");
- }
- $xml_tree = new \DOMDocument();
- $xml_tree->loadXML($encryptMsg);
- $array_e = $xml_tree->getElementsByTagName('Encrypt');
- $array_s = $xml_tree->getElementsByTagName('MsgSignature');
- $encrypt = $array_e->item(0)->nodeValue;
- $msg_sign = $array_s->item(0)->nodeValue;
- $format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%s]]></Encrypt></xml>";
- $from_xml = sprintf($format, $encrypt);
- // 第三方收到公众号平台发送的消息
- $msg = '';
- $errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);
- if ($errCode == 0) {
- print("解密后: " . $msg . "\n");
- $xml = simplexml_load_string($msg, "SimpleXMLElement", LIBXML_NOCDATA);
- $json = json_encode($xml);
- $array = json_decode($json,TRUE);
- dump($array);
- } else {
- print($errCode . "\n");
- }
- }
- }
|