project.php 8.4 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229
  1. <meta charset="utf-8">
  2. <meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
  3. <?php
  4. /*
  5. 本代码已经申请著作权保护
  6. 盗版必究
  7. 法律顾问:北京东环律所事务所
  8. Array ( [openid] => oftVf0iXOUBEuBMj2LOhODTE8SoY [nickname] => 朱发刚 [sex] => 1
  9. [language] => zh_CN [city] => 元朗区 [province] => 香港
  10. [country] => 中国
  11. [headimgurl] =>
  12. http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLX6BOQKz25FVs3W1jvqlUkmnibgXne80H4kticKWhiaf0h9lHSG18tjyh7j9ef36lWHno3YyN3hBnjA/132
  13. [privilege] => Array ( ) )
  14. 朱发刚oooooooooooooooo您已经授权成功!关闭本页面即可开始咨询.改名成功!
  15. */
  16. $toUsername=$_GET["toUsername"];;
  17. $json = file_get_contents('json/'.$toUsername.'.json');
  18. //echo $json;
  19. $arr = json_decode($json,true);
  20. $appid = $arr['Gappid'];
  21. if($appid==''){echo '缺少授权服务号的appid';
  22. exit;};
  23. $secret = $arr['GAPPSECRET'];
  24. if($secret==''){echo '缺少授权服务号的GAPPSECRET';
  25. exit;};
  26. // print_r($toUsername);
  27. $code = $_GET["code"];
  28. $zfopenid = $_GET["zfopenid"];
  29. $kfopenid = $_GET["kfopenid"];
  30. $kfname = $_GET["kfname"];
  31. $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
  32. $oauth2 = getJson($oauth2Url);
  33. // print_r($oauth2);
  34. //第二步:根据全局access_token和openid查询用户信息
  35. if ($oauth2['errcode']<>0){
  36. echo "参数错误,一般是密钥错误引起,请检查.<br>";
  37. print_r($oauth2['errmsg']);
  38. exit;
  39. }
  40. $access_token = $oauth2["access_token"];
  41. $openid = $oauth2['openid'];
  42. $get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
  43. //处理授权识别问题???
  44. $userinfo = getJson($get_user_info_url);
  45. //print_r ($userinfo);
  46. if ($userinfo['errcode']==0){
  47. //打印用户信息
  48. $ucid=$arr['uniacid'];
  49. $website=$arr['website'];
  50. if($kfopenid<>''){
  51. $json = file_get_contents("json/".$ucid."_kefu.json");
  52. $kefuarr = json_decode($json,true); //客服列表
  53. if($kefuarr[$kfopenid]=='空闲'){
  54. $kefuarr[$kfopenid]=$zfopenid;
  55. $res=file_put_contents("json/".$ucid."_kefu.json", json_encode($kefuarr));
  56. $okstr='接入客服'.$kfname;
  57. }
  58. }
  59. // print_r("<img src='".$userinfo['headimgurl']."'>");
  60. print_r('你好!'.$userinfo['nickname'].'授权成功!'.$okstr.' 关闭本页面,回复任意字符即可开始咨询');
  61. //插入数据库 //
  62. edituser($ucid,$zfopenid,$userinfo['nickname'],$website,$userinfo['headimgurl'],$userinfo['city']);
  63. define("APPID", $arr['APPID']);
  64. define("APPSECRET", $arr['APPSECRET']);
  65. $myopenid=trim($arr['openids']);//管理员id
  66. $Atoken=getToken(APPID,APPSECRET,$toUsername);//修正token时间问题
  67. $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken;
  68. // echo $url ;
  69. $zt=$kfname.":";
  70. //给用户说话 //
  71. $data='{ "touser":"'.$zfopenid.'", "msgtype":"text",
  72. "text": { "content":"'.$zt.$userinfo['nickname'].',你好!有什么可以帮你的吗. ' . $zt . ' " } }';
  73. // echo $data;
  74. //生成用户缓存
  75. alluser($ucid,$website);
  76. //删除缓存数据
  77. //exec("rm -f ".'json/'.$ucid.'_token.json');
  78. $aaa = http_post_data($url, $data);
  79. //通知管理员//
  80. if ($userinfo['sex']==1){ $sex=',性别:男';}
  81. if($userinfo['sex']==0){ $sex='性别:女';}
  82. $baogao=' {
  83. "title": "['.$kfname.'用户授权成功]'.$userinfo['nickname'].'",
  84. "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
  85. "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
  86. "thumb_url": "'.$userinfo['headimgurl'].'"
  87. }';
  88. //echo $baogao;
  89. // logger($baogao);
  90. $caidan=trim($arr['Gjsonid']);//进入通知:
  91. if ($caidan<>''){
  92. $Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
  93. // logger("通知下发:".$caidan_arr['APPID'].'-状态:'.$caidan_arr['openids']);
  94. $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken;
  95. $myopenid=trim($arr['Gopenids']);
  96. }
  97. $data1='{ "touser":"'.$myopenid.'", "msgtype":"link", "link": '.$baogao.' }';
  98. $aaa = http_post_data($url, $data1); //
  99. if($kfopenid<>''){
  100. $baogao=' {
  101. "title": "[新用户授权进入]'.$zt.'-'.$userinfo['city'].'",
  102. "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
  103. "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
  104. "thumb_url": "'.$userinfo['headimgurl'].'"
  105. }';
  106. $data1='{ "touser":"'.$kfopenid.'", "msgtype":"link", "link": '.$baogao.' }';
  107. }
  108. echo("<script> setTimeout(function(){WeixinJSBridge.call('closeWindow');},100);</script>");
  109. }else
  110. {
  111. print_r('授权失败,请检查信息是否正确.');
  112. }
  113. function getJson($url){
  114. $ch = curl_init();
  115. curl_setopt($ch, CURLOPT_URL, $url);
  116. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);
  117. curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);
  118. curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  119. $output = curl_exec($ch);
  120. curl_close($ch);
  121. return json_decode($output, true);
  122. }
  123. function edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai) //改名取号
  124. {
  125. $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&zhuangtai=".$zhuangtai; //zhuangtai
  126. // echo $token_access_url;
  127. // exit;
  128. $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
  129. $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
  130. $data=$result['data'];
  131. if ($data==1){$data='改名成功!';}
  132. else{$data='改名失败!';}
  133. return $data ;
  134. }
  135. function getToken($appid,$appsecret,$jsonid){
  136. $file = file_get_contents("json/{$jsonid}_token.json",true);
  137. $result = json_decode($file,true);
  138. if (time() > $result['expires']){
  139. $data = array();
  140. $data['access_token'] = getNewToken($appid,$appsecret);
  141. $data['expires']=time()+7200;
  142. $jsonStr = json_encode($data);
  143. $fp = fopen("json/{$jsonid}_token.json", "w");
  144. fwrite($fp, $jsonStr);
  145. fclose($fp);
  146. return $data['access_token'];
  147. }else{
  148. return $result['access_token'];
  149. }
  150. }
  151. function getNewToken($appid,$appsecret){
  152. $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
  153. $access_token_Arr = https_request($url);
  154. return $access_token_Arr['access_token'];
  155. }
  156. function https_request ($url){
  157. $ch = curl_init();
  158. curl_setopt($ch, CURLOPT_URL, $url);
  159. curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
  160. curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
  161. $out = curl_exec($ch);
  162. curl_close($ch);
  163. return json_decode($out,true);
  164. }
  165. function http_post_data($url, $data_string) {
  166. set_time_limit ( 0 );
  167. $curl = curl_init();
  168. curl_setopt($curl, CURLOPT_URL, $url);
  169. curl_setopt($curl, CURLOPT_HEADER, 0);
  170. curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
  171. curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。
  172. curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
  173. curl_setopt($curl, CURLOPT_HTTPHEADER, array(
  174. 'Content-Type: application/json',
  175. 'Content-Length: ' . strlen($data_string))
  176. );
  177. $data = curl_exec($curl);
  178. curl_close($curl);
  179. return $data;
  180. }
  181. function alluser($ucid,$website){
  182. $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=Getallopenid&m=qidong_app";
  183. $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
  184. $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
  185. $data=$result['data'] ;
  186. return json_encode($data) ;
  187. }
  188. ?>