123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110111111121113111411151116111711181119112011211122112311241125112611271128112911301131113211331134113511361137113811391140114111421143114411451146114711481149115011511152115311541155115611571158115911601161116211631164116511661167116811691170117111721173117411751176117711781179118011811182118311841185118611871188118911901191119211931194119511961197119811991200120112021203120412051206120712081209121012111212121312141215121612171218121912201221122212231224122512261227122812291230123112321233123412351236123712381239124012411242124312441245124612471248124912501251125212531254125512561257125812591260126112621263126412651266126712681269127012711272127312741275127612771278127912801281128212831284128512861287128812891290129112921293129412951296129712981299130013011302130313041305130613071308130913101311131213131314131513161317131813191320132113221323132413251326132713281329133013311332133313341335133613371338133913401341134213431344134513461347134813491350135113521353135413551356135713581359136013611362136313641365136613671368136913701371137213731374137513761377137813791380138113821383138413851386138713881389139013911392139313941395 |
- <?php
- //echo checkSignature;
- /* 本程序已经申请著作权保护
- 违规使用将受到法律制裁.
- 法律顾问:北京东环律师事务所
- CopyRight 2017 www.17cheng.cn All Rights Reserved
- */
- header('Content-type:text/json');
- traceHttp();
- $stime=microtime(true);
- ini_set("display_errors", "off");
- 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"]; //获取数据
- $postStr = file_get_contents("php://input");
- //logger(time());
- if (!empty($postStr)){
- // $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
- $postObj =json_decode($postStr);
-
- $fromUsername = $postObj->FromUserName; //openid
- $toUsername = $postObj->ToUserName;
- $tousernamebak=$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){
- if ($arr["其他"]=='公众号客服'){//推送给绑定的外面的管理员.
- $caidan=trim($arr['Gjsonid']);//进入通知:
- $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; //写入新的公众号文件里面.
- logger('///-'.$toUsername.$myopenid);
- ////////////////////////转换图片.
- $add="temp/".time().".png";//保存图片时的id
- $img = GrabImage($PicUrl,$add);
- logger('////--'.$img);
- // $type = 'image';
- if ($img<>''){//当是图片时 转换成微信图片
-
- $udata= json_decode(uploadFile($add,'image',$Btoken),true) ;
-
-
- $MediaId = $udata['media_id'];
- logger('Mid:'.$MediaId);
- }
-
-
- }
-
- //////////////////////转换结束
- //发来图片 没转换成功时
- if ($MediaId==''){
- $data8='{ "touser":"'.trim($myopenid).'", "msgtype":"text",
- "text": { "content":"[用户发来图片]\n <a href=\"'.$PicUrl.'\">点击查看</a> " } }';
- $bbb = http_post_data($url, $data8);
-
- }else{
-
- $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);
- }
-
- $data1=' { "touser":"'.$nowid['openid'].'", "msgtype":"image",
- "image": { "media_id":"'.$MediaId.'" }}';
- $bbb = http_post_data($url, $data1);
- logger($data1.$bbb);
- }
- }
-
- 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;
- }
-
-
- if ($MsgType == "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'));
- if (!file_exists('json/'.$toUsername.'_lishi.json')){
- $liuyannumber=0;
- }else{
- $liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
- }
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
- $tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:'. $liuyannumber.' \n当前聊天:\n'.$nowopenid['nickname'];
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"[管理员上线工作提醒]\n '.$tongzhi.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- exit;
- }
- //下发图片.
- //查询昵称 Finduser($ucid,$tablename,$culname,$openid,$findname)
- // $sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
- // $sqstr="\n<a href='".$sqstr."'>点此授权</a>";
- $tablename=trim($arr['tablename']);//管理员id
- if ($tablename<>''){
- $culname=$arr['culname'];
- $findname=$arr['findname'];
- $nickname= Finduser($uniacid,$tablename,$culname,$fromUsername,$findname,$website);
-
- if(!$nickname)
- {
- $nickname ='';
- }
- logger('findname:'. $nickname);
- }
-
- $userinfo= getuser($uniacid,$fromUsername,$nickname,$website);
- logger('nickname1:'.$uniacid.$fromUsername.$userinfo['nickname']);
- $send=$keys[$arr['默认']];
- //$data['title']= str_replace($userinfo['id'],'[id]',$data);
- if ($arr['Gappid']<>''){ //网页授权
- //logger()
- if((substr($userinfo['nickname'],0,6)=='会员')){
- // logger('左边2个字:'.substr($userinfo['nickname'],0,6));
- $sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
- $sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
- //logger($sqstr);
- }
- }
- // $data['title'].= $sqstr;
-
- 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['text']['content'].=$sqstr;
- }
- $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":"[小程序编号'.$uniacid.'进入提醒]\n '.$userinfo['nickname'].'_备注['.$userinfo['beizhu']. '] " } }';
-
- $aaa = http_post_data($url1, $data1); // //通知到公共号
- logger($data1.$aaa);
- }
-
-
- exit;
- }
- if ($MsgType == "text") {// 如果不是第一次进入
- // logger("keyword".$arr[$keyword]);
- //如果进入的是数字 判断是否有对应的文字 .
- if(is_numeric($keyword)){
-
- $send=$keys[$numkeys[$keyword]];
-
- }
- else {
- $send=$keys[$keyword]; //$keys['关于我们'];
-
- }
-
-
-
- if ( $send<>'' ) { //判断是否是知识库设置字段
- $userinfo= getuser($uniacid,$fromUsername,$nickname); //???
- 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']);
- // logger('要替换的文本:'.$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);
- $zt=json_decode($aaa, true)['errcode'];
- if ($zt!=0){//下发未成功
- $data='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 系统忙 错误代码: ' . $zt . ' " } }';
- // $aaa = http_post_data($url, $data);
- //当错误代码是40007的时候 重新上传素材.
- if($zt==40007){
- if ($send['msgtype']=='image'){
- $imagefile= $send['image']['media_id'] ;
- }
- if ($send['msgtype']=='miniprogrampage'){
- // miniprogrampage
- $imagefile= $send['miniprogrampage']['thumb_media_id'];
- }
- // logger($send);
- $add="temp/".$imagefile.".png";//保存图片时的id
- logger($add);
- if (file_exists($add)){//当是图片时 转换成微信图片
- logger('图片存在.'.$MediaId);
- $udata= json_decode(uploadFile($add,'image',$Atoken),true) ;
- logger('0000:'.$udata);
- $MediaId = $udata['media_id'];
-
-
- if ($send['msgtype']=='image'){
- $send['image']['media_id']=$MediaId;
- }
- if ($send['msgtype']=='miniprogrampage'){
- // miniprogrampage
- $send['miniprogrampage']['thumb_media_id']=$MediaId;
- }
-
- rename($add,"temp/".$MediaId.".png");
- $data=json_encode($send,JSON_UNESCAPED_UNICODE);
- $aaa = http_post_data($url, $data);
-
- }else{
- logger('图片不存在.' );
- $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)//是新用户 查编号 写入队列.
- {
- $userinfo= getusernew($uniacid,$fromUsername,$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'.$userinfo['nickname'].' 备注:['.$userinfo['beizhu'].'] :'.$keyword.'\n '.$hui.$sqstr.'" } }';
- $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.$sqstr.' " } }'; //当没有约定好的回复时,这么回复。
-
- $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 再次获取.
- unlink('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 再次获取.
- unlink('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.$sqstr.' " } }'; //当没有约定好的回复时,这么回复。
- $aaa = http_post_data($urlbak, $data); //
- logger('下发:'.$data.$aaa);
-
- //通知到公共号
- exit;
- }
-
-
-
- }else{//处理管理员发来的消息
- //备注客户
- if (substr($keyword,0,6)=='备注'){ //命令 备注12:大灰狼
- //取openid hiuser
- $stri=0;
- $stri= stripos($keyword,':');
- if ($stri==0){$stri= stripos($keyword,' ') ;}
- if ($stri==0){$stri= stripos($keyword,':') ;}
- $nid=substr($keyword,6,$stri-6); //@12:=>12
- $bzname=trim(substr($keyword,$stri+1));//发送的内容:
- logger($uniacid.'-'.$nid.'-'.$bzname);
- $bzjg= edituserid(trim($uniacid),trim($nid),trim($bzname),$website);
-
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":" 会员'.$nid.'_ '.$bzjg.' " } }';
- $aaa = http_post_data($url, $data1); //减少骚扰 不通知
- exit;
-
- }
-
- //测试下发图片
- 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/logo.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));//发送的内容:
- if($say==''){$say='有人@你 ,客服上线了,邀请你进入会话.';}
- //判断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='送达';
- //对方正在输入...哈哈
- $data8='{ "touser":"'.trim($liuuser['openid']).'", "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{ $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');//删掉一个
- //2.15 获取自定义下一个
- // $data=$arr['联系电话'];
- $a= edituser($uniacid,$delid['openid'],'',$website);
- logger('更新时间:'.$uniacid.$delid['openid'].$a);
- //删掉时 更新time ;
- // $send['touser']=trim($delid);
- // $data=json_encode($send,JSON_UNESCAPED_UNICODE);//
- //结束语 查询是不是 send/
- if(is_numeric($arr['结束语'])){
-
- $send=$keys[$numkeys[$arr['结束语']]];
-
- if ($send['link']['title']!=''){
- $send['link']['title']=str_replace('id',$delid['id'],$send['link']['title']);
- $send['link']['title']=str_replace('[name]', trim($delid['nickname']),$send['link']['title']);
- }
- if ($send['miniprogrampage']['title']!=''){
- $send['miniprogrampage']['title']=str_replace('id',$delid['id'],$send['miniprogrampage']['title']);
- $send['miniprogrampage']['title']=str_replace('[name]', trim($delid['nickname']),$send['miniprogrampage']['title']);
- }
- if ($send['text']['content']!=''){
- $send['text']['content']=str_replace('[id]',$delid['id'],$send['text']['content']);
- $send['text']['content']=str_replace('[name]',trim($delid['nickname']),$send['text']['content']);
- // logger('要替换的文本:'.$send['text']['content']);
- $send['text']['content']=changeurl($send['text']['content']);
- }
-
-
-
-
-
- $send['touser']=trim($delid['openid']);
- $data0=json_encode($send,JSON_UNESCAPED_UNICODE);
- }
- else {
- $sends=$arr['结束语']; //$keys['关于我们'];
- $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
- $jieshuyu=changeurl($jieshuyu);
- $data0='{ "touser":"'.trim($delid['openid']).'", "msgtype":"text",
- "text": { "content":" '.$jieshuyu.' " } }';
- }
-
-
- // logger($data0);
- $aaa = http_post_data($url, $data0);
- $nowid=dujson('json/'.$toUsername.'_now.json');
- $nowopenid=json_decode($nowid, true);
- $data2='{ "touser":"'.trim($nowopenid['openid']).'", "msgtype":"text",
- "text": { "content":"'.$nowopenid['nickname'].', 你好,久等了,有什么可以帮你的吗? " } }';
- $aaa = http_post_data($url, $data2);
- //对方正在输入...哈哈
- $data8='{ "touser":"'.trim($nowopenid['openid']).'", "command":"Typing"}';
- $url8='https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token='.$Atoken;
- $bbb = http_post_data($url8, $data8);
- logger($bbb);
- //结束输入判断.
-
- // $fromUsername= $myopenid;
- If (substr(trim($nowopenid['openid']),0,1)=='o'){
- //$userinfo= getuser($uniacid,$nowid,$nickname);
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"新用户'.$nowopenid['nickname'].'接入,准备接待.\n排队人数:'.count(file('json/'.$toUsername.'_now.json')).' " } }';
- // $bbb = http_post_data($url, $data1);
- }else{
- $data1='{ "touser":"'.$myopenid.'", "msgtype":"text",
- "text": { "content":"已经接待完毕,没有用户排队了. " } }';
-
- }
- // 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.' " } }';
- unlink('json/'.$toUsername.'_lishi.json');
- break;
-
-
- case '清零'://清除文件 继续..
- unlink('json/'.$toUsername.'_now.json');
- unlink('json/'.$toUsername.'_token.json');
- unlink('log.xml');
- if (!file_exists('json/'.$toUsername.'_now.json')){
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 排队人数清零成功! " } }';
- }
- else{
- $data1='{ "touser":"'.$fromUsername.'", "msgtype":"text",
- "text": { "content":" 清零失败,请检查目录addons/qidong_app/json/权限. " } }';
- }
- 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 . ' " } }';
- }
-
-
-
-
- }//case 结束
-
-
-
-
- $bbb = http_post_data($url, $data1);
-
- }//消息处理结束
- }//qita 结束.
-
-
-
-
-
- }//字符串结束
-
- }//text 类型结束
- $aaa = http_post_data($url, $data);
- //给管理员推送:
-
-
- }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 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 edituserid($ucid,$id,$nickname,$website) //改名取号
- {
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=EdituserID&m=qidong_app&id=".$id."&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'],
- 'beizhu'=> $result['data']['wxapp'][0]['zhuangtai'],
- '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 Finduser($ucid,$tablename,$culname,$openid,$findname,$website){
- //&tablename=dc_user&culname=openid&findname=name&openid=ogMce0dAqzqm3LSCIBzoHb4XYgFU
- $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=finduser&m=qidong_app&tablename={$tablename}&culname={$culname}&findname={$findname}&openid={$openid}";
- // logger( $token_access_url);
- $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
- logger('--------------'.$res);
- $result = json_decode($res, true); //接受一个 JSON 格式的字符串并且把它转换为 PHP
- $data=$result['data']['nickname'] ;
-
- 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'];
- $beizhu= $result['data']['wxapp'][0]['zhuangtai'];
- if (trim($nickname)==null) {
- $nickname='会员'.$result['data']['wxapp'][0]['id'];
- $isid=1;
- }
- $userid=$result['data']['wxapp'][0]['id'];
- }else
- {
- $beizhu= $userinfos[$openid]['zhuangtai'];
- 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,
- 'beizhu' => $beizhu,
- '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;
- }
-
- }
-
- ?>
|