sq1.php 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566
  1. <?php
  2. include_once "php/wxBizMsgCrypt.php";
  3. $encodingAesKey = "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl";
  4. $token = "eqcxcx";
  5. $appId = "wxd6972323f37bfdf0";
  6. //traceHttp();
  7. logger('timestamp:'.$_REQUEST['timestamp']);
  8. logger('msg_signature:'.$_REQUEST['msg_signature']);
  9. $msg_sign=$_REQUEST['msg_signature'];
  10. $timeStamp=$_REQUEST['timestamp'];
  11. $nonce=$_REQUEST['nonce'];
  12. logger('signature:'.$_REQUEST['signature']);
  13. logger('nonce:'.$_REQUEST['nonce']);
  14. echo "success";
  15. // $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取数据
  16. // $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
  17. // logger($postObj);
  18. //exit;
  19. $encryptMsg = file_get_contents('php://input');
  20. logger($encryptMsg);
  21. $xml_tree = new DOMDocument();
  22. $xml_tree->loadXML($encryptMsg);
  23. $array_e = $xml_tree->getElementsByTagName('Encrypt');
  24. //$array_s = $xml_tree->getElementsByTagName('MsgSignature');
  25. $encrypt = $array_e->item(0)->nodeValue;
  26. logger($encrypt);
  27. $msg_sign = $array_s->item(0)->nodeValue;
  28. //logger($msg_sign);
  29. $format = "<xml><AppId><![CDATA[toUser]]></AppId><Encrypt><![CDATA[%s]]></Encrypt></xml>";
  30. $from_xml = sprintf($format, $encrypt);
  31. // 第三方收到公众号平台发送的消息
  32. $msg = '';
  33. $errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $encryptMsg, $msg);
  34. if ($errCode == 0) {
  35. logger("解密后: " . $msg . "\n");
  36. } else {
  37. logger($errCode . "\n");
  38. }
  39. function traceHttp()
  40. {
  41. logger("\n\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"].(strstr($_SERVER["REMOTE_ADDR"],'101.226')? " FROM WeiXin": "Unknown IP"));
  42. logger("QUERY_STRING:".$_SERVER["QUERY_STRING"]);
  43. }
  44. function logger($log_content)
  45. {
  46. if(isset($_SERVER['HTTP_APPNAME'])){ //SAE
  47. sae_set_display_errors(false);
  48. sae_debug($log_content);
  49. sae_set_display_errors(true);
  50. }else{ //LOCAL
  51. $max_size = 500000;
  52. $log_filename = "log_wx.xml";
  53. if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
  54. file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);
  55. }
  56. }
  57. ?>