qunfa.php 5.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165
  1. <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  2. <meta charset="utf-8">
  3. <?php
  4. $uniacid=$_GET['uniacid'];
  5. $keyword=$_GET['keyword'];
  6. $t=$_GET['t'];
  7. if(file_exists("temp/".$t."_baogao.html")){
  8. //已经发送过
  9. echo "已经发送完成 <a href='temp/".$t."_baogao.html'>查看报告</a>";
  10. exit;
  11. }else
  12. {
  13. if ((time()-$t)>60){
  14. echo '链接已经失效.请重新生成发送列表.';
  15. exit;
  16. }
  17. }
  18. // echo substr($keyword,0,10);
  19. $tousername=$_GET['tousername'];
  20. $file = file_get_contents("json/{$tousername}_token.json",true);
  21. $result = json_decode($file,true);
  22. $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
  23. //判断有没有缓存.
  24. //echo $url.'<br>';
  25. $json = file_get_contents('json/'.$uniacid.'_keywords.json');//读取key列表
  26. $keys = json_decode($json,true);
  27. $json = file_get_contents('json/'.$uniacid.'_keys.json');//读取数字key列表
  28. $numkeys = json_decode($json,true);
  29. if (file_exists("json/".$uniacid."_user.json"))
  30. { $json = file_get_contents("json/".$uniacid."_user.json");
  31. $arr1 = json_decode($json,true);
  32. $arr= array_keys($arr1);//openid
  33. $i=0;
  34. $j=0;
  35. $result = substr ($keyword, -1);
  36. // echo 'result:'.$result.'<br>';
  37. if($result=='|'){//如果是图文群发.
  38. $gjz=substr($keyword,0,strlen(trim($keyword))-1);
  39. // echo 'gjz:'.$gjz;
  40. // echo '<br>';
  41. if(is_numeric($gjz)){
  42. $send=$keys[$numkeys[$gjz]];
  43. }
  44. else {
  45. $send=$keys[$gjz]; //$keys['关于我们'];
  46. }
  47. // echo '<br>'.json_encode($send).'<br>';
  48. }
  49. $sendbak=$send;
  50. $cg=$cg."消息".$keyword.":<br>";
  51. $cg=$cg."发送报告:<br>";
  52. foreach ($arr as $arr){ //群发--
  53. if($result=='|'){
  54. $send['touser']=$arr;
  55. $nickname=$arr1[$arr]['nickname'];
  56. //logger('--'.$arr1[$arr]['id']);
  57. if($nickname==''){$nickname='会员'.$arr1[$arr]['id'];}
  58. if ($send['link']['title']!=''){
  59. $send['link']['title']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['link']['title']);
  60. $send['link']['title']=str_replace('[name]', trim($nickname),$send['link']['title']);
  61. }
  62. if ($send['miniprogrampage']['title']!=''){
  63. $send['miniprogrampage']['title']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['miniprogrampage']['title']);
  64. $send['miniprogrampage']['title']=str_replace('[name]', trim($nickname),$send['miniprogrampage']['title']);
  65. }
  66. if ($send['text']['content']!=''){
  67. $send['text']['content']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['text']['content']);
  68. $send['text']['content']=str_replace('[name]',trim($nickname),$send['text']['content']);
  69. $send['text']['content']=changeurl($send['text']['content']);
  70. }
  71. $data2=json_encode($send,JSON_UNESCAPED_UNICODE);
  72. }else{
  73. $nickname=$arr1[$arr]['nickname'];
  74. $data2='{ "touser":"'.$arr.'", "msgtype":"text",
  75. "text": { "content":"'.$nickname.':'.$keyword.'" } }'; //当没有约定好的回复时,这么回复。
  76. }
  77. // echo $data2.'<br>';
  78. $bbb = http_post_data($url, $data2);
  79. $i++;
  80. $zt=json_decode($bbb, true)['errcode'];
  81. if ($zt==0) {$j++; }
  82. switch ($zt){
  83. case 0: $zhuangtai='<font color=red>成功</font>';
  84. break;
  85. case -1: $zhuangtai='系统繁忙';
  86. break;
  87. case 40003: $zhuangtai='openid不对';
  88. break;
  89. case 45015: $zhuangtai='用户下线';
  90. break;
  91. case 45047: $zhuangtai='用户超额';
  92. break;
  93. default: $zhuangtai='未知原因'.$zt;
  94. }
  95. $cg= $cg.' '.$arr1[$arr]['id'].$arr1[$arr]['nickname'].' :'.$zhuangtai.'<br>';
  96. } //发完
  97. $cg=$cg."消息发送报告: [消息总数:".$i."] 发送成功:".$j." ";
  98. echo $cg;
  99. $cg='<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  100. <meta charset="utf-8">'.$cg;
  101. $res=@file_put_contents("temp/".$t."_baogao.html", $cg);
  102. }
  103. function http_post_data($url, $data_string) {
  104. set_time_limit ( 0 );
  105. $curl = curl_init();
  106. curl_setopt($curl, CURLOPT_URL, $url);
  107. curl_setopt($curl, CURLOPT_HEADER, 0);
  108. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  109. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。
  110. curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
  111. curl_setopt($curl, CURLOPT_HTTPHEADER, array(
  112. 'Content-Type: application/json',
  113. 'Content-Length: ' . strlen($data_string))
  114. );
  115. $data = curl_exec($curl);
  116. curl_close($curl);
  117. return $data;
  118. }
  119. function changeurl($a){
  120. $bi= strpos($a,'[[');
  121. if ($bi==0){
  122. return $a;
  123. }else{
  124. $ei= strpos($a,']]');
  125. $qb=substr($a,0,$bi);
  126. $eb=substr($a,$ei+2);
  127. $b=substr($a,$bi+2,$ei-$bi-2);
  128. $ci=strpos($b,'|');
  129. $add=substr($b,0,$ci);
  130. $herf=substr($b,$ci+1,strlen($b)-$ci);
  131. }
  132. return $qb."<a href='".$herf."'>".$add."</a>".$eb;
  133. }
  134. ?>