1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441 |
- <?php
- //echo checkSignature;
- /* 2.58 增加@功能 .
- 2.11 增加群发 图片
- 2.12 增加消息报告 本地缓存
- 2.13 ?支持公共号消息
- 2.14 ?支持多用户
- 2.15 ?支持素材库
- CopyRight 2017 www.17cheng.cn All Rights Reserved
- */
- header('Content-type:text/json');
- traceHttp();
- ini_set("display_errors", "off");
- $stime=microtime(true);
- define("TOKEN", "xcxkefu");
- $wechatObj = new wechatCallbackapiTest();
- if (isset($_GET['echostr'])) { //判断是不是首次验证
- $wechatObj->valid();
- }else{
- $wechatObj->responseMsg();
- }
- class wechatCallbackapiTest
- {
- public function valid()
- {
- $echoStr = $_GET["echostr"];
- if($this->checkSignature()){
- echo $echoStr;
- exit;
- }
- }
- private function checkSignature()
- {
- $signature = $_GET["signature"];
- $timestamp = $_GET["timestamp"];
- $nonce = $_GET["nonce"];
- $token = TOKEN;
- $tmpArr = array($token, $timestamp, $nonce);
- sort($tmpArr);
- $tmpStr = implode( $tmpArr );
- $tmpStr = sha1( $tmpStr );
- if( $tmpStr == $signature ){
- return true;
- }else{
- return false;
- }
- }
- public function responseMsg()
- {
- $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取数据
- //logger(time());
- if (!empty($postStr)){
- //$postObj =json_decode($postStr);
- $gzh=true;
- $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
-
- $fromUsername = trim($postObj->FromUserName); //openid
- $toUsername = $postObj->ToUserName;
- $tousernamebak=trim($toUsername);
- $keyword = trim($postObj->Content);
- $sessionFrom=$postObj->SessionFrom;
- //logger('sessionFrom:'.$sessionFrom);
- // $sessionFrom.="|";
- //$userinfo=explode("|",$sessionFrom,-1);
-
-
- $MsgType = $postObj->MsgType;//消息类型 text event
- //$SessionFrom = $postObj->SessionFrom;//消息类型 text event
- $time = time();
- logger($postStr);
- //读取设置json 系统设置
- $json = file_get_contents('json/'.$toUsername.'.json');
- $arr = json_decode($json,true);
- $uniacid=$arr['uniacid'];
- $website=$arr['website'];
- $json = file_get_contents('json/'.$uniacid.'_keywords.json');//读取key列表
- $keys = json_decode($json,true);
- $json = file_get_contents('json/'.$uniacid.'_keys.json');//读取数字key列表
- $numkeys = json_decode($json,true);
- define("APPID", $arr['APPID']);
- define("APPSECRET", $arr['APPSECRET']);
- $myopenid=trim($arr['openids']);//管理员id
- // if(isset($arr['uniacid'])){$uniacid=0; }else{};
-
-
-
- //获取access_token 先获取token备份.查询 token是否存在
-
- // $token_access_url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".APPID."&secret=".APPSECRET;
- // logger( $token_access_url);
- // $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- // $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
- // $Atoken = $result['access_token']; //
- $Atoken=getToken(APPID,APPSECRET,$toUsername);//修正token时间问题
-
- //下发信息
- $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken;
- $urlbak=$url;
- if ($MsgType == "image") {//接收图片
-
-
- $PicUrl = $postObj->PicUrl;
- $MediaId = $postObj->MediaId;
- $MsgId = $postObj->MsgId;
-
- if ($fromUsername!= $myopenid){ //当是自己用户发来消息时.
-
- $data1=' { "touser":"'.$myopenid.'", "msgtype":"image",
- "image": { "media_id":"'.$MediaId.'" }}';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
- } else{//管理员下发消息.
-
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowid=json_decode($nowid, true);
- //判断是给谁的图片 .获取到token 并
-
- if (trim($nowid['tousername'])==$toUsername)
- {
-
- $data1=' { "touser":"'.$nowid['openid'].'", "msgtype":"image",
- "image": { "media_id":"'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
- }else{
-
- $file = file_get_contents("json/{$nowid['tousername']}_token.json",true);
- $result = json_decode($file,true);
- $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
-
- $add="temp/".time().".png";//保存图片时的id
- $img = GrabImage($PicUrl,$add);
- logger('////--'.$img);
- // $type = 'image';
- if ($img<>''){//当是图片时 转换成微信图片
-
- $udata= json_decode(uploadFile($add,'image',$result['access_token']),true) ;
- $MediaId = $udata['media_id'];
- logger('Mid:'.$MediaId);
- }
-
- //发来图片 没转换成功时
- if ($MediaId==''){
- $data1='{ "touser":"'.trim($nowid['openid']).'", "msgtype":"text",
- "text": { "content":"[客服发来图片]\n <a href=\"'.$PicUrl.'\">点击查看</a> " } }';
- $bbb = http_post_data($url, $data1);
-
- }else{
- $data1=' { "touser":"'.$nowid['openid'].'", "msgtype":"image",
- "image": { "media_id":"'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
- }
- logger($data1.$bbb);
-
- }
-
-
- }
-
- exit;
- }
-
-
- if ($MsgType == "link") {//接收图文链接
-
-
- $PicUrl = $postObj->PicUrl;
-
- $MsgId = $postObj->MsgId;
- $Title = $postObj->Title;
- $Description = $postObj->Description;
- $Url = $postObj->Url;
- $baogao=' { "title": "'.$Title.'", "description": "'.$Description.'",
- "url": "'.$Url.'", "thumb_url": "" }';
- logger($baogao);
-
-
- if ($fromUsername!= $myopenid){ //当是自己用户发来消息时.
-
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"link",
- "link": '.$baogao.' }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
-
-
- } else{//管理员下发消息.
-
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowid=json_decode($nowid, true);
- //判断是给谁的图片 .获取到token 并
-
- if (trim($nowid['tousername'])==$toUsername)
- {
- $data1='{ "touser":"'.$nowid['openid'].'", "msgtype":"link",
- "link": '.$baogao.' }';
- $bbb = http_post_data($url, $data1);
- }else{
-
- $file = file_get_contents("json/{$nowid['tousername']}_token.json",true);
- $result = json_decode($file,true);
- $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
-
- $data1='{ "touser":"'.$nowid['openid'].'", "msgtype":"link",
- "link": '.$baogao.' }';
- $bbb = http_post_data($url, $data1);
-
- logger($data1.$bbb);
-
- }
-
-
- }
-
- exit;
- }
-
-
-
- if ($MsgType == "video") {//接收图片
-
-
- $PicUrl = $postObj->PicUrl;
- $MediaId = $postObj->MediaId;
- $thumb_media_id = $postObj->ThumbMediaId;
-
-
- if ($fromUsername!= $myopenid){ //
-
- $data1=' { "touser":"'.$myopenid.'", "msgtype":"video",
- "video": { "media_id":"'.$MediaId.'", "thumb_media_id":"VJFReD3DymOpc5slq3FvgQwzNtXQ9hONlafGaxg4P_F5x-1qvj1bgArhYQnrLrRV",
- "title":"未命名'.$title.'", "description":"视频说明:'.$MediaId.'" }}';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- logger($data1);
- logger($aaa);
-
- } else{
-
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
-
- $content=''.$paidui['nickname'].':\n';
- // $fromUsername= $myopenid;
- $data1=' { "touser":"'.$nowopenid['openid'] .'", "msgtype":"video",
- "video": { "media_id":"'.$MediaId.'", "thumb_media_id":"'.$MediaId.'",
- "title":"未命名'.$title.', "description":"视频说明:'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
-
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[图片ID]\n '.$MediaId.'\n 图片链接:'.$PicUrl.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
-
- }
-
- exit;
- }
-
-
-
- if ($MsgType == "voice") {//接收声音
-
-
- $PicUrl = $postObj->PicUrl;
- $MediaId = $postObj->MediaId;
- $MsgId = $postObj->MsgId;
- $Recognition = $postObj->Recognition;
-
- if ($fromUsername!= $myopenid){ //接收用户发来的语音
- $data1=' { "touser":"'.$myopenid.'", "msgtype":"voice",
- "voice": { "media_id":"'.$MediaId.'" }}';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- if($Recognition<>''){
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[语音文本]\n '.$Recognition.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- }
-
- } else{
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowid=json_decode($nowid, true);
- if (trim($nowid['tousername'])==$toUsername)
- {
- //$nowopenid=json_decode($nowid, true)['openid'];
- $data1=' { "touser":"'.$nowid['openid'] .'", "msgtype":"voice",
- "voice": { "media_id":"'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
- }else{
- $file = file_get_contents("json/{$nowid['tousername']}_token.json",true);
- $result = json_decode($file,true);
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
- $nowopenid=$nowid['openid'];
- $data1='{ "touser":"'.trim($nowopenid).'", "msgtype":"text",
- "text": { "content":"[语音文本]\n '.$Recognition.' " } }';
- $bbb = http_post_data($url1, $data1);
- if (json_decode($bbb, true)['errcode']==0){
- $sd='已送达';}else{$sd='未送达';}
- $data1='{ "touser":"'.trim($fromUsername).'", "msgtype":"text",
- "text": { "content":"['.$sd.']\n '.$Recognition.' " } }';
- $bbb = http_post_data($url, $data1);
-
- }
-
-
- ////////////////////////
-
-
-
-
-
- }
-
- exit;
- }
-
-
-
-
- if ($MsgType == "file") {//接收文件 暂时不能支持 .
-
-
- $FromUserName = $postObj->FromUserName;
- $Title = $postObj->Title;
- $FileMd5 = $postObj->FileMd5;
-
- if ($fromUsername!= $myopenid){
-
- // $data1=' { "touser":"'.$fromUsername.'", "msgtype":"file",
- // "file": { "title": "'.$Title.'", "FileMd5":"'.$FileMd5.'" }}';
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":"[系统提示]\n由于微信系统限制,我们还不能接收您发来的文件,可以加我们的客服QQ进行传递.回复QQ立即接通QQ链接. " } }';
-
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- logger($aaa);
- } else{
-
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
-
- $content=''.$paidui['nickname'].':\n';
- // $fromUsername= $myopenid;
- $data1=' { "touser":"'.$nowopenid['openid'].'", "msgtype":"image",
- "image": { "media_id":"'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
-
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[图片ID]\n '.$MediaId.'\n 图片链接:'.$PicUrl.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
-
- }
-
- exit;
- }
-
- if ($MsgType == "miniprogrampage") {//接收转发小程序...
-
-
- $FromUserName = $postObj->FromUserName;
- $Title = $postObj->Title;
- $AppId = $postObj->AppId;
- $PagePath = $postObj->PagePath;
- $ThumbMediaId = $postObj->ThumbMediaId;
-
- if ($fromUsername!= $myopenid){ //发送给管理员
- $data1=' { "touser":"'.$myopenid.'", "msgtype":"miniprogrampage",
- "miniprogrampage": { "title": "'.$Title.'",
- "pagepath": "'.$pagepath.'",
- "thumb_media_id": "'.$ThumbMediaId.'" }}';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
- // logger($aaa);
- } else{
-
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
-
- // $fromUsername= $myopenid;
- // $data1=' { "touser":"'.$nowopenid['openid'].'", "msgtype":"image",
- // "image": { "media_id":"'.$MediaId.'" }}';
- $data1=' { "touser":"'.$nowopenid['openid'].'", "msgtype":"miniprogrampage",
- "miniprogrampage": { "title": "'.$Title.'",
- "pagepath": "'.$pagepath.'",
- "thumb_media_id": "'.$ThumbMediaId.'" }}';
- $bbb = http_post_data($url, $data1);
-
- }
-
- exit;
- }
-
- $Event = $postObj->Event;
- if ($Event == "CLICK") {
- $EventKey = $postObj->EventKey;
- $MsgType='text';
- $keyword=trim($EventKey);//修复公众号问题.
- logger('event:'.$Event.$MsgType.'key:'.$keyword);
-
- }
- if ($Event == "VIEW") {
- exit;
-
- }
-
- if ($MsgType == "event") {
- $event = $postObj->Event;
- //如果传输了seession 就读取然后存储 .
- /// if (length($SessionFrom)>3) {$nickname=explode("|",$SessionFrom,-1)[0] ;}
- // $nickname=explode("|",$sessionFrom,-1)[0] ;
- // logger('nickname0:'.$nickname);
- //处理第一次进入的回复内容 用户信息查询. 先查询数据库: 并注册用户.
- if ($fromUsername== $myopenid){ //管理员上线通知 排队人数 留言条数 排队的人.
- $paiduinumber=count(file('json/'.$toUsername.'_now.json'));
- $liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
- $tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n当前聊天:\n'.$nowopenid['nickname'];
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[管理员上线工作提醒]\n '.$tongzhi.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- exit;
- }
- //下发图片.
- // $MediaId='EZMIeOmWpWieTSEPkUNQ-RfhAoGXBgjHrAXnVbfp9HRt6-Kz3Wx7_jdOSGWZW1uK';
- // $data1=' { "touser":"'.$fromUsername.'", "msgtype":"image",
- // "image": { "media_id":"'.$MediaId.'" }}';
-
- // $bbb = http_post_data($url, $data1);
- // exit;
- $user= getwxinfo($Atoken,$fromUsername);
-
- if($event=='unsubscribe'){ $eve='取消关注'; exit; };
-
- $userinfo= getuser($uniacid,$fromUsername,$user['nickname'],$website);
- logger('nickname1:'.$uniacid.$fromUsername.$userinfo['nickname']);
- $send=$keys[$arr['默认']];
- $data['title']= str_replace($userinfo['id'],'[id]',$data);
- if ($send['link']['title']!=''){
- $send['link']['title']=str_replace('id',$userinfo['id'],$send['link']['title']);
- $send['link']['title']=str_replace('[name]', trim($userinfo['nickname']),$send['link']['title']);
-
- }
- if ($send['miniprogrampage']['title']!=''){
- $send['miniprogrampage']['title']=str_replace('id',$userinfo['id'],$send['miniprogrampage']['title']);
- $send['miniprogrampage']['title']=str_replace('[name]', trim($userinfo['nickname']),$send['miniprogrampage']['title']);
-
- }
- if ($send['text']['content']!=''){
-
- $send['text']['content']=str_replace('[id]',$userinfo['id'],$send['text']['content']);
- $send['text']['content']=str_replace('[name]',trim($userinfo['nickname']),$send['text']['content']);
-
- }
- $send['touser']=$fromUsername;
- $data=json_encode($send,JSON_UNESCAPED_UNICODE);
- //替换会员id和名字:
- // $data= str_replace($userinfo['id'],'[id]',$data);
- // echo str_replace("world","Shanghai","Hello world!");
- // json_encode( $arr['关注'],JSON_UNESCAPED_UNICODE);
- $aaa = http_post_data($url, $data); //下发首次进入的回复内容.
-
- $zt=json_decode($aaa, true)['errcode'];
-
- logger("关注下发:".$data.'-状态:'. $zt);
- // $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- //"text": { "content":"[进入提醒测试]\n '.$zt.' " } }';
- // $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
- $caidan=trim($arr['Gjsonid']);//进入通知:
- if ($caidan<>''){
-
- $Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
- // logger("通知下发:".$caidan_arr['APPID'].'-状态:'.$caidan_arr['openids']);
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken;
- $data1='{ "touser":"'.$arr['Gopenids'].'", "msgtype":"text",
- "text": { "content":"[小程序进入提醒]\n '.$userinfo['nickname'].' " } }';
-
- $aaa = http_post_data($url1, $data1); // //通知到公共号
- logger($data1.$aaa);
- }
-
-
- $eve='用户点击了按钮';
- if($event=='subscribe'){ $eve='新增关注'; };
- if($event=='unsubscribe'){ $eve='取消关注'; };
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"['.$eve.'通知]\n 编号: '.$userinfo['id'].' 昵称: '.$userinfo['nickname'].$eve.'" } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
- exit;
- }
- if ($MsgType == "text") {// 如果不是第一次进入
- // logger("keyword".$arr[$keyword]);
- //如果进入的是数字 判断是否有对应的文字 .
- if(is_numeric($keyword)){
-
- $send=$keys[$numkeys[$keyword]];
-
- }
- else {
- $send=$keys[$keyword]; //$keys['关于我们'];
-
- }
-
-
-
- if ( $send<>'' ) { //判断是否是知识库设置字段
- // $user= getwxinfo($Atoken,$fromUsername);
- // logger('获取微信用户信息:'.$user);
-
- // $userinfo= getuser($uniacid,$fromUsername,$nickname);
- $userinfo=getwxinfo($Atoken,$fromUsername);
-
-
- if ($send['link']['title']!=''){
- $send['link']['title']=str_replace('[id]',$userinfo['id'],$send['link']['title']);
- $send['link']['title']=str_replace('[name]', trim($userinfo['nickname']),$send['link']['title']);
- }
- if ($send['miniprogrampage']['title']!=''){
- $send['miniprogrampage']['title']=str_replace('[id]',$userinfo['id'],$send['miniprogrampage']['title']);
- $send['miniprogrampage']['title']=str_replace('[name]', trim($userinfo['nickname']),$send['miniprogrampage']['title']);
- }
- if ($send['text']['content']!=''){
- $send['text']['content']=str_replace('[id]',$userinfo['id'],$send['text']['content']);
- $send['text']['content']=str_replace('[name]',trim($userinfo['nickname']),$send['text']['content']);
- $send['text']['content']=changeurl($send['text']['content']);
- }
- $send['touser']=$fromUsername;
- $data=json_encode($send,JSON_UNESCAPED_UNICODE);
-
- $aaa = http_post_data($url, $data);
- logger($data);
-
- getuser($uniacid,$fromUsername,$userinfo['nickname'],$website); //保存
- $zt=json_decode($aaa, true)['errcode'];
- if ($zt!=0){//下发未成功
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 系统忙 错误代码: ' . $zt . ' " } }';
- $aaa = http_post_data($url, $data);
- }
-
- logger("关注下发:".$data.'-状态:'. $zt);
- exit;
-
- }else {//文字推送
-
-
- if ($keyword=='openid'){ //获取openid
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 你的openid: ' . $fromUsername . ' " } }';
- $aaa = http_post_data($url, $data);
- exit;
- }
- if (substr($keyword,0,6)=='取号'){ //手动设置昵称..
- $quhao= edituser($uniacid,$fromUsername,trim(substr($keyword,6)),$website);
- $allnumber=count(file('json/'.$toUsername.'_now.json'));
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" '.substr($keyword,6).$quhao.' 前面有' .$allnumber . '人排队. " } }';
- $aaa = http_post_data($url, $data);
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[取号通知]\n'.substr($keyword,6).'排队取号,目前共'.$allnumber+1 . ' 人. \n " } }';
- $bbb = http_post_data($url, $data1);
- exit;
- }
- if ($arr["其他"]<>""){
- //人工客服时 读一次数据库 .
- if ($fromUsername!= $myopenid){ //不是管理员时
- //先判断用户是否在排队?
-
- $caidan=trim($arr['Gjsonid']);//进入通知:
- if ($arr["其他"]=='公众号客服'){
- $Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
- $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken;
- $myopenid=trim($arr['Gopenids']);
- $toUsername= $caidan; //写入新的公众号文件里面.
- }
-
- $paidui= ifpaidui('json/'.$toUsername.'_now.json',$fromUsername);
- logger($fromUsername.':'.$paidui['shunxu']);
-
- if ($paidui['shunxu']==0)//是新用户 查编号 写入队列.
- {
- $userinfowx=getwxinfo($Atoken,$fromUsername);
- $userinfo= getusernew($uniacid,$fromUsername,$userinfowx['nickname'],$website);//如果是第一个 直接读取缓存
- $userinfo['tousername']=$tousernamebak;
- $userinfo['uniacid']=$uniacid;
-
- //判断是否是公共号绑定回复----
-
-
-
- $new= savejson('json/'.$toUsername.'_now.json', json_encode($userinfo));//写入一个. 改.
- $allnumber=count(file('json/'.$toUsername.'_now.json'));
- if ($new==0){$new1=$allnumber;} else{$new1=$new;} //新用户 总排队
- // $fromUsername= $myopenid;
- if($allnumber==1)
- {$hui='可直接回复';
- $tishi='\n人工客服已经接入.';
- //对方正在输入...哈哈
- $data8='{ "touser":"'.$fromUsername.'", "command":"Typing"}';
- $url8='https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token='.$Atoken;
- $bbb = http_post_data($url8, $data8);
- logger($bbb);
- //结束输入判断.
-
- } else{
- $hui='可用命令 下一个 接通.或\n @'.$userinfo['id'].':私信Ta';
- if ($arr["其他"]=='人工+机器人'){ $tishi='\n直接回复接入智能聊天机器人.';};
- };
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[排队通知]目前共'.$allnumber . ' 人. \n'.$userinfowx['nickname'].' 备注:['.$userinfo['beizhu'].'] :'.$keyword.'\n '.$hui.'" } }';
- $bbb = http_post_data($url, $data1); //第一次打招呼通知管理员.
- //读取Key 自动导航
- $arr= array_keys($numkeys);
- $i=0;
- foreach ($arr as $arr) {
- $daohang.=$arr.':'.changeurl($numkeys[$arr]) .'\n';
- $i++;
- if ($i>9){break;};
- }
- //echo $caidan;
-
- $jqr=' 先看看这些能不能帮到您. 直接回复序号即可.\n'.$daohang;
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":"排队中,您是第'.$new1.' 个. '.$jqr.$tishi.' " } }'; //当没有约定好的回复时,这么回复。
-
- $bbb = http_post_data($urlbak, $data); //第一次打招
- exit;
- }
- elseif($paidui['shunxu']==1){ //是第一个 .
- $content='['.$paidui['id'].']'.$paidui['nickname'].'_'.$uniacid.':\n';
- // $fromUsername= $myopenid;
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"'. $content. $keyword . ' " } }';
- $bbb = http_post_data($url, $data1);
-
- if (json_decode($bbb, true)['errcode']==40001)
- {
- //发送失败 删掉token 再次获取.
- exec("rm -f ".'json/'.$toUsername.'_token.json');
-
- //
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"重发:'. $content. $keyword . ' " } }';
- $bbb = http_post_data($url, $data1);
- exit;
- }
-
-
- if (json_decode($bbb, true)['errcode']<>0){
- $data2='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'" } }'; //当没有约定好的回复时,这么回复。
- $bbbb = http_post_data($urlbak, $data2);
- savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
- $caidan=trim($arr['Gjsonid']);//消息通知到公共号:
-
- if ($caidan<>''){
- $Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken;
- $data1='{ "touser":"'.$arr['Gopenids'].'", "msgtype":"text",
- "text": { "content":"[客服离线消息]错误代码:'.json_decode($bbb, true)['errcode'].'\n '. $content. $keyword .' " } }';
- $aaa = http_post_data($url1, $data1); // //通知到公共号
- logger($data1.$aaa);
-
- if (json_decode($aaa, true)['errcode']==40001)
- {
- //发送失败 删掉token 再次获取.
- exec("rm -f ".'json/'.$caidan.'_token.json');
- $Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken;
- $data1='{ "touser":"'.$arr['Gopenids'].'", "msgtype":"text",
- "text": { "content":"[客服离线消息]错误代码:'.json_decode($bbb, true)['errcode'].'\n '. $content. $keyword .' " } }';
-
- $aaa = http_post_data($url1, $data1); // //通知到公共号
-
-
- }
-
- }
-
- }
- }else {//不是第一个 判断客服模式
- if ($arr["其他"]=='人工+机器人')
- { $jqr='先和智能客服聊会. \n智能客服:'.jiqiren($keyword); }
- else
- { $jqr='轮到您时我们会信息通知.请耐心等待. \n '; }
- // $jqr='先和智能客服聊会. \n智能客服:'.jiqiren($keyword);
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":"排队中,您是第'.$paidui['shunxu'].' 个. '.$jqr.' " } }'; //当没有约定好的回复时,这么回复。
- $aaa = http_post_data($urlbak, $data); //
- logger('下发:'.$data.$aaa);
-
- //通知到公共号
- exit;
- }
-
-
- }else{//处理管理员发来的消息
-
- //测试下发图片
- if ($keyword=='生成缓存'){//调用生成缓存接口.
- //
- $huncun= json_decode(alluser($uniacid,$website),true);
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":" [缓存报告:]'.$huncun['openids'].' 数量:'.$huncun['count'].' "" } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- exit;
- }
- //处理群发所有人消息
-
- if (substr($keyword,0,10)=='@所有人'){
- //判断有没有缓存.
-
- $huncun= json_decode(alluser($uniacid,$website),true);
- //复制一份 "json/".$uniacid."_user.json"
- // exec("cp -f {$icon} ".$_base_path.'/WeMall/res/drawable-xhdpi-v4/ic_launcher.png');
- $gjz=substr($keyword,10,strlen(trim($keyword))-10);
- if (substr ($keyword, -1)=='#'){
-
- $gjz=str_replace('#','|',$gjz);
- }
-
-
- logger('是不是:'.$gjz) ;
- $baogao=' {
- "title": "代发列表已经准备好!点此群发",
- "description": "本次准备发送: '.$huncun['count'].' 请1分钟内点击,过期失效.",
- "url": "'.$website.'addons/qidong_app/qunfa.php?uniacid='.$uniacid.'&keyword='.$gjz.'&tousername='.$toUsername.'&t='.time().'",
- "thumb_url": "'.$website.'/addons/qidong_app/icon.jpg"
- }';
- logger($baogao);
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"link",
- "link": '.$baogao.' }';
-
- $aaa = http_post_data($url, $data1); //
-
- exit;
-
- }///@所有人结束
-
- //增加@某人的功能
- if (substr($keyword,0,1)=='@'){
- //取openid hiuser
- $stri=0;
- $stri= stripos($keyword,':');
- if ($stri==0){$stri= stripos($keyword,' ') ;}
- if ($stri==0){$stri= stripos($keyword,':') ;}
- $nid=substr($keyword,1,$stri-1); //@12:=>12
- $say=trim(substr($keyword,$stri+1));//发送的内容:
- //判断say最后字符是# 则是关键词消息 991#
- $liuuser= hiuser($uniacid,$nid,$website);
-
- $result = substr ($say, -1);
- if ($result=='#'){
- $gjz=substr($say,0,strlen($say)-1);
- if(is_numeric($gjz)){
- $send=$keys[$numkeys[$gjz]];
- }
- else {
- $send=$keys[$gjz]; //$keys['关于我们'];
- }
-
- $send['touser']=$liuuser['openid'];
- $nickname=$liuuser['nickname'];
- if($nickname==''){$nickname='会员'.$liuuser['id'];}
- $send['link']['title']=str_replace('[id]',$liuuser['id'],$send['link']['title']);
- $send['link']['title']=str_replace('[name]', trim($nickname),$send['link']['title']);
-
-
- $data=json_encode($send,JSON_UNESCAPED_UNICODE);
-
- $bbb = http_post_data($url, $data);
-
- logger('单发:'.$data);
-
- }else{
-
-
-
- $data2='{ "touser":"'.$liuuser['openid'].'", "msgtype":"text",
- "text": { "content":"[管理员@你]:\n'.$say.'" } }'; //当没有约定好的回复时,这么回复。
- $bbb = http_post_data($url, $data2);
- }
-
- if (json_decode($bbb, true)['errcode']==0)
- { $zt='送达'; }else{ $zt='失败,可能已经离线'.json_decode($bbb, true)['errcode']; };
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"会员'.$nid.'[消息'.$zt.']\n " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
-
- //发送消息
-
-
-
- exit;
- }//@某人结束
-
-
-
- switch ($keyword)
- {
- case '下一个':
- $delid=deljson('json/'.$toUsername.'_now.json');//删掉一个
- //
- logger($delid);
- $jieshuyu= str_replace('[name]',$delid['nickname'],$arr['结束语']);
- $data0='{ "touser":"'.trim($delid['openid']).'", "msgtype":"text",
- "text": { "content":" '.$jieshuyu.' " } }';
- //$delid=json_decode($delid, true);
- logger('1:'.$uniacid.'---'.$delid['uniacid']);
- if (trim($delid['uniacid'])==$uniacid)
- // If (substr(trim($delid['tousername']),0,1)=='')
- { //当是自己公众号的客户时:
- $a= edituser($uniacid,$delid['openid'],'',$website);
- logger('更新时间:'.$uniacid.$delid['openid'].$a);
-
- $aaa = http_post_data($url, $data0);
- logger('结束语1:'.$data0);
- }else{
- $file = file_get_contents("json/{$delid['tousername']}_token.json",true);
- $a= edituser($delid['uniacid'],$delid['openid'],'',$website);
- logger('更新时间1:'.$uniacid.$delid['openid'].$a);
-
- $result = json_decode($file,true);
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
-
- $aaa = http_post_data($url1, $data0);//下发结束语 .
- logger('结束语2:'.$data0);
-
- }
-
- //////////////读取下一个//////////////////////////////////////////////
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowid=json_decode($nowid, true);
- $data2='{ "touser":"'.trim($nowid['openid']).'", "msgtype":"text",
- "text": { "content":"'.$nowid['nickname'].', 你好,久等了,有什么可以帮你的吗? " } }';
- // 通知到管理员
- If (substr(trim($nowid['openid']),0,1)=='o'){
- //$userinfo= getuser($uniacid,$nowid,$nickname);
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"新用户'.$nowid['nickname'].'接入,准备接待.\n排队人数:'.count(file('json/'.$toUsername.'_now.json')).' " } }';
- $bbb = http_post_data($url, $data1);
- // exit;
- }else{
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"已经接待完毕,没有用户排队了. " } }';
- $bbb = http_post_data($url, $data1);
- // exit;
- }
-
-
-
- if (trim($nowid['tousername'])==null)
- { //当是自己公众号的客户时:
-
- $aaa = http_post_data($url, $data2);
- logger('欢迎语1 自己公共号:'.$data2);
- }
- else{
- $file = file_get_contents("json/{$nowid['tousername']}_token.json",true);
- $result = json_decode($file,true);
- $url1 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
-
- $aaa = http_post_data($url1, $data2);
- logger('欢迎语1 其他小程序:'.$data2);
-
- }
-
-
- exit;//解决两次通知问题?2.28
-
- // file_put_contents('json/'.$toUsername.'_all.json'.$delid.PHP_EOL, FILE_APPEND);
- break;
- case '排队'://排队列表
- $paiduis=paiduilist('json/'.$toUsername.'_now.json');
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":"排队人数:'.count(file('json/'.$toUsername.'_now.json')).'\n 排队列表'.$paiduis.'\n 小提示 发送@ID:内容 可直接给会员私信. " } }';
- break;
- case '看留言':
- $json = file_get_contents('json/'.$toUsername.'_lishi.json');
-
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":"本次获取的内容,已清空留言板:\n'.$json.' " } }';
- exec("rm -f ".'json/'.$toUsername.'_lishi.json');
- break;
-
-
- case '清零'://清除文件 继续..
- exec("rm -f ".'json/'.$toUsername.'_now.json');
- exec("rm -f ".'json/'.$toUsername.'_token.json');
- exec("rm -f ".'log.xml');
- if (!file_exists('json/'.$toUsername.'_now.json')){
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 排队人数清零成功! " } }';
- }
- else{
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 清零失败,请检查目录权限. " } }';
- }
- break;
-
- case '公众号':
- ///推送公众号给用户
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $data1=' {
- "touser": "'.$nowid.'",
- "msgtype": "link",
- "link": '.json_encode( $arr['关注'],JSON_UNESCAPED_UNICODE).'}';
- //没成功....
-
- break;
- default://管理员默认回复第一个 .
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowid=json_decode($nowid, true);
- //如果读到的jsonid 和 这里的不同 则是来自其他平台的 .
- //logger('读取到了一个文件:'.$nowid['tousername']);
- if (trim($nowid['tousername'])==null)
- {
- //$nowopenid=json_decode($nowid, true)['openid'];
- $data1='{ "touser":"'.trim($nowid['openid']).'", "msgtype":"text",
- "text": { "content":" '. $keyword . ' " } }';
- }else{
- $file = file_get_contents("json/{$nowid['tousername']}_token.json",true);
- $result = json_decode($file,true);
- $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$result['access_token'];
- $nowopenid=$nowid['openid'];
- $data1='{ "touser":"'.trim($nowopenid).'", "msgtype":"text",
- "text": { "content":" '. $keyword . ' " } }';
- }
-
-
-
- }
-
- $bbb = http_post_data($url, $data1);
- logger($data1.$bbb) ; }
- }
-
-
-
-
-
- }
-
- }
- $aaa = http_post_data($url, $data);
- //给管理员推送:
-
- logger($data.$aaa) ;
- }else{
- echo "";
- exit;
- }
- }
- }
- function http_post_data($url, $data_string) {
-
- set_time_limit ( 0 );
- $curl = curl_init();
- curl_setopt($curl, CURLOPT_URL, $url);
- curl_setopt($curl, CURLOPT_HEADER, 0);
- curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
- curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);//这个是重点。
- curl_setopt($curl, CURLOPT_POSTFIELDS, $data_string);
- curl_setopt($curl, CURLOPT_HTTPHEADER, array(
- 'Content-Type: application/json',
- 'Content-Length: ' . strlen($data_string))
- );
- $data = curl_exec($curl);
- curl_close($curl);
- return $data;
- }
-
- function traceHttp()
- {
- //logger("\n\nREMOTE_ADDR:".$_SERVER["REMOTE_ADDR"].(strstr($_SERVER["REMOTE_ADDR"],'101.226')? " FROM WeiXin": "Unknown IP"));
- // logger("QUERY_STRING:".$_SERVER["QUERY_STRING"]);
- }
- function logger($log_content)
- {
- if(isset($_SERVER['HTTP_APPNAME'])){ //SAE
- sae_set_display_errors(false);
- sae_debug($log_content);
- sae_set_display_errors(true);
- }else{ //LOCAL
- $max_size = 500000;
- $log_filename = "log.xml";
- if(file_exists($log_filename) and (abs(filesize($log_filename)) > $max_size)){unlink($log_filename);}
- file_put_contents($log_filename, date('Y-m-d H:i:s').$log_content."\r\n", FILE_APPEND);
- }
- }
- //查询进入人的相关信息的
- function getinfo($open_id,$title,$description,$url){
- $link=mysql_connect("localhost","we7000","w7pass000");
- if(!$link) echo "没有连接成功!";
- mysql_select_db("we7", $link); //选择数据库
- //查询userid ,昵称,图片
- $q = "SELECT * FROM hjmall_user where (wechat_open_id ='".$open_id."' and store_id=20) "; //SQL查询语句
- mysql_query("SET NAMES utf8");
- $rs = mysql_query($q); //获取数据集
- if(!$rs){die("Valid result!");}
- $row = mysql_fetch_array($rs);
- $result=' {
- "title": "hi!'.$row[10].','.$title.'",
- "description": "'.$description.'",
- "url": "'.$url.'",
- "thumb_url":"'. $row[11].'"
- }';
-
-
- mysql_free_result($rs); //关闭数据集
-
-
-
- return $result;
-
- }
- //查询进入人的相关信息的
- function getinfo_s($open_id){
- $link=mysql_connect("localhost","we70000","w7pass000");
- if(!$link) echo "没有连接成功!";
- mysql_select_db("we7", $link); //选择数据库
- //查询userid ,昵称,图片
- $q = "SELECT * FROM hjmall_user where (wechat_open_id ='".$open_id."' and store_id=20) "; //SQL查询语句
- mysql_query("SET NAMES utf8");
- $rs = mysql_query($q); //获取数据集
- if(!$rs){die("Valid result!");}
- $row = mysql_fetch_array($rs);
- $result= $row[10] ;
-
- mysql_free_result($rs); //关闭数据集
-
-
-
- return $result;
-
- }
- function alluser($ucid,$website){
-
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=Getallopenid&m=qidong_app";
-
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $data=$result['data'] ;
-
- return json_encode($data) ;
- }
- function jiqiren($keyword)
- {
- $token_access_url = "http://api.qingyunke.com/api.php?key=free&appid=0&msg=".urlencode($keyword);
- // logger( $token_access_url);
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP 变量
- $content = $result['content'];
- $content=str_replace("{br}","\n",$content);
-
-
- return $content;
-
- }
-
- function getwxinfo($token,$openid){
- $url = "https://api.weixin.qq.com/cgi-bin/user/info?access_token={$token}&openid={$openid}&lang=zh_CN";
-
- // logger($url);
- $access_token_Arr = https_request($url);
- return $access_token_Arr;
- }
-
-
- function getToken($appid,$appsecret,$jsonid){
-
- $file = file_get_contents("json/{$jsonid}_token.json",true);
- $result = json_decode($file,true);
- if (time() > $result['expires']){
- $data = array();
- $data['access_token'] = getNewToken($appid,$appsecret);
- $data['expires']=time()+7200;
- $jsonStr = json_encode($data);
- $fp = fopen("json/{$jsonid}_token.json", "w");
- fwrite($fp, $jsonStr);
- fclose($fp);
- return $data['access_token'];
- }else{
- return $result['access_token'];
- }
- }
- function getNewToken($appid,$appsecret){
- $url = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={$appid}&secret={$appsecret}";
- $access_token_Arr = https_request($url);
- return $access_token_Arr['access_token'];
- }
- function https_request ($url){
- $ch = curl_init();
- curl_setopt($ch, CURLOPT_URL, $url);
- curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
- curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
- $out = curl_exec($ch);
- curl_close($ch);
- return json_decode($out,true);
- }
-
- function deljson($path){//读出第一行 删除
-
- $f= fopen($path, "r");
- $line = fgets($f);
- ob_start();
- fpassthru($f);
- fclose($f);
- file_put_contents($path, ob_get_clean() );
- $nowopenid=json_decode($line, true);
- return $nowopenid;
- }
- function dujson($path){//读出第一行
-
- $f= fopen($path, "r");
- $line = fgets($f);
-
-
- return trim($line);
- }
- function ifpaidui($path,$openid){//查看用户是否在队列
- $lines = file($path);
- $i=0;
- $cf=0;
- foreach ($lines as $line) {
- $line = rtrim($line);
- $i++;
- $nowopenid=json_decode($line, true);
- if ($openid==$nowopenid['openid']){
- $cf=$i;
- $findedata = array(
- 'shunxu' => $cf,
- 'nickname' => $nowopenid['nickname'],
- 'openid'=> $nowopenid['openid'],
- 'id' => $nowopenid['id']
- );
-
- break;//找到后中止.
- }
- // more statements...
- }//如果没找到.
-
- if ($cf==0) {
- $data = array(
- 'shunxu' => $cf,
- 'nickname' => '无',
- 'openid'=> '',
- 'avartar' => ''
- );
- return $data;
- }
- else{
- return $findedata;
-
- }
-
-
- }
-
- function paiduilist($path){//查看用户是否在队列
- $lines = file($path);
- $i=0;
- $cf=0;
- foreach ($lines as $line) {
- $line = rtrim($line);
- $i++;
- $nowopenid=json_decode($line, true);
- $paidui=$paidui.'\n ID:'.$nowopenid['id'].' 昵称:'.$nowopenid['nickname'];
- // more statements...
- }//如果没找到.
-
- return $paidui;
-
-
-
- }
-
-
- function savejson($path,$data){ //保存1行
-
- //去除重复
- $lines = file($path);
- $i=0;
- $cf=0;
- foreach ($lines as $line) {
- $line = rtrim($line);
- $i++;
- // print("$line\n");
- if ($data==$line){
- $cf=$i;
- break;
- }
- // more statements...
- }
- if ($cf==0) {
- // echo "newone:\n";
- file_put_contents($path, $data.PHP_EOL, FILE_APPEND);
- return $cf;
- }
- else{
- return $cf;
- }
-
- }
-
-
-
-
-
-
- function edituser($ucid,$openid,$nickname,$website) //改名取号
- {
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
-
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $data=$result['data'];
- if ($data==1){$data='取号成功!';}
- else{$data='取号失败!';}
- return $data ;
- }
-
- function getusernew($ucid,$openid,$nickname,$website)
- {
- $file = file_get_contents("json/{$ucid}_token.json",true);
- $result = json_decode($file,true);
- if ($openid != $result['openid']){
- $data = array();
-
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
- // logger( $token_access_url);
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $nickname= $result['data']['wxapp'][0]['nickname'];
- if (trim($nickname==null)) {
- $nickname='会员'.$result['data']['wxapp'][0]['id'];
- $isid=1;
- }
- $data = array(
- 'nickname' => $nickname,
- 'id' => $result['data']['wxapp'][0]['id'],
- 'openid'=> $result['data']['wxapp'][0]['openid'],
- 'avartar' => $result['data']['wxapp'][0]['avartar']
- );
-
-
-
-
- $jsonStr = json_encode($data);
- $fp = fopen("json/{$ucid}_token.json", "w");
- fwrite($fp, $jsonStr);
- fclose($fp);
- return $data;
- }else{
-
-
-
- return $result;
- }
-
-
-
- }
-
- function hiuser($ucid,$id,$website){
-
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getopenid&m=qidong_app&id=".$id;
-
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $data=$result['data'][0] ;
-
- return $data ;
- }
-
-
- function getuser($ucid,$openid,$nickname,$website)
- {
- ///先判断缓存文件是否存在
- if (file_exists("json/".$ucid."_user.json")){
- $json = file_get_contents("json/".$ucid."_user.json");
- $userinfos = json_decode($json,true);
- $userid=$userinfos[$openid]['id'];
- }
-
- if ($userid==null){
- //获取微信昵称 ..??
-
-
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
- // logger( $token_access_url);
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $nickname= $result['data']['wxapp'][0]['nickname'];
- if (trim($nickname)==null) {
- $nickname='会员'.$result['data']['wxapp'][0]['id'];
- $isid=1;
- }
- $userid=$result['data']['wxapp'][0]['id'];
- }else
- {
- if (trim($userinfos[$openid]['nickname'])==null) {
- $nickname='会员'.$userinfos[$openid]['id'];
- $isid=1;
- }else{
- $nickname=$userinfos[$openid]['nickname'];
- $userid=''.$userinfos[$openid]['id'];
- }
- }
-
-
- //缓存 先去判断文件是否存在 .
- $data = array(
- 'nickname' => $nickname,
- 'id' => $userid,
- 'isid'=> $isid,
- 'avartar' => ''
- );
- return $data ;
-
-
- }
- function changeurl($a){
- $bi= strpos($a,'[[');
- if ($bi==0){
- return $a;
- }else{
- $ei= strpos($a,']]');
- $qb=substr($a,0,$bi);
- $eb=substr($a,$ei+2);
- $b=substr($a,$bi+2,$ei-$bi-2);
- $ci=strpos($b,'|');
- $add=substr($b,0,$ci);
- $herf=substr($b,$ci+1,strlen($b)-$ci);
- }
- return $qb."<a href='".$herf."'>".$add."</a>".$eb;
- }
-
- function GrabImage($url, $filename = "") {
- if ($url == ""):return false;
- endif;
- //如果$url地址为空,直接退出
- if ($filename == "") {
- //如果没有指定新的文件名
- $ext = strrchr($url, ".");
- //得到$url的图片格式
- if ($ext != ".gif" && $ext != ".jpg"):return false;
- endif;
- //如果图片格式不为.gif或者.jpg,直接退出
- $filename = date("dMYHis") . $ext;
- //用天月面时分秒来命名新的文件名
- }
- ob_start();//打开输出
- readfile($url);//输出图片文件
- $img = ob_get_contents();//得到浏览器输出
- ob_end_clean();//清除输出并关闭
- $size = strlen($img);//得到图片大小
- $fp2 = @fopen($filename, "a");
- fwrite($fp2, $img);//向当前目录写入图片文件,并重新命名
- fclose($fp2);
- return $filename;//返回新的文件名
- }
-
-
- function uploadFile($file, $type = 'image', $acctoken = '') {
- // $post_data ['type'] = $type; // 媒体文件类型,分别有图片(image)、语音(voice)、视频(video)和缩略图(thumb)
- $post_data ['media'] = '@'.$file;
- //$post_data ['media'] =$file;
-
- $url = "http://file.api.weixin.qq.com/cgi-bin/media/upload?access_token={$acctoken}&type=image";
-
- $output=http_post_media($url, $post_data);
-
- return $output;
- }
-
-
-
- function http_post_media($url,$strPOST)
- {
- $oCurl = curl_init ();
- curl_setopt ( $oCurl, CURLOPT_SAFE_UPLOAD, false);
- if (stripos ( $url, "https://" ) !== FALSE) {
- curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYPEER, FALSE );
- curl_setopt ( $oCurl, CURLOPT_SSL_VERIFYHOST, false );
- }
-
- curl_setopt ( $oCurl, CURLOPT_URL, $url );
- curl_setopt ( $oCurl, CURLOPT_RETURNTRANSFER, 1 );
- curl_setopt ( $oCurl, CURLOPT_POST, true );
- curl_setopt ( $oCurl, CURLOPT_POSTFIELDS, $strPOST );
- $sContent = curl_exec ( $oCurl );
- $aStatus = curl_getinfo ( $oCurl );
- curl_close ( $oCurl );
- if (intval ( $aStatus ["http_code"] ) == 200) {
- return $sContent;
- } else {
- return false;
- }
-
- }
-
-
-
- ?>
|