dyjh пре 6 година
комит
c4f551f6f7
100 измењених фајлова са 26493 додато и 0 уклоњено
  1. 1 0
      34f139579ee48ace00956e68f9a454a2.php
  2. BIN
      Thumbs.db
  3. 0 0
      WeUI_files/example.css
  4. 251 0
      WeUI_files/example.js
  5. BIN
      WeUI_files/icon_footer.png
  6. BIN
      WeUI_files/icon_nav_feedback.png
  7. BIN
      WeUI_files/icon_nav_form.png
  8. BIN
      WeUI_files/icon_nav_layout.png
  9. BIN
      WeUI_files/icon_nav_nav.png
  10. BIN
      WeUI_files/icon_nav_search.png
  11. BIN
      WeUI_files/icon_nav_z-index.png
  12. 0 0
      WeUI_files/jweixin-1.0.0.js
  13. BIN
      WeUI_files/logo.png
  14. 0 0
      WeUI_files/sample.css
  15. 28 0
      WeUI_files/weui.css
  16. 5 0
      WeUI_files/weui.min.js
  17. 0 0
      WeUI_files/zepto.min.js
  18. 14 0
      atest.php
  19. 1 0
      developer.cer
  20. 1 0
      dingdan.php
  21. 564 0
      func.php
  22. BIN
      help.png
  23. BIN
      icon.jpg
  24. BIN
      icon.png
  25. 18 0
      intenet.php
  26. 19 0
      intenet2.php
  27. 43 0
      jsonX/WxPayDataD.php
  28. 1395 0
      kefu.php
  29. 1334 0
      kefu_a.php
  30. 1441 0
      kefu_b.php
  31. 0 0
      kefu_bak.php
  32. 1340 0
      kefu_c.php
  33. 961 0
      kefu_c_bak.php
  34. 964 0
      kefu_d.php
  35. 1334 0
      kefu_x.php
  36. 32 0
      kefutest.php
  37. 6280 0
      log.xml
  38. 9 0
      log1.xml
  39. BIN
      logo.png
  40. 403 0
      manifest.xml
  41. 1 0
      map.json
  42. 14 0
      module.php
  43. 1260 0
      open.php
  44. BIN
      pay.png
  45. 40 0
      phoneapp.php
  46. 4 0
      php/ReadMe.txt
  47. 2 0
      php/VERSION
  48. 43 0
      php/WxPayDataD.php
  49. 40 0
      php/demo.php
  50. 35 0
      php/errorCode.php
  51. 3312 0
      php/phpqrcode.php
  52. 167 0
      php/pkcs7Encoder.php
  53. 36 0
      php/sha1.php
  54. 150 0
      php/wxBizMsgCrypt.php
  55. 54 0
      php/xmlparse.php
  56. 39 0
      pingjia.php
  57. 43 0
      pingjia_files/WxPayDataD.php
  58. 316 0
      pingjia_files/evaluate.css
  59. 332 0
      pingjia_files/evaluate.js
  60. 0 0
      pingjia_files/zepto.min.old.js
  61. 229 0
      project.php
  62. 236 0
      project2.php
  63. 40 0
      qrcode_1.php
  64. 165 0
      qunfa.php
  65. 261 0
      redirect_url.php
  66. 164 0
      shouquan.php
  67. 1 0
      shouquan33.php
  68. 1 0
      site.php
  69. 2 0
      siteinfo.js
  70. 301 0
      sq.php
  71. 66 0
      sq1.php
  72. 285 0
      sq_kefu.php
  73. 148 0
      sq_test.php
  74. BIN
      static/Thumbs.db
  75. 316 0
      static/evaluate.css
  76. 332 0
      static/evaluate.js
  77. 297 0
      static/example.js
  78. BIN
      static/images/Thumbs.db
  79. BIN
      static/images/icon_nav_feedback.png
  80. BIN
      static/images/icon_nav_form.png
  81. BIN
      static/images/icon_nav_layout.png
  82. BIN
      static/images/icon_nav_nav.png
  83. BIN
      static/images/icon_nav_search.png
  84. BIN
      static/images/icon_nav_z-index.png
  85. BIN
      static/images/logo.png
  86. 0 0
      static/jweixin-1.0.0.js
  87. BIN
      static/logo.png
  88. 0 0
      static/sample.css
  89. 729 0
      static/weui.css
  90. 5 0
      static/weui.min.js
  91. 0 0
      static/zepto.min.js
  92. 0 0
      static/zepto.min.old.js
  93. BIN
      temp/1pay.png
  94. BIN
      temp/Thumbs.db
  95. 0 0
      temp/base3b5429.css
  96. BIN
      temp/logo.png
  97. BIN
      temp/logo.psd
  98. BIN
      temp/ovkEB1Rspavy_VfHqA0uyUyi46yA.png
  99. 0 0
      temp/temp.txt
  100. 589 0
      template/defaultset.html

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
34f139579ee48ace00956e68f9a454a2.php



Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
WeUI_files/example.css


+ 251 - 0
WeUI_files/example.js

xqd
@@ -0,0 +1,251 @@
+/**
+ * Created by jf on 2015/9/11.
+ * Modified by bear on 2016/9/7.
+ */
+$(function () {
+    var pageManager = {
+        $container: $('#container'),
+        _pageStack: [],
+        _configs: [],
+        _pageAppend: function(){},
+        _defaultPage: null,
+        _pageIndex: 1,
+        setDefault: function (defaultPage) {
+            this._defaultPage = this._find('name', defaultPage);
+            return this;
+        },
+        setPageAppend: function (pageAppend) {
+            this._pageAppend = pageAppend;
+            return this;
+        },
+        init: function () {
+            var self = this;
+
+            $(window).on('hashchange', function () {
+                var state = history.state || {};
+                var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+                var page = self._find('url', url) || self._defaultPage;
+                if (state._pageIndex <= self._pageIndex || self._findInStack(url)) {
+                    self._back(page);
+                } else {
+                    self._go(page);
+                }
+            });
+
+            if (history.state && history.state._pageIndex) {
+                this._pageIndex = history.state._pageIndex;
+            }
+
+            this._pageIndex--;
+
+            var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+            var page = self._find('url', url) || self._defaultPage;
+            this._go(page);
+            return this;
+        },
+        push: function (config) {
+            this._configs.push(config);
+            return this;
+        },
+        go: function (to) {
+            var config = this._find('name', to);
+            if (!config) {
+                return;
+            }
+            location.hash = config.url;
+        },
+        _go: function (config) {
+            this._pageIndex ++;
+
+            history.replaceState && history.replaceState({_pageIndex: this._pageIndex}, '', location.href);
+
+            var html = $(config.template).html();
+            var $html = $(html).addClass('slideIn').addClass(config.name);
+            $html.on('animationend webkitAnimationEnd', function(){
+                $html.removeClass('slideIn').addClass('js_show');
+            });
+            this.$container.append($html);
+            this._pageAppend.call(this, $html);
+            this._pageStack.push({
+                config: config,
+                dom: $html
+            });
+
+            if (!config.isBind) {
+                this._bind(config);
+            }
+
+            return this;
+        },
+        back: function () {
+            history.back();
+        },
+        _back: function (config) {
+            this._pageIndex --;
+
+            var stack = this._pageStack.pop();
+            if (!stack) {
+                return;
+            }
+
+            var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+            var found = this._findInStack(url);
+            if (!found) {
+                var html = $(config.template).html();
+                var $html = $(html).addClass('js_show').addClass(config.name);
+                $html.insertBefore(stack.dom);
+
+                if (!config.isBind) {
+                    this._bind(config);
+                }
+
+                this._pageStack.push({
+                    config: config,
+                    dom: $html
+                });
+            }
+
+            stack.dom.addClass('slideOut').on('animationend webkitAnimationEnd', function () {
+                stack.dom.remove();
+            });
+
+            return this;
+        },
+        _findInStack: function (url) {
+            var found = null;
+            for(var i = 0, len = this._pageStack.length; i < len; i++){
+                var stack = this._pageStack[i];
+                if (stack.config.url === url) {
+                    found = stack;
+                    break;
+                }
+            }
+            return found;
+        },
+        _find: function (key, value) {
+            var page = null;
+            for (var i = 0, len = this._configs.length; i < len; i++) {
+                if (this._configs[i][key] === value) {
+                    page = this._configs[i];
+                    break;
+                }
+            }
+            return page;
+        },
+        _bind: function (page) {
+            var events = page.events || {};
+            for (var t in events) {
+                for (var type in events[t]) {
+                    this.$container.on(type, t, events[t][type]);
+                }
+            }
+            page.isBind = true;
+        }
+    };
+
+    function fastClick(){
+        var supportTouch = function(){
+            try {
+                document.createEvent("TouchEvent");
+                return true;
+            } catch (e) {
+                return false;
+            }
+        }();
+        var _old$On = $.fn.on;
+
+        $.fn.on = function(){
+            if(/click/.test(arguments[0]) && typeof arguments[1] == 'function' && supportTouch){ // 只扩展支持touch的当前元素的click事件
+                var touchStartY, callback = arguments[1];
+                _old$On.apply(this, ['touchstart', function(e){
+                    touchStartY = e.changedTouches[0].clientY;
+                }]);
+                _old$On.apply(this, ['touchend', function(e){
+                    if (Math.abs(e.changedTouches[0].clientY - touchStartY) > 10) return;
+
+                    e.preventDefault();
+                    callback.apply(this, [e]);
+                }]);
+            }else{
+                _old$On.apply(this, arguments);
+            }
+            return this;
+        };
+    }
+    function preload(){
+        $(window).on("load", function(){
+            var imgList = [
+                "./images/layers/content.png",
+                "./images/layers/navigation.png",
+                "./images/layers/popout.png",
+                "./images/layers/transparent.gif"
+            ];
+            for (var i = 0, len = imgList.length; i < len; ++i) {
+                new Image().src = imgList[i];
+            }
+        });
+    }
+    function androidInputBugFix(){
+        // .container 设置了 overflow 属性, 导致 Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
+        // 相关 issue: https://github.com/weui/weui/issues/15
+        // 解决方法:
+        // 0. .container 去掉 overflow 属性, 但此 demo 下会引发别的问题
+        // 1. 参考 http://stackoverflow.com/questions/23757345/android-does-not-correctly-scroll-on-input-focus-if-not-body-element
+        //    Android 手机下, input 或 textarea 元素聚焦时, 主动滚一把
+        if (/Android/gi.test(navigator.userAgent)) {
+            window.addEventListener('resize', function () {
+                if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
+                    window.setTimeout(function () {
+                        document.activeElement.scrollIntoViewIfNeeded();
+                    }, 0);
+                }
+            })
+        }
+    }
+  
+    function setPageManager(){
+        var pages = {}, tpls = $('script[type="text/html"]');
+        var winH = $(window).height();
+
+        for (var i = 0, len = tpls.length; i < len; ++i) {
+            var tpl = tpls[i], name = tpl.id.replace(/tpl_/, '');
+            pages[name] = {
+                name: name,
+                url: '#' + name,
+                template: '#' + tpl.id
+            };
+        }
+        pages.home.url = '#';
+
+        for (var page in pages) {
+            pageManager.push(pages[page]);
+        }
+        pageManager
+            .setPageAppend(function($html){
+                var $foot = $html.find('.page__ft');
+                if($foot.length < 1) return;
+
+                if($foot.position().top + $foot.height() < winH){
+                    $foot.addClass('j_bottom');
+                }else{
+                    $foot.removeClass('j_bottom');
+                }
+            })
+            .setDefault('home')
+            .init();
+    }
+
+    function init(){
+        preload();
+        fastClick();
+        androidInputBugFix();
+       
+        setPageManager();
+
+        window.pageManager = pageManager;
+        window.home = function(){
+            location.hash = '';
+        };
+    }
+    init();
+});

BIN
WeUI_files/icon_footer.png


BIN
WeUI_files/icon_nav_feedback.png


BIN
WeUI_files/icon_nav_form.png


BIN
WeUI_files/icon_nav_layout.png


BIN
WeUI_files/icon_nav_nav.png


BIN
WeUI_files/icon_nav_search.png


BIN
WeUI_files/icon_nav_z-index.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
WeUI_files/jweixin-1.0.0.js


BIN
WeUI_files/logo.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
WeUI_files/sample.css


Разлика између датотеке није приказан због своје велике величине
+ 28 - 0
WeUI_files/weui.css


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
WeUI_files/weui.min.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
WeUI_files/zepto.min.js


+ 14 - 0
atest.php

xqd
@@ -0,0 +1,14 @@
+<?php
+ $count=$_GET["count"];
+ $count=$count%7;
+  switch($count){
+    case 1: $message = "11111111111111111";break;
+    case 2: $message = "22222222222222222";break;
+    case 3: $message = "33333333333333333";break;
+    case 4: $message = "44444444444444444";break;
+    case 5: $message = "55555555555555555";break;
+    case 6: $message = "66666666666666666";break;
+  }    
+  $res = $message;
+  echo date("Y-m-d H:i:s")."<hr>"."现在的内容是:".$res;
+ ?>

+ 1 - 0
developer.cer

xqd
@@ -0,0 +1 @@
+A268B91C7C99B0A9388910DCA2709B35GZAV5K1YHW1K1R5A6X

+ 1 - 0
dingdan.php

xqd
@@ -0,0 +1 @@
+{"fee":"0.01","ordertid":<?php echo time();?>}

+ 564 - 0
func.php

xqd
@@ -0,0 +1,564 @@
+<?php 
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "    }  }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	//	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+function zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			exec("rm -f ".'json/'.$toUsername.'_lishi.json');
+			break;
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    exec("rm -f ".'json/'.$toUsername.'_paidui.json');
+			exec("rm -f ".'json/'.$toUsername.'_token.json');
+			exec("rm -f ".'log.xml');
+			if (!file_exists('json/'.$toUsername.'_token.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+				// sendmsg($kehuopenid,'text',$jsy,'',$url);//说再见.
+				// $a=edituser($uniacid,$delid['openid'],'',$website);
+				//$lastliao='';//最后聊天客服.
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					//print_r($nextkh);
+					//echo '<hr>';
+					
+					 
+					//print_r('nextkhoid:'.$nextkh['openid']);
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+	
+	   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 ;
+  }
+ 
+?>




+ 18 - 0
intenet.php

xqd
@@ -0,0 +1,18 @@
+ 
+<?php
+//scope=snsapi_userinfo实例
+$appid=$_GET["appid"];
+$zfopenid = $_GET["zfopenid"];
+$kfopenid = $_GET["kfopenid"];
+$toUsername = $_GET["toUsername"];
+$json = file_get_contents('json/'.$toUsername.'.json');
+ //echo $json;
+ $arr = json_decode($json,true);
+ $website=$arr['website'];
+$kfname = $_GET["kfname"];
+$redirect_uri = urlencode ("$website/addons/qidong_app/project.php?zfopenid=$zfopenid&toUsername=$toUsername&kfopenid=$kfopenid&kfname=$kfname" );
+//echo $redirect_uri;
+//exit;
+$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1#wechat_redirect";
+header("Location:".$url);
+?>

+ 19 - 0
intenet2.php

xqd
@@ -0,0 +1,19 @@
+ 
+<?php
+//scope=snsapi_userinfo实例
+$appid=$_GET["appid"];
+$zfopenid = $_GET["zfopenid"];
+$kfopenid = $_GET["kfopenid"];
+$toUsername = $_GET["toUsername"];
+$json = file_get_contents('json/'.$toUsername.'.json');
+ //echo $json;
+ $arr = json_decode($json,true);
+ $website=$arr['website'];
+$kfname = $_GET["kfname"];
+$redirect_uri = urlencode ("$website/addons/qidong_app/project2.php?zfopenid=$zfopenid&toUsername=$toUsername&kfopenid=$kfopenid&kfname=$kfname" );
+//echo $redirect_uri;
+//exit;
+$url ="https://open.weixin.qq.com/connect/oauth2/authorize?appid=$appid&redirect_uri=$redirect_uri&response_type=code&scope=snsapi_userinfo&state=1&component_appid=wx87202cc559004852#wechat_redirect";
+//     https://open.weixin.qq.com/connect/oauth2/authorize?appid=wxfd603c1640faf7c5&redirect_uri=http://web.woshangtong.com&response_type=code&scope=snsapi_userinfo&state=1&component_appid=wx87202cc559004852id&connect_redirect=1#wechat_redirect
+header("Location:".$url);
+?>

+ 43 - 0
jsonX/WxPayDataD.php

xqd
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
+<title>阿莫源码社区www.</title>
+</head>
+
+<body>
+
+
+#########   本源码由——————  【阿莫源码论坛阿莫】  ——————发布   #########
+
+// +----------------------------------------------------------------------
+// | Program Name: 欢迎加入阿莫源码论坛互相学习和分享
+// +----------------------------------------------------------------------
+// | Publisher:    阿莫——阿莫
+// +----------------------------------------------------------------------
+// | Developer:    阿莫源码论坛
+// +----------------------------------------------------------------------
+
+ * 加入阿莫源码网 免费下载本站所有资源! 
+
+ * 感谢支持!您的支持是我们最大的动力!
+
+ * 您下载的本源码来自阿莫源码论坛:www.
+
+ * 欢迎大家来访获得最新更新的优秀资源!更多VIP特色资源不容错过!!
+
+ * 永久域名:http://www./     
+
+
+##############################################################################
+
+━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━
+免责声明:
+   根据二○一三年一月三十日《计算机软件保护条例》2次修订第17条规定:
+  为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存
+  储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!
+  鉴于此,也希望大家按此说明研究软件!
+
+本站所有源码都来源于网络收集修改或者交换!如果侵犯了您的权益,请及时告知我们,我们即刻处理!
+</body>
+</html>

+ 1395 - 0
kefu.php

xqd
@@ -0,0 +1,1395 @@
+<?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;  
+        }  
+  
+    }  
+
+
+
+
+
+	
+
+?>  

+ 1334 - 0
kefu_a.php

xqd
@@ -0,0 +1,1334 @@
+<?php
+ //echo checkSignature;
+ 
+ /* 本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+//这是多客服---小程序接口 .
+ 
+     
+    CopyRight 2017 www.17cheng.cn  All Rights Reserved
+*/
+header('Content-type:text/json');
+
+$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().$postStr);
+	   $xcx=true;//true 是小程序 
+        if (!empty($postStr)){
+			//$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			if($xcx){
+				$postObj =json_decode($postStr);}
+				else{
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			}
+			
+ 			$fromUsername	 = trim($postObj->FromUserName);  //openid
+			$toUsername  	 = trim($postObj->ToUserName);
+			$tousernamebak	 = $toUsername;
+			$keyword 		 = trim($postObj->Content);
+			$sessionFrom	 = trim($postObj->SessionFrom);
+			$sessionFrom.='|';
+			$MsgType = $postObj->MsgType;//消息类型 text event
+			$Event   = $postObj->Event;
+			if ($Event == "CLICK") {
+			    $EventKey   = $postObj->EventKey;
+			    $MsgType='text';
+			    $keyword=trim($EventKey);//修复公众号问题.
+				logger('event:'.$Event.$MsgType.'key:'.$keyword);
+			
+			}
+			$json 			 = file_get_contents('json/'.$toUsername.'.json');
+			$arr 			 = json_decode($json,true);
+			$uniacid		 = $arr['uniacid'];
+			
+				$mang=	$arr['mang'];
+				if(empty($mang)){$mang='客服忙,已存入留言板';}
+				$paiduile=	$arr['paidui'];
+				if(empty($paiduile)){$paiduile='排队中,请稍候.';}
+				$kaishi=	$arr['kaishi'];
+				if(empty($kaishi)){$kaishi='你好,有什么可以帮到你的?';}
+				
+				
+			//echo $uniacid;
+			$website		 = $arr['website'];
+			define("APPID", $arr['APPID']);
+			define("APPSECRET", $arr['APPSECRET']);	
+			$fromuserid 	 = $fromUsername;//
+			$myopenid		 = trim($arr['openids']);//管理员id
+			$Atoken			 = getToken(APPID,APPSECRET,$toUsername); 
+			$url  			 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+			  if ($keyword=='openid'){
+			 	sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+				exit;
+			}
+	//echo $Atoken	;
+			$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+			$kefuarr 		 = json_decode($json,true);	//客服列表
+////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+		 
+		if($event=='VIEW'){exit;}
+		if($event=='LOCATION'){exit;}
+	    if(array_key_exists($fromuserid,$kefuarr)){  
+			logger($MsgType.'是客服.');
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 
+			if (substr($kehuopenid,0,1)=='o'){
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			  
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话','',$url);//给用户发消息.
+					exit;
+					 
+					
+				}else
+				{// 踢出超时的 .
+				 	chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+				}
+			
+		         
+			   if($xcx){
+				     if ($sessionFrom<>'|'){
+				     $nickname=explode("|",$sessionFrom,-1)[0]   ; 
+					 if ($nickname=="wxapp"){$nickname="";}
+					  }
+				    
+					
+				    logger('findname:'. $nickname);
+					
+				   $tablename=trim($arr['tablename']);//管理员id
+						if ($tablename<>''){
+						$culname=$arr['culname'];
+						$findname=$arr['findname'];
+						$nickname= Finduser($uniacid,$tablename,$culname,$fromUsername,$findname,$website);
+				  
+						if(!$nickname)
+						{
+							$nickname  ='';
+						}
+							
+						}
+				   
+				   $userinfo	=  getuser($uniacid,$fromUsername,$nickname,$website);
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $userinfo	=  getuser($uniacid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+					
+			  //  
+				
+				
+             //  下一次增加在线客服提示 这里不提示先 .等下一版本.
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+					$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+					$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				//logger('是客户:.'.$fromUsername);
+				// if($event=='unsubscribe'){ $eve='取消关注'; exit; };//公众号专用
+				//logger($fromuserid.'-'.$arr['默认'].$uniacid.$url);
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr;//[屏蔽一下 下一版发布.]
+				
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	           $paiduiarr = json_decode($json,true);
+		        $qianmian=count($paiduiarr);
+				$zxkefu.="\n前面有".$qianmian."人排队";
+				zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    
+				$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'].'  "    }  }';
+					 $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				//	 logger($data1.$aaa);
+				 }
+				 
+ 
+					exit;
+		} 
+
+			
+			
+			
+			
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+	
+ 
+
+	//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+				$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
+			
+				if (is_numeric($nid)){
+					  atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+				}else{
+						$say=trim(substr($keyword,$stri+1));//发送的内容:
+						$kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+						$tokefuopenid=array_search($nid,$kefulist,true);//找到客服id
+						if(!empty($tokefuopenid)){
+							$kefuname = $kefulist[$fromuserid];		
+							sendmsg($tokefuopenid,'text',"[同事消息]\n".$kefuname.':'.$say,'',$url);//给用户发消息.		
+
+						}else{
+							
+							sendmsg($fromuserid,'text','消息格式错误','',$url);//给用户发消息.		
+						}
+					
+				}
+			  
+
+		    
+			exit;
+	      }
+		  
+		   if(substr($keyword,0,1)=='*'){//@转接
+			  $kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+			  $kefu = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefu.json"),true);	
+	           
+			  $tokefuname=substr($keyword,1);//李律师
+			  $tokefuopenid=array_search($tokefuname,$kefulist,true);//找到客服id
+				if(!empty($tokefuopenid)){
+					$kefuname = $kefulist[$fromuserid];//当前客服名
+					$kehuopenid = $kefu[$fromuserid];//当前客户openid
+					if(substr($kefu[$tokefuopenid],0,1)=="o"){
+						sendmsg($fromuserid,'text',$tokefuname.'正忙.','',$url);//给用户发消息.		
+					}else{
+						$kefu[$tokefuopenid]=$kehuopenid;
+						$kefu[$fromuserid]="空闲";
+				        $res=file_put_contents("../qidong_app/json/".$uniacid."_kefu.json",  json_encode($kefu));
+
+						sendmsg($tokefuopenid,'text',$kefuname.'转接来新客户,请接待.','',$url);//给用户发消息.	
+						
+						sendmsg($fromuserid,'text',$tokefuname.'转接'.$kefuname.'成功.','',$url);//给用户发消息.	
+						
+					}
+					exit;
+				}
+				
+	      }
+		  
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					$a=Inserthistory($toUsername,$uniacid,$fromuserid,$kefuname,$kehuopenid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','消息失败,客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					//记录客户的消息 =@1
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					$a=Inserthistory($toUsername,$uniacid,$Kefuopenid,$kfname,$fromuserid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+					//记录时间 ---
+					  $json = file_get_contents("json/".$uniacid."_time.json");
+					  $kefutime = json_decode($json,true);
+					   $kefutime[$Kefuopenid]=time();
+					  $res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+					 
+					//记录时间结束
+					    if (json_decode($bbb, true)['errcode']<>0){
+							 logger('开始通知');
+			 if(!file_exists('json/'.$toUsername.'_lishi.json')){
+				  logger('开始通知1'.$arr['Mobanid']);
+								if($arr['Mobanid']<>''){//判断 如果是xcx 就直接推,如果不是 则用另外的.
+								
+								$template_id=$arr['Mobanid'];
+								 logger('开始通知2'.$template_id);
+									if($xcx){$jsonid=$arr['Gjsonid'];
+											$jopenid=$arr['Gopenids'];
+										     logger('开始通知21:'.$jopenid);
+											$MBtoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$arr['Gjsonid']);
+											}
+									else{
+											$jsonid=$ToUserName;
+											$MBtoken=$Atoken;
+											$jopenid=$Kefuopenid;}
+								 logger('MBtoken:'.$MBtoken);
+									if($MBtoken<>''){
+							 
+												 $data='{
+	   "first": {
+                       "value":"你好,应用编号:'.$uniacid.'有用户咨询,请尽快处理",
+                       "color":"#FF8247"
+                   },
+		"keyword1": {
+                       "value":"客户信息:'.$nickname.'",
+                       "color":"#173177"
+                   },
+		"keyword2": {
+                       "value":"用户发送:'.$keyword.'",
+                       "color":"#173177"
+                   },
+			"remark": {
+                       "value":"应用客服消息内回复:看留言 查看",
+                       "color":"#173177"
+                   }
+  }';                                    logger('jopenid:'.$jopenid);
+										$bbb=sendMBmsg($MBtoken,$jopenid,$template_id,'','','',$data);
+										logger($bbb);
+										$tongzhi=json_decode($bbb,true)['errcode'];
+										if ($tongzhi==0){$tongzhi='已通知到管理员,请稍等.';}
+										// logger($tongzhi);
+									}
+								}
+							}
+							
+							
+							
+							
+			         		sendmsg($fromUsername,'text',$mang,'',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//不是客服 那就是用户 
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						
+						if(zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+							exit;
+						}
+						
+						
+						
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						$users=getuser($uniacid,$fromuserid,$nickname,$website);
+ 		
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':'.$kaishi,'',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									$daohang=daohang($uniacid);
+									$daohang="\n先看看下面能不能帮到你,可直接回复数字\n".$daohang;
+									 if ($arr["其他"]=='人工+机器人'){
+									$daohang="\n智能客服:".jiqiren($keyword,$fromuserid);
+									 }
+									sendmsg($fromuserid,'text',$paiduile.$daohang,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword."  \n排队:".$paidui;
+									}else{
+										
+									 chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+	
+			
+	 
+        }else{///////////////////////////////////////////////////////////////
+            echo "";
+            exit;
+        }
+    }
+}
+
+    
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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['news']['articles'][0]['title']!=''){	
+					//	$send['news']['articles'][0]['title']=str_replace('id',$userinfo['id'],$send['news']['articles'][0]['title']);
+					$str=json_encode($send['news']['articles']);
+					$str=str_replace('[name]', trim($userinfo['nickname']),$str);
+   					$send['news']['articles']=json_decode($str,true);
+			  		
+					}
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "  }     }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			case 'link':
+			  	$baogao=' {
+							"title": " '.$postObj->Title.'",
+							"description": "'.$postObj->Description.'",
+							"url":  "'.$postObj->Url.'",
+							"thumb_url": "http://'.$_SERVER['HTTP_HOST'].'/addons/qidong_app/icon.jpg"
+						}';
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+	       break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	 	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+	    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 zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			unlink('json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			unlink('json/'.$toUsername.'_lishi.json');
+		 
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    unlink('json/'.$toUsername.'_paidui.json');
+			unlink('json/'.$toUsername.'_token.json');
+			unlink('log.xml');
+			if (!file_exists('json/'.$toUsername.'_paidui.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+		 
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					//$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					//$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 = "log1.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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 chaoshile($uniacid,$chaoshi,$website,$url,$fromuserid,$jsy){
+	//超时自动退出 读取时间表 读取客服表  判断时间  超过的 ->设置成空闲 .给用户发消息超时退出.
+		$json 		= file_get_contents('json/'.$uniacid.'_time.json');//读取key列表
+		$kefutime		= json_decode($json,true);
+		$json 		= file_get_contents('json/'.$uniacid.'_kefu.json');//读取数字key列表
+		$kefustr 	= json_decode($json,true);
+	    $arr		= array_keys($kefutime);//openid 
+	    $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);
+	    foreach ($arr as $arr){  
+			$kftime=$kefutime[$arr]+$chaoshi;
+			if (substr($kefustr[$arr],0,1)=="o"){ 
+			if ($kftime<time()){
+				//给老客户发信息 
+				    $kefutime[$arr]=time();//修改时间.
+                   	 jieshuyu($jsy,$uniacid,$kefustr[$arr],$website,$url);
+		           	
+					 $kefuname = $kefulist[$arr];
+			     	 edituser($uniacid,$kefustr[$arr],'',$website,$avartar,$zhuangtai,$kefuname);
+
+               //设置新标签 查找排队 
+				$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+				if ($paiduinumber==0){
+					$kefustr[$arr]='空闲';}
+					else{
+				      
+						$json 		= file_get_contents('json/'.$uniacid.'_paidui.json');//读取key列表
+						$paiduiarr		= json_decode($json,true);
+						$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+						if(substr($nextkh['openid'],0,1)=='o'){
+				 		sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+						$kefustr[$arr]=$nextkh['openid'];//保存新的用户进来.;
+						sendmsg($arr,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					//	$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+						}else{
+							$kefustr[$arr]='空闲';
+							
+						}	
+						$userjson=json_encode($paiduiarr);
+						$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					
+						
+				}
+			}//结束判断
+			}//结束判断o
+		}
+		$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefustr));
+			$res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+	
+}
+
+	function daohang($uniacid){
+			$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);
+		    $arr= array_keys($numkeys);
+							$i=0;
+							foreach ($arr as $arr) {
+							$daohang.=$arr.':'.changeurl($numkeys[$arr]) .'\n';
+							$i++;
+							if ($i>9){break;};
+							}  
+			return $daohang;
+		  
+		
+	}
+
+	function jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+	   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 Inserthistory($toUsername,$uniacid,$kfopenid,$kfname,$khopenid,$khname,$keyword,$postObj,$zhuangtai,$website){
+	  //&tablename=dc_user&culname=openid&findname=name&openid=ogMce0dAqzqm3LSCIBzoHb4XYgFU
+	   $type=$postObj->MsgType;
+	   if ($type=='image'){
+		   $keyword=$postObj->PicUrl;
+	   }
+	   if ($type=='voice'){
+		   $keyword=$postObj->Recognition;
+	   }
+	   $token_access_url = "{$website}/app/index.php?i=".$uniacid."&c=entry&a=wxapp&do=Inserthistory&m=qidong_app&uniacid={$uniacid}&type={$type}&toUsername={$toUsername}&kfopenid={$kfopenid}&kfname={$kfname}&khopenid={$khopenid}&khname={$khname}&keyword={$keyword}&zhuangtai={$zhuangtai}";
+      // logger( $token_access_url);
+	       $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
+	 
+    
+		//return  $data ;
+  }
+  
+   
+ function sendMBmsg($Atoken,$openid,$template_id,$url,$appid,$pagepath,$data){
+	//消息处理模块.
+	   	// $info = json_decode(file_get_contents("json/info_".$jsonid.".json"),true);//读取设置文件.
+		//$Atoken=$info['access_token'];
+					 
+ 				 
+	 	 $data1='   {
+           "touser":"'.$openid.'",
+           "template_id":"'.$template_id.'",
+           "url":"'.$url.'",  
+           "miniprogram":{
+             "appid":"'.$appid.'",
+             "pagepath":"'.$pagepath.'"
+           },          
+           "data": '.$data.'
+       }';
+		 
+	 //	 	echo $data1."<br>";
+		 
+		$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$Atoken";
+	 //	echo $url."<br>";
+	 	$aaa = http_post_data($url, $data1);
+	    
+	 //   print_r($aaa);
+		 
+		return $aaa;
+}
+
+function getReqSign($params /* 关联数组 */, $appkey /* 字符串*/)
+{
+    // 1. 字典升序排序
+    ksort($params);
+
+    // 2. 拼按URL键值对
+    $str = '';
+    foreach ($params as $key => $value)
+    {
+        if ($value !== '')
+        {
+            $str .= $key . '=' . urlencode($value) . '&';
+        }
+    }
+
+    // 3. 拼接app_key
+    $str .= 'app_key=' . $appkey;
+
+    // 4. MD5运算+转换大写,得到请求签名
+    $sign = strtoupper(md5($str));
+    return $sign;
+}
+// doHttpPost :执行POST请求,并取回响应结果
+// 参数说明
+//   - $url   :接口请求地址
+//   - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
+// 返回数据
+//   - 返回false表示失败,否则表示API成功返回的HTTP BODY部分
+function doHttpPost($url, $params)
+{
+    $curl = curl_init();
+
+    $response = false;
+    do
+    {
+        // 1. 设置HTTP URL (API地址)
+        curl_setopt($curl, CURLOPT_URL, $url);
+
+        // 2. 设置HTTP HEADER (表单POST)
+        $head = array(
+            'Content-Type: application/x-www-form-urlencoded'
+        );
+        curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
+
+        // 3. 设置HTTP BODY (URL键值对)
+        $body = http_build_query($params);
+        curl_setopt($curl, CURLOPT_POST, true);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
+
+        // 4. 调用API,获取响应结果
+        curl_setopt($curl, CURLOPT_HEADER, false);
+        curl_setopt($curl, CURLOPT_NOBODY, false);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        $response = curl_exec($curl);
+        if ($response === false)
+        {
+            $response = false;
+            break;
+        }
+
+        $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+        if ($code != 200)
+        {
+            $response = false;
+            break;
+        }
+    } while (0);
+
+    curl_close($curl);
+    return $response;
+}
+
+// 设置请求数据(应用密钥、接口请求参数)
+
+function jiqiren($keyword,$session){
+$appkey = 'l2FBbW8zsJvp3kQa';
+$params = array(
+    'app_id'     => '1106992438',
+    'time_stamp' => time(),
+    'nonce_str'  => '20e340'.rand(1000,9999),
+     'session'    => $session,
+    'question'   => $keyword,
+	'sign'       => ''
+);
+$params['sign'] = getReqSign($params, $appkey);
+
+// 执行API调用
+
+$url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat';
+$response = doHttpPost($url, $params);
+return json_decode($response,true)['data']['answer'];
+}
+ 
+?>  

+ 1441 - 0
kefu_b.php

xqd
@@ -0,0 +1,1441 @@
+<?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;  
+        }  
+  
+    }  
+
+
+
+ 
+ 
+	
+?>  

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
kefu_bak.php


+ 1340 - 0
kefu_c.php

xqd
@@ -0,0 +1,1340 @@
+<?php
+ //echo checkSignature;
+ 
+ /* 本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+//这是多客服---小程序接口 .
+ 
+     
+    CopyRight 2017 www.17cheng.cn  All Rights Reserved
+*/
+header('Content-type:text/json');
+
+$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().$postStr);
+	    $xcx=false;//true 是小程序 
+        if (!empty($postStr)){
+			//$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			if($xcx){
+				$postObj =json_decode($postStr);}
+				else{
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			}
+			
+ 			$fromUsername	 = trim($postObj->FromUserName);  //openid
+			$toUsername  	 = trim($postObj->ToUserName);
+			$tousernamebak	 = $toUsername;
+			$keyword 		 = trim($postObj->Content);
+			$sessionFrom	 = trim($postObj->SessionFrom);
+			$sessionFrom.='|';
+			$MsgType = $postObj->MsgType;//消息类型 text event
+			$Event   = $postObj->Event;
+			if ($Event == "CLICK") {
+			    $EventKey   = $postObj->EventKey;
+			    $MsgType='text';
+			    $keyword=trim($EventKey);//修复公众号问题.
+				logger('event:'.$Event.$MsgType.'key:'.$keyword);
+			
+			}
+			$json 			 = file_get_contents('json/'.$toUsername.'.json');
+			$arr 			 = json_decode($json,true);
+			$uniacid		 = $arr['uniacid'];
+			
+				$mang=	$arr['mang'];
+				if(empty($mang)){$mang='客服忙,已存入留言板';}
+				$paiduile=	$arr['paidui'];
+				if(empty($paiduile)){$paiduile='排队中,请稍候.';}
+				$kaishi=	$arr['kaishi'];
+				if(empty($kaishi)){$kaishi='你好,有什么可以帮到你的?';}
+				
+				
+			//echo $uniacid;
+			$website		 = $arr['website'];
+			define("APPID", $arr['APPID']);
+			define("APPSECRET", $arr['APPSECRET']);	
+			$fromuserid 	 = $fromUsername;//
+			$myopenid		 = trim($arr['openids']);//管理员id
+			$Atoken			 = getToken(APPID,APPSECRET,$toUsername); 
+			$url  			 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+			  if ($keyword=='openid'){
+			 	sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+				exit;
+			}
+	//echo $Atoken	;
+			$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+			$kefuarr 		 = json_decode($json,true);	//客服列表
+////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+		 
+		if($event=='VIEW'){exit;}
+		if($event=='LOCATION'){exit;}
+	    if(array_key_exists($fromuserid,$kefuarr)){  
+			logger($MsgType.'是客服.');
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 
+			if (substr($kehuopenid,0,1)=='o'){
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			  
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话','',$url);//给用户发消息.
+					exit;
+					 
+					
+				}else
+				{// 踢出超时的 .
+				 	chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+				}
+			
+		         
+			   if($xcx){
+				     if ($sessionFrom<>'|'){
+				     $nickname=explode("|",$sessionFrom,-1)[0]   ; 
+					 if ($nickname=="wxapp"){$nickname="";}
+					  }
+				    
+					
+				    logger('findname:'. $nickname);
+					
+				   $tablename=trim($arr['tablename']);//管理员id
+						if ($tablename<>''){
+						$culname=$arr['culname'];
+						$findname=$arr['findname'];
+						$nickname= Finduser($uniacid,$tablename,$culname,$fromUsername,$findname,$website);
+				  
+						if(!$nickname)
+						{
+							$nickname  ='';
+						}
+							
+						}
+				   
+				   $userinfo	=  getuser($uniacid,$fromUsername,$nickname,$website);
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $userinfo	=  getuser($uniacid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+					
+			  //  
+				
+				
+             //  下一次增加在线客服提示 这里不提示先 .等下一版本.
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+					$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+					$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				//logger('是客户:.'.$fromUsername);
+				// if($event=='unsubscribe'){ $eve='取消关注'; exit; };//公众号专用
+				//logger($fromuserid.'-'.$arr['默认'].$uniacid.$url);
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr;//[屏蔽一下 下一版发布.]
+				
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	           $paiduiarr = json_decode($json,true);
+		        $qianmian=count($paiduiarr);
+				$zxkefu.="\n前面有".$qianmian."人排队";
+				zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    
+				$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'].'  "    }  }';
+					 $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				//	 logger($data1.$aaa);
+				 }
+				 
+ 
+					exit;
+		} 
+
+			
+			
+			
+			
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+	
+ 
+
+	//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+				$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
+			
+				if (is_numeric($nid)){
+					  atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+				}else{
+						$say=trim(substr($keyword,$stri+1));//发送的内容:
+						$kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+						$tokefuopenid=array_search($nid,$kefulist,true);//找到客服id
+						if(!empty($tokefuopenid)){
+							$kefuname = $kefulist[$fromuserid];		
+							sendmsg($tokefuopenid,'text',"[同事消息]\n".$kefuname.':'.$say,'',$url);//给用户发消息.		
+
+						}else{
+							
+							sendmsg($fromuserid,'text','消息格式错误','',$url);//给用户发消息.		
+						}
+					
+				}
+			  
+
+		    
+			exit;
+	      }
+		  
+		   if(substr($keyword,0,1)=='*'){//@转接
+			  $kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+			  $kefu = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefu.json"),true);	
+	           
+			  $tokefuname=substr($keyword,1);//李律师
+			  $tokefuopenid=array_search($tokefuname,$kefulist,true);//找到客服id
+				if(!empty($tokefuopenid)){
+					$kefuname = $kefulist[$fromuserid];//当前客服名
+					$kehuopenid = $kefu[$fromuserid];//当前客户openid
+					if(substr($kefu[$tokefuopenid],0,1)=="o"){
+						sendmsg($fromuserid,'text',$tokefuname.'正忙.','',$url);//给用户发消息.		
+					}else{
+						$kefu[$tokefuopenid]=$kehuopenid;
+						$kefu[$fromuserid]="空闲";
+				        $res=file_put_contents("../qidong_app/json/".$uniacid."_kefu.json",  json_encode($kefu));
+
+						sendmsg($tokefuopenid,'text',$kefuname.'转接来新客户,请接待.','',$url);//给用户发消息.	
+						
+						sendmsg($fromuserid,'text',$tokefuname.'转接'.$kefuname.'成功.','',$url);//给用户发消息.	
+						
+					}
+					exit;
+				}
+				
+	      }
+		  
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					$a=Inserthistory($toUsername,$uniacid,$fromuserid,$kefuname,$kehuopenid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','消息失败,客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					//记录客户的消息 =@1
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					$a=Inserthistory($toUsername,$uniacid,$Kefuopenid,$kfname,$fromuserid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+					//记录时间 ---
+					  $json = file_get_contents("json/".$uniacid."_time.json");
+					  $kefutime = json_decode($json,true);
+					   $kefutime[$Kefuopenid]=time();
+					  $res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+					 
+					//记录时间结束
+					    if (json_decode($bbb, true)['errcode']<>0){
+							 logger('开始通知');
+			 if(!file_exists('json/'.$toUsername.'_lishi.json')){
+				  logger('开始通知1'.$arr['Mobanid']);
+								if($arr['Mobanid']<>''){//判断 如果是xcx 就直接推,如果不是 则用另外的.
+								
+								$template_id=$arr['Mobanid'];
+								 logger('开始通知2'.$template_id);
+									if($xcx){$jsonid=$arr['Gjsonid'];
+											$jopenid=$arr['Gopenids'];
+										     logger('开始通知21:'.$jopenid);
+											$MBtoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$arr['Gjsonid']);
+											}
+									else{
+											$jsonid=$ToUserName;
+											$MBtoken=$Atoken;
+											$jopenid=$Kefuopenid;}
+								 logger('MBtoken:'.$MBtoken);
+									if($MBtoken<>''){
+							 
+												 $data='{
+	   "first": {
+                       "value":"你好,应用编号:'.$uniacid.'有用户咨询,请尽快处理",
+                       "color":"#FF8247"
+                   },
+		"keyword1": {
+                       "value":"客户信息:'.$nickname.'",
+                       "color":"#173177"
+                   },
+		"keyword2": {
+                       "value":"用户发送:'.$keyword.'",
+                       "color":"#173177"
+                   },
+			"remark": {
+                       "value":"应用客服消息内回复:看留言 查看",
+                       "color":"#173177"
+                   }
+  }';                                    logger('jopenid:'.$jopenid);
+										$bbb=sendMBmsg($MBtoken,$jopenid,$template_id,'','','',$data);
+										logger($bbb);
+										$tongzhi=json_decode($bbb,true)['errcode'];
+										if ($tongzhi==0){$tongzhi='已通知到管理员,请稍等.';}
+										// logger($tongzhi);
+									}
+								}
+							}
+							
+							
+							
+							
+			         		sendmsg($fromUsername,'text',$mang,'',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//不是客服 那就是用户 
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						
+						if(zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+							exit;
+						}
+						
+						
+						
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						$users=getuser($uniacid,$fromuserid,$nickname,$website);
+						
+						
+						
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':'.$kaishi,'',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									$daohang=daohang($uniacid);
+									$daohang="\n先看看下面能不能帮到你,可直接回复数字\n".$daohang;
+									 if ($arr["其他"]=='人工+机器人'){
+									$daohang="\n智能客服:".jiqiren($keyword,$fromuserid);
+									 }
+									sendmsg($fromuserid,'text',$paiduile.$daohang,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword."  \n排队:".$paidui;
+									}else{
+										
+									 chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+	
+			
+	 
+        }else{///////////////////////////////////////////////////////////////
+            echo "";
+            exit;
+        }
+    }
+}
+
+    
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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['news']['articles'][0]['title']!=''){	
+					//	$send['news']['articles'][0]['title']=str_replace('id',$userinfo['id'],$send['news']['articles'][0]['title']);
+					$str=json_encode($send['news']['articles']);
+					$str=str_replace('[name]', trim($userinfo['nickname']),$str);
+   					$send['news']['articles']=json_decode($str,true);
+			  		
+					}
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	if($openid=='obW0e0QwzK2KTM3ueYbXS96GyomA'){
+	   $kf=' ,"customservice":
+    {
+         "kf_account": "kf2002@gh_4caa0ef9c5e1"
+	 }';}
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "  } '.$kf.'    }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			case 'link':
+			  	$baogao=' {
+							"title": " '.$postObj->Title.'",
+							"description": "'.$postObj->Description.'",
+							"url":  "'.$postObj->Url.'",
+							"thumb_url": "http://'.$_SERVER['HTTP_HOST'].'/addons/qidong_app/icon.jpg"
+						}';
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+	       break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	 	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+	    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 zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			unlink('json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			unlink('json/'.$toUsername.'_lishi.json');
+		 
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    unlink('json/'.$toUsername.'_paidui.json');
+			unlink('json/'.$toUsername.'_token.json');
+			unlink('log.xml');
+			if (!file_exists('json/'.$toUsername.'_paidui.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+		 
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					//$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					//$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 = "log1.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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 chaoshile($uniacid,$chaoshi,$website,$url,$fromuserid,$jsy){
+	//超时自动退出 读取时间表 读取客服表  判断时间  超过的 ->设置成空闲 .给用户发消息超时退出.
+		$json 		= file_get_contents('json/'.$uniacid.'_time.json');//读取key列表
+		$kefutime		= json_decode($json,true);
+		$json 		= file_get_contents('json/'.$uniacid.'_kefu.json');//读取数字key列表
+		$kefustr 	= json_decode($json,true);
+	    $arr		= array_keys($kefutime);//openid 
+	    $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);
+	    foreach ($arr as $arr){  
+			$kftime=$kefutime[$arr]+$chaoshi;
+			if (substr($kefustr[$arr],0,1)=="o"){ 
+			if ($kftime<time()){
+				//给老客户发信息 
+				    $kefutime[$arr]=time();//修改时间.
+                   	 jieshuyu($jsy,$uniacid,$kefustr[$arr],$website,$url);
+		           	
+					 $kefuname = $kefulist[$arr];
+			     	 edituser($uniacid,$kefustr[$arr],'',$website,$avartar,$zhuangtai,$kefuname);
+
+               //设置新标签 查找排队 
+				$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+				if ($paiduinumber==0){
+					$kefustr[$arr]='空闲';}
+					else{
+				      
+						$json 		= file_get_contents('json/'.$uniacid.'_paidui.json');//读取key列表
+						$paiduiarr		= json_decode($json,true);
+						$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+						if(substr($nextkh['openid'],0,1)=='o'){
+				 		sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+						$kefustr[$arr]=$nextkh['openid'];//保存新的用户进来.;
+						sendmsg($arr,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					//	$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+						}else{
+							$kefustr[$arr]='空闲';
+							
+						}	
+						$userjson=json_encode($paiduiarr);
+						$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					
+						
+				}
+			}//结束判断
+			}//结束判断o
+		}
+		$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefustr));
+			$res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+	
+}
+
+	function daohang($uniacid){
+			$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);
+		    $arr= array_keys($numkeys);
+							$i=0;
+							foreach ($arr as $arr) {
+							$daohang.=$arr.':'.changeurl($numkeys[$arr]) .'\n';
+							$i++;
+							if ($i>9){break;};
+							}  
+			return $daohang;
+		  
+		
+	}
+
+	function jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+	   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 Inserthistory($toUsername,$uniacid,$kfopenid,$kfname,$khopenid,$khname,$keyword,$postObj,$zhuangtai,$website){
+	  //&tablename=dc_user&culname=openid&findname=name&openid=ogMce0dAqzqm3LSCIBzoHb4XYgFU
+	   $type=$postObj->MsgType;
+	   if ($type=='image'){
+		   $keyword=$postObj->PicUrl;
+	   }
+	   if ($type=='voice'){
+		   $keyword=$postObj->Recognition;
+	   }
+	   $token_access_url = "{$website}/app/index.php?i=".$uniacid."&c=entry&a=wxapp&do=Inserthistory&m=qidong_app&uniacid={$uniacid}&type={$type}&toUsername={$toUsername}&kfopenid={$kfopenid}&kfname={$kfname}&khopenid={$khopenid}&khname={$khname}&keyword={$keyword}&zhuangtai={$zhuangtai}";
+      // logger( $token_access_url);
+	       $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
+	 
+    
+		//return  $data ;
+  }
+  
+   
+ function sendMBmsg($Atoken,$openid,$template_id,$url,$appid,$pagepath,$data){
+	//消息处理模块.
+	   	// $info = json_decode(file_get_contents("json/info_".$jsonid.".json"),true);//读取设置文件.
+		//$Atoken=$info['access_token'];
+					 
+ 				 
+	 	 $data1='   {
+           "touser":"'.$openid.'",
+           "template_id":"'.$template_id.'",
+           "url":"'.$url.'",  
+           "miniprogram":{
+             "appid":"'.$appid.'",
+             "pagepath":"'.$pagepath.'"
+           },          
+           "data": '.$data.'
+       }';
+		 
+	 //	 	echo $data1."<br>";
+		 
+		$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$Atoken";
+	 //	echo $url."<br>";
+	 	$aaa = http_post_data($url, $data1);
+	    
+	 //   print_r($aaa);
+		 
+		return $aaa;
+}
+
+function getReqSign($params /* 关联数组 */, $appkey /* 字符串*/)
+{
+    // 1. 字典升序排序
+    ksort($params);
+
+    // 2. 拼按URL键值对
+    $str = '';
+    foreach ($params as $key => $value)
+    {
+        if ($value !== '')
+        {
+            $str .= $key . '=' . urlencode($value) . '&';
+        }
+    }
+
+    // 3. 拼接app_key
+    $str .= 'app_key=' . $appkey;
+
+    // 4. MD5运算+转换大写,得到请求签名
+    $sign = strtoupper(md5($str));
+    return $sign;
+}
+// doHttpPost :执行POST请求,并取回响应结果
+// 参数说明
+//   - $url   :接口请求地址
+//   - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
+// 返回数据
+//   - 返回false表示失败,否则表示API成功返回的HTTP BODY部分
+function doHttpPost($url, $params)
+{
+    $curl = curl_init();
+
+    $response = false;
+    do
+    {
+        // 1. 设置HTTP URL (API地址)
+        curl_setopt($curl, CURLOPT_URL, $url);
+
+        // 2. 设置HTTP HEADER (表单POST)
+        $head = array(
+            'Content-Type: application/x-www-form-urlencoded'
+        );
+        curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
+
+        // 3. 设置HTTP BODY (URL键值对)
+        $body = http_build_query($params);
+        curl_setopt($curl, CURLOPT_POST, true);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
+
+        // 4. 调用API,获取响应结果
+        curl_setopt($curl, CURLOPT_HEADER, false);
+        curl_setopt($curl, CURLOPT_NOBODY, false);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        $response = curl_exec($curl);
+        if ($response === false)
+        {
+            $response = false;
+            break;
+        }
+
+        $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+        if ($code != 200)
+        {
+            $response = false;
+            break;
+        }
+    } while (0);
+
+    curl_close($curl);
+    return $response;
+}
+
+// 设置请求数据(应用密钥、接口请求参数)
+
+function jiqiren($keyword,$session){
+$appkey = 'l2FBbW8zsJvp3kQa';
+$params = array(
+    'app_id'     => '1106992438',
+    'time_stamp' => time(),
+    'nonce_str'  => '20e340'.rand(1000,9999),
+     'session'    => $session,
+    'question'   => $keyword,
+	'sign'       => ''
+);
+$params['sign'] = getReqSign($params, $appkey);
+
+// 执行API调用
+
+$url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat';
+$response = doHttpPost($url, $params);
+return json_decode($response,true)['data']['answer'];
+}
+ 
+?>  

+ 961 - 0
kefu_c_bak.php

xqd
@@ -0,0 +1,961 @@
+<?php
+ //echo checkSignature;
+ 
+ /* 本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+
+ ?用插件的方式./...
+    o  客服直接输入关键字 //直接生成客服关键字列表. ok 判断关键字进入. ok
+	o  列出在线客服 回复 或者 //下一版  --点击 可接通.??
+    o  增加获取用户信息功能 //授权  //下一班
+    o  常用命令功能:清零 排队 上班 下标   
+	   再见打招呼 回复1 修改下.
+	o  继续上次的对话. ok
+	   感谢您的来访,请您对本次服务进行评价:
+       非常满意    满意    一般    不满意    非常不满意 
+	   给再见加上一个 链接功能 或者 按钮 ...
+	ok 群发列表问题  修正 是缺少参数
+	ok 下一个 更新时间.
+	   转接客服
+	   客服按钮 
+	   ///////////
+	   管理员可见--????
+	  第一步 创建表  管理员可增加 
+	  第二步  用户端可申请 提交 .显示自己的客服席位数量 .
+	  第三步  管理员负责修改席位 我负责开通权限 
+	  可增加 权限开通 密钥  .50个密钥 输入1个 .用一个.
+	
+	
+	
+    CopyRight 2017 www.17cheng.cn  All Rights Reserved
+*/
+header('Content-type:text/json');
+
+$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"]; //获取数据 
+       //  logger(time().$postStr);
+	   $xcx=false;//true 是小程序 
+        if (!empty($postStr)){
+			//$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			if($xcx){
+				$postObj =json_decode($postStr);}
+				else{
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			}
+			
+ 			$fromUsername	 = trim($postObj->FromUserName);  //openid
+			$toUsername  	 = trim($postObj->ToUserName);
+			$tousernamebak	 = $toUsername;
+			$keyword 		 = trim($postObj->Content);
+			$sessionFrom	 = trim($postObj->SessionFrom);
+			$MsgType = $postObj->MsgType;//消息类型 text event
+			$Event   = $postObj->Event;
+			if ($Event == "CLICK") {
+			    $EventKey   = $postObj->EventKey;
+			    $MsgType='text';
+			    $keyword=trim($EventKey);//修复公众号问题.
+				logger('event:'.$Event.$MsgType.'key:'.$keyword);
+			
+			}
+			$json 			 = file_get_contents('json/'.$toUsername.'.json');
+			$arr 			 = json_decode($json,true);
+			$uniacid		 = $arr['uniacid'];
+			//echo $uniacid;
+			$website		 = $arr['website'];
+			define("APPID", $arr['APPID']);
+			define("APPSECRET", $arr['APPSECRET']);	
+			$fromuserid 	 = $fromUsername;//
+			$myopenid		 = trim($arr['openids']);//管理员id
+			$Atoken			 = getToken(APPID,APPSECRET,$toUsername); 
+			$url  			 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+			  if ($keyword=='openid'){
+			 	sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+				exit;
+			}
+	//echo $Atoken	;
+			$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+			$kefuarr 		 = json_decode($json,true);	//客服列表
+////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+	    if(array_key_exists($fromuserid,$kefuarr)){ //判断是不是客服.
+			logger($MsgType.'是客服.');
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 //当前聊天的是?
+			if (substr($kehuopenid,0,1)=='o'){
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			  
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话,或者回复再见 结束对话','',$url);//给用户发消息.
+
+					exit;
+					
+				}
+			
+		         
+			   if($xcx){
+				   $userinfo	= getuser($uniacid,$fromUsername,$nickname,$website);
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $userinfo	= getuser($uniacid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+					
+			  //  
+				
+				
+             //  下一次增加在线客服提示 这里不提示先 .等下一版本.
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+				//	$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+				//	$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				//logger('是客户:.'.$fromUsername);
+				// if($event=='unsubscribe'){ $eve='取消关注'; exit; };//公众号专用
+				//logger($fromuserid.'-'.$arr['默认'].$uniacid.$url);
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr;//[屏蔽一下 下一版发布.]
+				zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    
+				$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'].'  "    }  }';
+					 $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				//	 logger($data1.$aaa);
+				 }
+				 
+ 
+					exit;
+		} 
+
+			
+			
+			
+			
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+	
+ 
+
+	//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+			  $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+		      $kefuname = $kefulist[$fromuserid];
+		      atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+			exit;
+	      }
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					    if (json_decode($bbb, true)['errcode']<>0){
+			         		sendmsg($fromUsername,'text','客服忙..已经存入留言板...\n 回复 再见 结束会话.','',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//没在咨询,检查是否有空闲客服
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						$users=getuser($uniacid,$fromuserid,$nickname,$website);
+						
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':你好,有什么可以帮到你的?','',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword.'排队:'.$paidui;
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+	
+			
+	 
+        }else{///////////////////////////////////////////////////////////////
+            echo "";
+            exit;
+        }
+    }
+}
+
+    
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "    }  }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	//	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+function zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			exec("rm -f ".'json/'.$toUsername.'_lishi.json');
+			break;
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    exec("rm -f ".'json/'.$toUsername.'_paidui.json');
+			exec("rm -f ".'json/'.$toUsername.'_token.json');
+			exec("rm -f ".'log.xml');
+			if (!file_exists('json/'.$toUsername.'_paidui.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+				// sendmsg($kehuopenid,'text',$jsy,'',$url);//说再见.
+				// $a=edituser($uniacid,$delid['openid'],'',$website);
+				//$lastliao='';//最后聊天客服.
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					//print_r($nextkh);
+					//echo '<hr>';
+					
+					 
+					//print_r('nextkhoid:'.$nextkh['openid']);
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 = "log1.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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+ 
+?>  

+ 964 - 0
kefu_d.php

xqd
@@ -0,0 +1,964 @@
+<?php
+ //echo checkSignature;
+ 
+ /* 本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+
+ ?用插件的方式./...
+     
+    CopyRight 2017 www.17cheng.cn  All Rights Reserved
+*/
+header('Content-type:text/json');
+
+$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"]; //获取数据 
+       //  logger(time().$postStr);
+	   $xcx=true;//true 是小程序 
+        if (!empty($postStr)){
+			//$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			if($xcx){
+				$postObj =json_decode($postStr);}
+				else{
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			}
+			
+ 			$fromUsername	 = trim($postObj->FromUserName);  //openid
+			$toUsername  	 = trim($postObj->ToUserName);
+			$tousernamebak	 = $toUsername;
+			$keyword 		 = trim($postObj->Content);
+			$sessionFrom	 = trim($postObj->SessionFrom);
+			$MsgType = $postObj->MsgType;//消息类型 text event
+			$Event   = $postObj->Event;
+			if ($Event == "CLICK") {
+			    $EventKey   = $postObj->EventKey;
+			    $MsgType='text';
+			    $keyword=trim($EventKey);//修复公众号问题.
+				logger('event:'.$Event.$MsgType.'key:'.$keyword);
+			
+			}
+			$json 			 = file_get_contents('json/'.$toUsername.'.json');
+			$arr 			 = json_decode($json,true);
+			$uniacid		 = $arr['uniacid'];
+			//echo $uniacid;
+			$website		 = $arr['website'];
+			define("APPID", $arr['APPID']);
+			define("APPSECRET", $arr['APPSECRET']);	
+			$fromuserid 	 = $fromUsername;//
+			$myopenid		 = trim($arr['openids']);//管理员id
+			$Atoken			 = getToken(APPID,APPSECRET,$toUsername); 
+			$url  			 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+			  if ($keyword=='openid'){
+			 	sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+				exit;
+			}
+	//echo $Atoken	;
+			$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+			$kefuarr 		 = json_decode($json,true);	//客服列表
+////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+	    if(array_key_exists($fromuserid,$kefuarr)){  
+			logger($MsgType.'是客服.');
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 
+			if (substr($kehuopenid,0,1)=='o'){
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			  
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话,或者回复再见 结束对话','',$url);//给用户发消息.
+
+					exit;
+					
+				}
+			
+		         
+			   if($xcx){
+				   $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);
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $userinfo	= getuser($uniacid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+					
+			  //  
+				
+				
+             //  下一次增加在线客服提示 这里不提示先 .等下一版本.
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+					$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+					$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				//logger('是客户:.'.$fromUsername);
+				// if($event=='unsubscribe'){ $eve='取消关注'; exit; };//公众号专用
+				//logger($fromuserid.'-'.$arr['默认'].$uniacid.$url);
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr;//[屏蔽一下 下一版发布.]
+				zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    
+				$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'].'  "    }  }';
+					 $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				//	 logger($data1.$aaa);
+				 }
+				 
+ 
+					exit;
+		} 
+
+			
+			
+			
+			
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+	
+ 
+
+	//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+			  $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+		      $kefuname = $kefulist[$fromuserid];
+		      atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+			exit;
+	      }
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','消息失败,客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					    if (json_decode($bbb, true)['errcode']<>0){
+			         		sendmsg($fromUsername,'text','客服忙..已经存入留言板...\n 回复 再见 结束会话.','',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//没在咨询,检查是否有空闲客服
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						$users=getuser($uniacid,$fromuserid,$nickname,$website);
+						
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':你好,有什么可以帮到你的?','',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword.'排队:'.$paidui;
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+	
+			
+	 
+        }else{///////////////////////////////////////////////////////////////
+            echo "";
+            exit;
+        }
+    }
+}
+
+    
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "    }  }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	//	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+function zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			unlink('json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			unlink('json/'.$toUsername.'_lishi.json');
+			break;
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    unlink('json/'.$toUsername.'_paidui.json');
+			unlink('json/'.$toUsername.'_token.json');
+			unlink('log.xml');
+			if (!file_exists('json/'.$toUsername.'_paidui.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+				// sendmsg($kehuopenid,'text',$jsy,'',$url);//说再见.
+				// $a=edituser($uniacid,$delid['openid'],'',$website);
+				//$lastliao='';//最后聊天客服.
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					//print_r($nextkh);
+					//echo '<hr>';
+					
+					 
+					//print_r('nextkhoid:'.$nextkh['openid']);
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 = "log1.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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+	   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 ;
+  }
+ 
+?>  

+ 1334 - 0
kefu_x.php

xqd
@@ -0,0 +1,1334 @@
+<?php
+ //echo checkSignature;
+ 
+ /* 本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+//这是多客服---小程序接口 .
+ 
+     
+    CopyRight 2017 www.17cheng.cn  All Rights Reserved
+*/
+header('Content-type:text/json');
+
+$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().$postStr);
+	   $xcx=true;//true 是小程序 
+        if (!empty($postStr)){
+			//$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			if($xcx){
+				$postObj =json_decode($postStr);}
+				else{
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+			}
+			
+ 			$fromUsername	 = trim($postObj->FromUserName);  //openid
+			$toUsername  	 = trim($postObj->ToUserName);
+			$tousernamebak	 = $toUsername;
+			$keyword 		 = trim($postObj->Content);
+			$sessionFrom	 = trim($postObj->SessionFrom);
+			$sessionFrom.='|';
+			$MsgType = $postObj->MsgType;//消息类型 text event
+			$Event   = $postObj->Event;
+			if ($Event == "CLICK") {
+			    $EventKey   = $postObj->EventKey;
+			    $MsgType='text';
+			    $keyword=trim($EventKey);//修复公众号问题.
+				logger('event:'.$Event.$MsgType.'key:'.$keyword);
+			
+			}
+			$json 			 = file_get_contents('json/'.$toUsername.'.json');
+			$arr 			 = json_decode($json,true);
+			$uniacid		 = $arr['uniacid'];
+			
+				$mang=	$arr['mang'];
+				if(empty($mang)){$mang='客服忙,已存入留言板';}
+				$paiduile=	$arr['paidui'];
+				if(empty($paiduile)){$paiduile='排队中,请稍候.';}
+				$kaishi=	$arr['kaishi'];
+				if(empty($kaishi)){$kaishi='你好,有什么可以帮到你的?';}
+				
+				
+			//echo $uniacid;
+			$website		 = $arr['website'];
+			define("APPID", $arr['APPID']);
+			define("APPSECRET", $arr['APPSECRET']);	
+			$fromuserid 	 = $fromUsername;//
+			$myopenid		 = trim($arr['openids']);//管理员id
+			$Atoken			 = getToken(APPID,APPSECRET,$toUsername); 
+			$url  			 = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+			  if ($keyword=='openid'){
+			 	sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+				exit;
+			}
+	//echo $Atoken	;
+			$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+			$kefuarr 		 = json_decode($json,true);	//客服列表
+////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+		 
+		if($event=='VIEW'){exit;}
+		if($event=='LOCATION'){exit;}
+	    if(array_key_exists($fromuserid,$kefuarr)){  
+			logger($MsgType.'是客服.');
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 
+			if (substr($kehuopenid,0,1)=='o'){
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			  
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话','',$url);//给用户发消息.
+					exit;
+					 
+					
+				}else
+				{// 踢出超时的 .
+				 	chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+				}
+			
+		         
+			   if($xcx){
+				     if ($sessionFrom<>'|'){
+				     $nickname=explode("|",$sessionFrom,-1)[0]   ; 
+					 if ($nickname=="wxapp"){$nickname="";}
+					  }
+				    
+					
+				    logger('findname:'. $nickname);
+					
+				   $tablename=trim($arr['tablename']);//管理员id
+						if ($tablename<>''){
+						$culname=$arr['culname'];
+						$findname=$arr['findname'];
+						$nickname= Finduser($uniacid,$tablename,$culname,$fromUsername,$findname,$website);
+				  
+						if(!$nickname)
+						{
+							$nickname  ='';
+						}
+							
+						}
+				   
+				   $userinfo	=  getuser($uniacid,$fromUsername,$nickname,$website);
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $userinfo	=  getuser($uniacid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+					
+			  //  
+				
+				
+             //  下一次增加在线客服提示 这里不提示先 .等下一版本.
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+					$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+					$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				//logger('是客户:.'.$fromUsername);
+				// if($event=='unsubscribe'){ $eve='取消关注'; exit; };//公众号专用
+				//logger($fromuserid.'-'.$arr['默认'].$uniacid.$url);
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr;//[屏蔽一下 下一版发布.]
+				
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	           $paiduiarr = json_decode($json,true);
+		        $qianmian=count($paiduiarr);
+				$zxkefu.="\n前面有".$qianmian."人排队";
+				zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    
+				$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'].'  "    }  }';
+					 $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				//	 logger($data1.$aaa);
+				 }
+				 
+ 
+					exit;
+		} 
+
+			
+			
+			
+			
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+	
+ 
+
+	//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+				$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
+			
+				if (is_numeric($nid)){
+					  atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+				}else{
+						$say=trim(substr($keyword,$stri+1));//发送的内容:
+						$kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+						$tokefuopenid=array_search($nid,$kefulist,true);//找到客服id
+						if(!empty($tokefuopenid)){
+							$kefuname = $kefulist[$fromuserid];		
+							sendmsg($tokefuopenid,'text',"[同事消息]\n".$kefuname.':'.$say,'',$url);//给用户发消息.		
+
+						}else{
+							
+							sendmsg($fromuserid,'text','消息格式错误','',$url);//给用户发消息.		
+						}
+					
+				}
+			  
+
+		    
+			exit;
+	      }
+		  
+		   if(substr($keyword,0,1)=='*'){//@转接
+			  $kefulist = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefulist.json"),true);	
+			  $kefu = json_decode(file_get_contents("../qidong_app/json/".$uniacid."_kefu.json"),true);	
+	           
+			  $tokefuname=substr($keyword,1);//李律师
+			  $tokefuopenid=array_search($tokefuname,$kefulist,true);//找到客服id
+				if(!empty($tokefuopenid)){
+					$kefuname = $kefulist[$fromuserid];//当前客服名
+					$kehuopenid = $kefu[$fromuserid];//当前客户openid
+					if(substr($kefu[$tokefuopenid],0,1)=="o"){
+						sendmsg($fromuserid,'text',$tokefuname.'正忙.','',$url);//给用户发消息.		
+					}else{
+						$kefu[$tokefuopenid]=$kehuopenid;
+						$kefu[$fromuserid]="空闲";
+				        $res=file_put_contents("../qidong_app/json/".$uniacid."_kefu.json",  json_encode($kefu));
+
+						sendmsg($tokefuopenid,'text',$kefuname.'转接来新客户,请接待.','',$url);//给用户发消息.	
+						
+						sendmsg($fromuserid,'text',$tokefuname.'转接'.$kefuname.'成功.','',$url);//给用户发消息.	
+						
+					}
+					exit;
+				}
+				
+	      }
+		  
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					$a=Inserthistory($toUsername,$uniacid,$fromuserid,$kefuname,$kehuopenid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','消息失败,客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					//记录客户的消息 =@1
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					$a=Inserthistory($toUsername,$uniacid,$Kefuopenid,$kfname,$fromuserid,$users['nickname'],$keyword,$postObj,json_decode($bbb, true)['errcode'],$website);
+					//记录时间 ---
+					  $json = file_get_contents("json/".$uniacid."_time.json");
+					  $kefutime = json_decode($json,true);
+					   $kefutime[$Kefuopenid]=time();
+					  $res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+					 
+					//记录时间结束
+					    if (json_decode($bbb, true)['errcode']<>0){
+							 logger('开始通知');
+			 if(!file_exists('json/'.$toUsername.'_lishi.json')){
+				  logger('开始通知1'.$arr['Mobanid']);
+								if($arr['Mobanid']<>''){//判断 如果是xcx 就直接推,如果不是 则用另外的.
+								
+								$template_id=$arr['Mobanid'];
+								 logger('开始通知2'.$template_id);
+									if($xcx){$jsonid=$arr['Gjsonid'];
+											$jopenid=$arr['Gopenids'];
+										     logger('开始通知21:'.$jopenid);
+											$MBtoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$arr['Gjsonid']);
+											}
+									else{
+											$jsonid=$ToUserName;
+											$MBtoken=$Atoken;
+											$jopenid=$Kefuopenid;}
+								 logger('MBtoken:'.$MBtoken);
+									if($MBtoken<>''){
+							 
+												 $data='{
+	   "first": {
+                       "value":"你好,应用编号:'.$uniacid.'有用户咨询,请尽快处理",
+                       "color":"#FF8247"
+                   },
+		"keyword1": {
+                       "value":"客户信息:'.$nickname.'",
+                       "color":"#173177"
+                   },
+		"keyword2": {
+                       "value":"用户发送:'.$keyword.'",
+                       "color":"#173177"
+                   },
+			"remark": {
+                       "value":"应用客服消息内回复:看留言 查看",
+                       "color":"#173177"
+                   }
+  }';                                    logger('jopenid:'.$jopenid);
+										$bbb=sendMBmsg($MBtoken,$jopenid,$template_id,'','','',$data);
+										logger($bbb);
+										$tongzhi=json_decode($bbb,true)['errcode'];
+										if ($tongzhi==0){$tongzhi='已通知到管理员,请稍等.';}
+										// logger($tongzhi);
+									}
+								}
+							}
+							
+							
+							
+							
+			         		sendmsg($fromUsername,'text',$mang,'',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//不是客服 那就是用户 
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						
+						if(zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+							exit;
+						}
+						
+						
+						
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						unlink('json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						$users=getuser($uniacid,$fromuserid,$nickname,$website);
+ 		
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':'.$kaishi,'',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									$daohang=daohang($uniacid);
+									$daohang="\n先看看下面能不能帮到你,可直接回复数字\n".$daohang;
+									 if ($arr["其他"]=='人工+机器人'){
+									$daohang="\n智能客服:".jiqiren($keyword,$fromuserid);
+									 }
+									sendmsg($fromuserid,'text',$paiduile.$daohang,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword."  \n排队:".$paidui;
+									}else{
+										
+									 chaoshile($uniacid,300,$website,$url,$fromuserid,$arr['结束语']);
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+	
+			
+	 
+        }else{///////////////////////////////////////////////////////////////
+            echo "";
+            exit;
+        }
+    }
+}
+
+    
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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['news']['articles'][0]['title']!=''){	
+					//	$send['news']['articles'][0]['title']=str_replace('id',$userinfo['id'],$send['news']['articles'][0]['title']);
+					$str=json_encode($send['news']['articles']);
+					$str=str_replace('[name]', trim($userinfo['nickname']),$str);
+   					$send['news']['articles']=json_decode($str,true);
+			  		
+					}
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "  }     }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			case 'link':
+			  	$baogao=' {
+							"title": " '.$postObj->Title.'",
+							"description": "'.$postObj->Description.'",
+							"url":  "'.$postObj->Url.'",
+							"thumb_url": "http://'.$_SERVER['HTTP_HOST'].'/addons/qidong_app/icon.jpg"
+						}';
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+	       break;
+			default:
+			     $data1='';
+		}
+		
+		$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	 	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+	    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 zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			unlink('json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			unlink('json/'.$toUsername.'_lishi.json');
+		 
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    unlink('json/'.$toUsername.'_paidui.json');
+			unlink('json/'.$toUsername.'_token.json');
+			unlink('log.xml');
+			if (!file_exists('json/'.$toUsername.'_paidui.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+		 
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					//$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					//$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+
+function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+           //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+
+   
+//缓存 先去判断文件是否存在 .
+
+	
+		
+		
+}
+
+	//去查询 用户表 或者 客服表 找到详细信息.
+// 输出 : 身份[客服 或 用户 ] 状态 [ 咨询中 | 排队中  ]    
+//规则  聊天中 不能使用1 2  3 不去查询 . 都发给管理员 .
+
+ 
+	
+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 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 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 = "log1.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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 chaoshile($uniacid,$chaoshi,$website,$url,$fromuserid,$jsy){
+	//超时自动退出 读取时间表 读取客服表  判断时间  超过的 ->设置成空闲 .给用户发消息超时退出.
+		$json 		= file_get_contents('json/'.$uniacid.'_time.json');//读取key列表
+		$kefutime		= json_decode($json,true);
+		$json 		= file_get_contents('json/'.$uniacid.'_kefu.json');//读取数字key列表
+		$kefustr 	= json_decode($json,true);
+	    $arr		= array_keys($kefutime);//openid 
+	    $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);
+	    foreach ($arr as $arr){  
+			$kftime=$kefutime[$arr]+$chaoshi;
+			if (substr($kefustr[$arr],0,1)=="o"){ 
+			if ($kftime<time()){
+				//给老客户发信息 
+				    $kefutime[$arr]=time();//修改时间.
+                   	 jieshuyu($jsy,$uniacid,$kefustr[$arr],$website,$url);
+		           	
+					 $kefuname = $kefulist[$arr];
+			     	 edituser($uniacid,$kefustr[$arr],'',$website,$avartar,$zhuangtai,$kefuname);
+
+               //设置新标签 查找排队 
+				$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+				if ($paiduinumber==0){
+					$kefustr[$arr]='空闲';}
+					else{
+				      
+						$json 		= file_get_contents('json/'.$uniacid.'_paidui.json');//读取key列表
+						$paiduiarr		= json_decode($json,true);
+						$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+						if(substr($nextkh['openid'],0,1)=='o'){
+				 		sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+						$kefustr[$arr]=$nextkh['openid'];//保存新的用户进来.;
+						sendmsg($arr,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					//	$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+						}else{
+							$kefustr[$arr]='空闲';
+							
+						}	
+						$userjson=json_encode($paiduiarr);
+						$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					
+						
+				}
+			}//结束判断
+			}//结束判断o
+		}
+		$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefustr));
+			$res=file_put_contents("json/".$uniacid."_time.json",  json_encode($kefutime));
+	
+}
+
+	function daohang($uniacid){
+			$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);
+		    $arr= array_keys($numkeys);
+							$i=0;
+							foreach ($arr as $arr) {
+							$daohang.=$arr.':'.changeurl($numkeys[$arr]) .'\n';
+							$i++;
+							if ($i>9){break;};
+							}  
+			return $daohang;
+		  
+		
+	}
+
+	function jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+			logger($data0);
+		
+		
+	}
+	   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 Inserthistory($toUsername,$uniacid,$kfopenid,$kfname,$khopenid,$khname,$keyword,$postObj,$zhuangtai,$website){
+	  //&tablename=dc_user&culname=openid&findname=name&openid=ogMce0dAqzqm3LSCIBzoHb4XYgFU
+	   $type=$postObj->MsgType;
+	   if ($type=='image'){
+		   $keyword=$postObj->PicUrl;
+	   }
+	   if ($type=='voice'){
+		   $keyword=$postObj->Recognition;
+	   }
+	   $token_access_url = "{$website}/app/index.php?i=".$uniacid."&c=entry&a=wxapp&do=Inserthistory&m=qidong_app&uniacid={$uniacid}&type={$type}&toUsername={$toUsername}&kfopenid={$kfopenid}&kfname={$kfname}&khopenid={$khopenid}&khname={$khname}&keyword={$keyword}&zhuangtai={$zhuangtai}";
+      // logger( $token_access_url);
+	       $res = file_get_contents($token_access_url); //获取文件内容或获取网络请求的内容
+	 
+    
+		//return  $data ;
+  }
+  
+   
+ function sendMBmsg($Atoken,$openid,$template_id,$url,$appid,$pagepath,$data){
+	//消息处理模块.
+	   	// $info = json_decode(file_get_contents("json/info_".$jsonid.".json"),true);//读取设置文件.
+		//$Atoken=$info['access_token'];
+					 
+ 				 
+	 	 $data1='   {
+           "touser":"'.$openid.'",
+           "template_id":"'.$template_id.'",
+           "url":"'.$url.'",  
+           "miniprogram":{
+             "appid":"'.$appid.'",
+             "pagepath":"'.$pagepath.'"
+           },          
+           "data": '.$data.'
+       }';
+		 
+	 //	 	echo $data1."<br>";
+		 
+		$url="https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=$Atoken";
+	 //	echo $url."<br>";
+	 	$aaa = http_post_data($url, $data1);
+	    
+	 //   print_r($aaa);
+		 
+		return $aaa;
+}
+
+function getReqSign($params /* 关联数组 */, $appkey /* 字符串*/)
+{
+    // 1. 字典升序排序
+    ksort($params);
+
+    // 2. 拼按URL键值对
+    $str = '';
+    foreach ($params as $key => $value)
+    {
+        if ($value !== '')
+        {
+            $str .= $key . '=' . urlencode($value) . '&';
+        }
+    }
+
+    // 3. 拼接app_key
+    $str .= 'app_key=' . $appkey;
+
+    // 4. MD5运算+转换大写,得到请求签名
+    $sign = strtoupper(md5($str));
+    return $sign;
+}
+// doHttpPost :执行POST请求,并取回响应结果
+// 参数说明
+//   - $url   :接口请求地址
+//   - $params:完整接口请求参数(特别注意:不同的接口,参数对一般不一样,请以具体接口要求为准)
+// 返回数据
+//   - 返回false表示失败,否则表示API成功返回的HTTP BODY部分
+function doHttpPost($url, $params)
+{
+    $curl = curl_init();
+
+    $response = false;
+    do
+    {
+        // 1. 设置HTTP URL (API地址)
+        curl_setopt($curl, CURLOPT_URL, $url);
+
+        // 2. 设置HTTP HEADER (表单POST)
+        $head = array(
+            'Content-Type: application/x-www-form-urlencoded'
+        );
+        curl_setopt($curl, CURLOPT_HTTPHEADER, $head);
+
+        // 3. 设置HTTP BODY (URL键值对)
+        $body = http_build_query($params);
+        curl_setopt($curl, CURLOPT_POST, true);
+        curl_setopt($curl, CURLOPT_POSTFIELDS, $body);
+
+        // 4. 调用API,获取响应结果
+        curl_setopt($curl, CURLOPT_HEADER, false);
+        curl_setopt($curl, CURLOPT_NOBODY, false);
+        curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, true);
+        curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
+        $response = curl_exec($curl);
+        if ($response === false)
+        {
+            $response = false;
+            break;
+        }
+
+        $code = curl_getinfo($curl, CURLINFO_HTTP_CODE);
+        if ($code != 200)
+        {
+            $response = false;
+            break;
+        }
+    } while (0);
+
+    curl_close($curl);
+    return $response;
+}
+
+// 设置请求数据(应用密钥、接口请求参数)
+
+function jiqiren($keyword,$session){
+$appkey = 'l2FBbW8zsJvp3kQa';
+$params = array(
+    'app_id'     => '1106992438',
+    'time_stamp' => time(),
+    'nonce_str'  => '20e340'.rand(1000,9999),
+     'session'    => $session,
+    'question'   => $keyword,
+	'sign'       => ''
+);
+$params['sign'] = getReqSign($params, $appkey);
+
+// 执行API调用
+
+$url = 'https://api.ai.qq.com/fcgi-bin/nlp/nlp_textchat';
+$response = doHttpPost($url, $params);
+return json_decode($response,true)['data']['answer'];
+}
+ 
+?>  

+ 32 - 0
kefutest.php

xqd
@@ -0,0 +1,32 @@
+	<meta charset="utf-8">
+<?php
+ $uniacid		 = 144;
+ $json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+ $kefuarr 		 = json_decode($json,true);	//客服列表
+ echo zxkefu($uniacid,$kefuarr);
+function zxkefu($uniacid,$kefuarr){//读取在线客服列表
+	$json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+		
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+			$kefuall=$kefuall.' '.$kefulist[$kefuopenid].'['.$zt.']';
+		}
+		
+	}
+	return $kefuall;
+	
+}
+
+
+?>  
+  
+ 

+ 6280 - 0
log.xml

xqd
@@ -0,0 +1,6280 @@
+2018-04-06 15:09:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998558,
+"MsgType": "text",
+"Content": "对啊,你打不过我的。",
+"MsgId": 6541228998886185324
+}
+
+2018-04-06 15:09:18o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:09:19下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:也要打   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:09:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998595,
+"MsgType": "text",
+"Content": " 我在学校连老师都打,连老师都骂",
+"MsgId": 6541229157799975296
+}
+
+2018-04-06 15:09:56o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:09:56下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:sorry   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:10:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998607,
+"MsgType": "text",
+"Content": "你说我会怕你吗?",
+"MsgId": 6541229209339582852
+}
+
+2018-04-06 15:10:07o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:10:08下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:会的会的会更幸福的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:10:15{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998614,
+"MsgType": "text",
+"Content": "滚,王八蛋",
+"MsgId": 6541229239404353926
+}
+
+2018-04-06 15:10:15o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:10:15下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:嗯嗯,死乌龟,王八羔子,讨吃货   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:10:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998646,
+"MsgType": "text",
+"Content": "王八羔子,讨吃货,畜生。王八蛋,王八女神经病,疯子,傻子,傻瓜,脑膜炎。你妈洗澡不脱衣服?",
+"MsgId": 6541229376843307419
+}
+
+2018-04-06 15:10:46o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:10:47下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:脱了衣服你就是禽兽,穿上衣服你就是衣冠禽兽!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:10:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998658,
+"MsgType": "text",
+"Content": "我说的是你吗?",
+"MsgId": 6541229428382914974
+}
+
+2018-04-06 15:10:59o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:10:59下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:谁让你说这个了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:11:29{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998689,
+"MsgType": "text",
+"Content": "你管我,嘴长在我身上我想说就说想不说就不说,关你屁事呀,你管得着吗。",
+"MsgId": 6541229561526901159
+}
+
+2018-04-06 15:11:29o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:11:30下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:世界上的一切问题,都能用“关你屁事”和“关我屁事” 来回答。突然感觉屁好忙。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:11:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998703,
+"MsgType": "text",
+"Content": "你放屁!好臭啊!",
+"MsgId": 6541229621656443312
+}
+
+2018-04-06 15:11:43o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:11:44下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:你骂人!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:11:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998718,
+"MsgType": "text",
+"Content": "我没骂人呀,你确实好放屁了呀。而且我这里都闻到了,太臭了。",
+"MsgId": 6541229686080952765
+}
+
+2018-04-06 15:11:58o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:11:59下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:有些事没必要认真,有些人没必要理会   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:12:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998740,
+"MsgType": "text",
+"Content": "你这句话说的对呢,有些人没必要理会所以我没必要要理会你。",
+"MsgId": 6541229780570233287
+}
+
+2018-04-06 15:12:21o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:12:21下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:为什么不要理   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:12:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998757,
+"MsgType": "text",
+"Content": "是你自己说的嘛,有些事没必要认真,有些人没必要理会,所以我就。没是你自己说的嘛,有些事没必要认真,有些人没必要理会,所以我就。没必要理会你呀",
+"MsgId": 6541229853584677325
+}
+
+2018-04-06 15:12:37o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:12:38下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:我有说过吗?呀,我忘了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:12:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998765,
+"MsgType": "text",
+"Content": "神经",
+"MsgId": 6541229887944415697
+}
+
+2018-04-06 15:12:46o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:12:46下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:你神经质   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:12:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522998774,
+"MsgType": "text",
+"Content": "我再一次去投诉你了",
+"MsgId": 6541229926599121363
+}
+
+2018-04-06 15:12:54o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:12:55下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:確不知道到底能去哪裡   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:18:00{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941McEfQ3SQuPHXpyhX9YfRI",
+"CreateTime": 1522999079,
+"MsgType": "text",
+"Content": "我已经投了你四次了",
+"MsgId": 6541231236564146773
+}
+
+2018-04-06 15:18:00o6hX941McEfQ3SQuPHXpyhX9YfRI:12
+2018-04-06 15:18:01下发:{ "touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:平你老母   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-06 15:20:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941McEfQ3SQuPHXpyhX9YfRI","CreateTime":1522999214,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 15:20:14nickname0:
+2018-04-06 15:20:14nickname1:60o6hX941McEfQ3SQuPHXpyhX9YfRI会员841
+2018-04-06 15:20:14关注下发:{"msgtype":"text","text":{"content":"会员841 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI"}-状态:0
+2018-04-06 15:20:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941McEfQ3SQuPHXpyhX9YfRI","CreateTime":1522999217,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 15:20:17nickname0:
+2018-04-06 15:20:18nickname1:60o6hX941McEfQ3SQuPHXpyhX9YfRI会员841
+2018-04-06 15:20:18关注下发:{"msgtype":"text","text":{"content":"会员841 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941McEfQ3SQuPHXpyhX9YfRI"}-状态:0
+2018-04-06 16:59:54{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946LTiSvEp93B386h1sD6034","CreateTime":1523005194,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 16:59:55nickname0:
+2018-04-06 16:59:55nickname1:60o6hX946LTiSvEp93B386h1sD6034会员842
+2018-04-06 16:59:55关注下发:{"msgtype":"text","text":{"content":"会员842 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946LTiSvEp93B386h1sD6034"}-状态:0
+2018-04-06 17:00:13{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX946LTiSvEp93B386h1sD6034",
+"CreateTime": 1523005213,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6541257581893546096
+}
+
+2018-04-06 17:00:14关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946LTiSvEp93B386h1sD6034"}-状态:0
+2018-04-06 17:00:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX946LTiSvEp93B386h1sD6034",
+"CreateTime": 1523005227,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6541257642023088782
+}
+
+2018-04-06 17:00:27o6hX946LTiSvEp93B386h1sD6034:0
+2018-04-06 18:12:08{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wbjo3nuOqZoQZyX2a61IcE","CreateTime":1523009528,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 18:12:08nickname0:
+2018-04-06 18:12:08nickname1:60o6hX94wbjo3nuOqZoQZyX2a61IcE会员843
+2018-04-06 18:12:09关注下发:{"msgtype":"text","text":{"content":"会员843 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE"}-状态:0
+2018-04-06 18:16:56{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940soL4DB4NHfCBAYnII9Hgg","CreateTime":1523009816,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 18:16:56nickname0:
+2018-04-06 18:16:56nickname1:60o6hX940soL4DB4NHfCBAYnII9Hgg会员844
+2018-04-06 18:16:57关注下发:{"msgtype":"text","text":{"content":"会员844 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940soL4DB4NHfCBAYnII9Hgg"}-状态:0
+2018-04-06 18:26:57{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wbjo3nuOqZoQZyX2a61IcE","CreateTime":1523010417,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 18:26:57nickname0:
+2018-04-06 18:26:58nickname1:60o6hX94wbjo3nuOqZoQZyX2a61IcE会员843
+2018-04-06 18:26:58关注下发:{"msgtype":"text","text":{"content":"会员843 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE"}-状态:0
+2018-04-06 18:26:58{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wbjo3nuOqZoQZyX2a61IcE","CreateTime":1523010418,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 18:26:58nickname0:
+2018-04-06 18:26:59nickname1:60o6hX94wbjo3nuOqZoQZyX2a61IcE会员843
+2018-04-06 18:26:59关注下发:{"msgtype":"text","text":{"content":"会员843 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE"}-状态:0
+2018-04-06 20:22:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943T0Q4NY0bWW3v_2Kprv5i4","CreateTime":1523017354,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 20:22:34nickname0:
+2018-04-06 20:22:35nickname1:60o6hX943T0Q4NY0bWW3v_2Kprv5i4会员505
+2018-04-06 20:22:35关注下发:{"msgtype":"text","text":{"content":"会员505 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943T0Q4NY0bWW3v_2Kprv5i4"}-状态:0
+2018-04-06 23:12:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944Vp5pH3nd7kgPagnvJjoB4","CreateTime":1523027571,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 23:12:51nickname0:
+2018-04-06 23:12:52nickname1:60o6hX944Vp5pH3nd7kgPagnvJjoB4会员845
+2018-04-06 23:12:52关注下发:{"msgtype":"text","text":{"content":"会员845 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944Vp5pH3nd7kgPagnvJjoB4"}-状态:0
+2018-04-06 23:33:39{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zEsn144vA5jN08tSe_PAAQ","CreateTime":1523028819,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-06 23:33:39nickname0:
+2018-04-06 23:33:39nickname1:60o6hX94zEsn144vA5jN08tSe_PAAQ会员846
+2018-04-06 23:33:39关注下发:{"msgtype":"text","text":{"content":"会员846 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zEsn144vA5jN08tSe_PAAQ"}-状态:0
+2018-04-07 00:31:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946l9EzImtxr-PXzH3HlWwTc","CreateTime":1523032274,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 00:31:14nickname0:
+2018-04-07 00:31:15nickname1:60o6hX946l9EzImtxr-PXzH3HlWwTc会员847
+2018-04-07 00:31:15关注下发:{"msgtype":"text","text":{"content":"会员847 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946l9EzImtxr-PXzH3HlWwTc"}-状态:0
+2018-04-07 06:38:46{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xHU9ViuCKetcy8vQVvkwOw","CreateTime":1523054326,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 06:38:46nickname0:
+2018-04-07 06:38:47nickname1:60o6hX94xHU9ViuCKetcy8vQVvkwOw会员785
+2018-04-07 06:38:47关注下发:{"msgtype":"text","text":{"content":"会员785 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xHU9ViuCKetcy8vQVvkwOw"}-状态:0
+2018-04-07 06:38:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xHU9ViuCKetcy8vQVvkwOw","CreateTime":1523054335,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 06:38:55nickname0:
+2018-04-07 06:38:55nickname1:60o6hX94xHU9ViuCKetcy8vQVvkwOw会员785
+2018-04-07 06:38:55关注下发:{"msgtype":"text","text":{"content":"会员785 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xHU9ViuCKetcy8vQVvkwOw"}-状态:0
+2018-04-07 06:39:01{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xHU9ViuCKetcy8vQVvkwOw","CreateTime":1523054340,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 06:39:01nickname0:
+2018-04-07 06:39:01nickname1:60o6hX94xHU9ViuCKetcy8vQVvkwOw会员785
+2018-04-07 06:39:01关注下发:{"msgtype":"text","text":{"content":"会员785 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xHU9ViuCKetcy8vQVvkwOw"}-状态:0
+2018-04-07 09:50:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xnmiaQi7fT2TuCJVc46n-8","CreateTime":1523065817,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 09:50:17nickname0:
+2018-04-07 09:50:17nickname1:60o6hX94xnmiaQi7fT2TuCJVc46n-8会员848
+2018-04-07 09:50:18关注下发:{"msgtype":"text","text":{"content":"会员848 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xnmiaQi7fT2TuCJVc46n-8"}-状态:0
+2018-04-07 10:14:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xnmiaQi7fT2TuCJVc46n-8","CreateTime":1523067268,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 10:14:28nickname0:
+2018-04-07 10:14:29nickname1:60o6hX94xnmiaQi7fT2TuCJVc46n-8会员848
+2018-04-07 10:14:29关注下发:{"msgtype":"text","text":{"content":"会员848 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xnmiaQi7fT2TuCJVc46n-8"}-状态:0
+2018-04-07 12:26:39{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944uXCmNv14kyDHE1Ww2gFAY","CreateTime":1523075199,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 12:26:40nickname0:
+2018-04-07 12:26:40nickname1:60o6hX944uXCmNv14kyDHE1Ww2gFAY会员286
+2018-04-07 12:26:40关注下发:{"msgtype":"text","text":{"content":"会员286 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944uXCmNv14kyDHE1Ww2gFAY"}-状态:0
+2018-04-07 12:50:44{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1523076644,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 12:50:44nickname0:
+2018-04-07 12:50:44nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-04-07 12:50:44关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-04-07 12:51:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1523076681,
+"MsgType": "text",
+"Content": "上面是什么成语?",
+"MsgId": 6541564534616288707
+}
+
+2018-04-07 12:51:21o6hX945MOSRwFIUFp9YQYbn8O6Po:0
+2018-04-07 12:52:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1523076726,
+"MsgType": "text",
+"Content": "我们没有机器人?",
+"MsgId": 6541564727889817053
+}
+
+2018-04-07 12:52:06o6hX945MOSRwFIUFp9YQYbn8O6Po:14
+2018-04-07 12:52:07下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第14 个. 先和智能客服聊会. \n智能客服:菲菲是最聪明的人,但不是机器,懂?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 12:54:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1523076844,
+"MsgType": "text",
+"Content": "我不知道上面是什么成语?所以我才问你。",
+"MsgId": 6541565234695958024
+}
+
+2018-04-07 12:54:04o6hX945MOSRwFIUFp9YQYbn8O6Po:14
+2018-04-07 12:54:05下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第14 个. 先和智能客服聊会. \n智能客服:不知道就要问   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 13:09:31{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94z4-oOStowdNAVZuTsWwEzI","CreateTime":1523077771,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 13:09:31nickname0:
+2018-04-07 13:09:31nickname1:60o6hX94z4-oOStowdNAVZuTsWwEzI会员805
+2018-04-07 13:09:32关注下发:{"msgtype":"text","text":{"content":"会员805 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94z4-oOStowdNAVZuTsWwEzI"}-状态:0
+2018-04-07 16:01:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942hTvUbUFtPuYndMVAm5th4","CreateTime":1523088080,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 16:01:20nickname0:
+2018-04-07 16:01:21nickname1:60o6hX942hTvUbUFtPuYndMVAm5th4会员849
+2018-04-07 16:01:21关注下发:{"msgtype":"text","text":{"content":"会员849 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942hTvUbUFtPuYndMVAm5th4"}-状态:0
+2018-04-07 16:24:29{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94z_kT2PkqjPAwP-mpQnei7s","CreateTime":1523089469,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 16:24:29nickname0:
+2018-04-07 16:24:29nickname1:60o6hX94z_kT2PkqjPAwP-mpQnei7s会员823
+2018-04-07 16:24:29关注下发:{"msgtype":"text","text":{"content":"会员823 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94z_kT2PkqjPAwP-mpQnei7s"}-状态:0
+2018-04-07 16:24:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94z_kT2PkqjPAwP-mpQnei7s","CreateTime":1523089474,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 16:24:34nickname0:
+2018-04-07 16:24:34nickname1:60o6hX94z_kT2PkqjPAwP-mpQnei7s会员823
+2018-04-07 16:24:35关注下发:{"msgtype":"text","text":{"content":"会员823 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94z_kT2PkqjPAwP-mpQnei7s"}-状态:0
+2018-04-07 17:39:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945yLCT6cIe1AO1o0GmrrPQ0","CreateTime":1523093954,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 17:39:14nickname0:
+2018-04-07 17:39:15nickname1:60o6hX945yLCT6cIe1AO1o0GmrrPQ0会员517
+2018-04-07 17:39:15关注下发:{"msgtype":"text","text":{"content":"会员517 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945yLCT6cIe1AO1o0GmrrPQ0"}-状态:0
+2018-04-07 17:40:09{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945dbDjiKuJ1HErXpB_4QKv0","CreateTime":1523094009,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 17:40:09nickname0:
+2018-04-07 17:40:10nickname1:60o6hX945dbDjiKuJ1HErXpB_4QKv0会员518
+2018-04-07 17:40:10关注下发:{"msgtype":"text","text":{"content":"会员518 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945dbDjiKuJ1HErXpB_4QKv0"}-状态:0
+2018-04-07 17:40:10{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945dbDjiKuJ1HErXpB_4QKv0","CreateTime":1523094010,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 17:40:10nickname0:
+2018-04-07 17:40:11nickname1:60o6hX945dbDjiKuJ1HErXpB_4QKv0会员518
+2018-04-07 17:40:11关注下发:{"msgtype":"text","text":{"content":"会员518 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945dbDjiKuJ1HErXpB_4QKv0"}-状态:0
+2018-04-07 18:37:03{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949s-ZKJtxxrQpm2e3iJl8J4","CreateTime":1523097423,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 18:37:03nickname0:
+2018-04-07 18:37:03nickname1:60o6hX949s-ZKJtxxrQpm2e3iJl8J4会员850
+2018-04-07 18:37:04关注下发:{"msgtype":"text","text":{"content":"会员850 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949s-ZKJtxxrQpm2e3iJl8J4"}-状态:0
+2018-04-07 18:37:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949s-ZKJtxxrQpm2e3iJl8J4",
+"CreateTime": 1523097452,
+"MsgType": "text",
+"Content": "你是谁啊?",
+"MsgId": 6541653745382002331
+}
+
+2018-04-07 18:37:32o6hX949s-ZKJtxxrQpm2e3iJl8J4:0
+2018-04-07 18:38:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949s-ZKJtxxrQpm2e3iJl8J4",
+"CreateTime": 1523097506,
+"MsgType": "text",
+"Content": "你们的有小孩的吗?",
+"MsgId": 6541653977310236338
+}
+
+2018-04-07 18:38:27o6hX949s-ZKJtxxrQpm2e3iJl8J4:15
+2018-04-07 18:38:28下发:{ "touser":"o6hX949s-ZKJtxxrQpm2e3iJl8J4",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第15 个. 先和智能客服聊会. \n智能客服:抱歉,暂未开通客服电话,有事您跟我说就行了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 18:38:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949s-ZKJtxxrQpm2e3iJl8J4",
+"CreateTime": 1523097521,
+"MsgType": "text",
+"Content": "不",
+"MsgId": 6541654041734745786
+}
+
+2018-04-07 18:38:42o6hX949s-ZKJtxxrQpm2e3iJl8J4:15
+2018-04-07 18:38:42下发:{ "touser":"o6hX949s-ZKJtxxrQpm2e3iJl8J4",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第15 个. 先和智能客服聊会. \n智能客服:不什么?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 18:39:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949s-ZKJtxxrQpm2e3iJl8J4",
+"CreateTime": 1523097597,
+"MsgType": "text",
+"Content": "  ?",
+"MsgId": 6541654368152260306
+}
+
+2018-04-07 18:39:57o6hX949s-ZKJtxxrQpm2e3iJl8J4:15
+2018-04-07 18:39:58下发:{ "touser":"o6hX949s-ZKJtxxrQpm2e3iJl8J4",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第15 个. 先和智能客服聊会. \n智能客服:冰山一座   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:16:52{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941xGsGTNk4AJeWEvtcEsS80","CreateTime":1523114212,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-07 23:16:53nickname0:
+2018-04-07 23:16:53nickname1:60o6hX941xGsGTNk4AJeWEvtcEsS80会员670
+2018-04-07 23:16:53关注下发:{"msgtype":"text","text":{"content":"会员670 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941xGsGTNk4AJeWEvtcEsS80"}-状态:0
+2018-04-07 23:17:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114236,
+"MsgType": "text",
+"Content": "到了太子少师弟28关,请君入瓮,这个之后,停滞不前了,不能进行下一关,怎么回事?不要烦人的机器人回答!!!!!!",
+"MsgId": 6541725832113105960
+}
+
+2018-04-07 23:17:17o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:17:17下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:啊,菲菲如果打扰到你了,你可以叫我不要说话的嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:17:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114244,
+"MsgType": "text",
+"Content": "滚",
+"MsgId": 6541725866472844334
+}
+
+2018-04-07 23:17:24o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:17:25下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:老大!小的错了~,,::>_<::   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:17:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114258,
+"MsgType": "text",
+"Content": "不要说话",
+"MsgId": 6541725926602386491
+}
+
+2018-04-07 23:17:38o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:17:39下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:菲菲说话不喜欢拐弯抹角的,那多累人呀   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:17:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114266,
+"MsgType": "text",
+"Content": "我爱你",
+"MsgId": 6541725960962124864
+}
+
+2018-04-07 23:17:47o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:17:47下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:小贱老公、我好爱你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:17:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114274,
+"MsgType": "text",
+"Content": "/::)",
+"MsgId": 6541725995321863239
+}
+
+2018-04-07 23:17:54o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:17:55下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:多少   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114280,
+"MsgType": "text",
+"Content": "/::B/::B/::B/::B",
+"MsgId": 6541726021091667025
+}
+
+2018-04-07 23:18:01o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:01下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:cccc   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114288,
+"MsgType": "text",
+"Content": "宝宝",
+"MsgId": 6541726055451405404
+}
+
+2018-04-07 23:18:08o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:08下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:大好人一个   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114294,
+"MsgType": "text",
+"Content": "宝贝",
+"MsgId": 6541726081221209190
+}
+
+2018-04-07 23:18:14o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:15下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:叫我么?咋变成你的宝贝了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114302,
+"MsgType": "text",
+"Content": "是啊",
+"MsgId": 6541726115580947566
+}
+
+2018-04-07 23:18:22o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:23下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:知道就好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:30{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114310,
+"MsgType": "text",
+"Content": "去你妈的",
+"MsgId": 6541726149940685943
+}
+
+2018-04-07 23:18:30o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:31下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:大哥,买斤素质填补一下你猥琐的大脑!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:18:45{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114325,
+"MsgType": "text",
+"Content": "日你大爷",
+"MsgId": 6541726214365195388
+}
+
+2018-04-07 23:18:45o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:18:46下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:别在我面前爆粗口,行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114346,
+"MsgType": "text",
+"Content": "好你毛线",
+"MsgId": 6541726304559508617
+}
+
+2018-04-07 23:19:07o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:19:07下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:你妹   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114359,
+"MsgType": "text",
+"Content": "你姐",
+"MsgId": 6541726360394083477
+}
+
+2018-04-07 23:19:19o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:19:20下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:菲菲怎么会有亲人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114367,
+"MsgType": "text",
+"Content": "我不是吗",
+"MsgId": 6541726394753821856
+}
+
+2018-04-07 23:19:28o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:19:28下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:那是?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114373,
+"MsgType": "text",
+"Content": "你说呢",
+"MsgId": 6541726420523625641
+}
+
+2018-04-07 23:19:34o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:19:34下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:嗯!真要听菲菲说的话,让我想想...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:45{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114385,
+"MsgType": "text",
+"Content": "像个头",
+"MsgId": 6541726472063233202
+}
+
+2018-04-07 23:19:45o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:19:46下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:现在找个头像,比找个对象还难   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:19:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114399,
+"MsgType": "text",
+"Content": "你是谁",
+"MsgId": 6541726532192775351
+}
+
+2018-04-07 23:19:59o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:00下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:我是毛驴   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114409,
+"MsgType": "text",
+"Content": "我是谁",
+"MsgId": 6541726575142448317
+}
+
+2018-04-07 23:20:10o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:10下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:韩乾坤   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114417,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6541726609502186694
+}
+
+2018-04-07 23:20:18o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:18下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:没啥...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114425,
+"MsgType": "text",
+"Content": "没你妈逼",
+"MsgId": 6541726643861925068
+}
+
+2018-04-07 23:20:26o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:26下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:做个文明人,OK?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114433,
+"MsgType": "text",
+"Content": "我靠",
+"MsgId": 6541726678221663446
+}
+
+2018-04-07 23:20:33o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:34下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:别在我面前爆粗口,行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114439,
+"MsgType": "text",
+"Content": "不行",
+"MsgId": 6541726703991467231
+}
+
+2018-04-07 23:20:40o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:40下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:为什么,小气   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114447,
+"MsgType": "text",
+"Content": "就是",
+"MsgId": 6541726738351205605
+}
+
+2018-04-07 23:20:47o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:48下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:呵呵,嗯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:20:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114458,
+"MsgType": "text",
+"Content": "无奈",
+"MsgId": 6541726785595845867
+}
+
+2018-04-07 23:20:59o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:20:59下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:怎么了嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:03{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114463,
+"MsgType": "text",
+"Content": "是",
+"MsgId": 6541726807070682352
+}
+
+2018-04-07 23:21:03o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:04下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:呵呵,嗯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114467,
+"MsgType": "text",
+"Content": "这",
+"MsgId": 6541726824250551546
+}
+
+2018-04-07 23:21:07o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:08下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:这?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114473,
+"MsgType": "text",
+"Content": "呵呵",
+"MsgId": 6541726850020355326
+}
+
+2018-04-07 23:21:14o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:15下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:你当我不知道呵呵是去尼玛逼?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:36{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114496,
+"MsgType": "text",
+"Content": "你当我不知道呵呵是去尼玛逼?   ",
+"MsgId": 6541726948804603159
+}
+
+2018-04-07 23:21:36o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:36下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:不知道就算啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114505,
+"MsgType": "text",
+"Content": "排队中,您是第2 个. 先和智能客服聊会. \n智能客服:不知道就算啦   ",
+"MsgId": 6541726987459308826
+}
+
+2018-04-07 23:21:46o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:46下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:听不懂就算啦,只能说你笨   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-07 23:21:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523114518,
+"MsgType": "text",
+"Content": "你个大傻逼",
+"MsgId": 6541727043293883685
+}
+
+2018-04-07 23:21:58o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-07 23:21:59下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:网友,你可别惹我哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:38:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94_EYau3nocPFbsidY3pIjrA","CreateTime":1523147930,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 08:38:51nickname0:
+2018-04-08 08:38:51nickname1:60o6hX94_EYau3nocPFbsidY3pIjrA会员851
+2018-04-08 08:38:51关注下发:{"msgtype":"text","text":{"content":"会员851 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_EYau3nocPFbsidY3pIjrA"}-状态:0
+2018-04-08 08:38:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94_EYau3nocPFbsidY3pIjrA","CreateTime":1523147935,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 08:38:55nickname0:
+2018-04-08 08:38:56nickname1:60o6hX94_EYau3nocPFbsidY3pIjrA会员851
+2018-04-08 08:38:56关注下发:{"msgtype":"text","text":{"content":"会员851 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_EYau3nocPFbsidY3pIjrA"}-状态:0
+2018-04-08 08:38:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147938,
+"MsgType": "text",
+"Content": "/::$",
+"MsgId": 6541870581100928212
+}
+
+2018-04-08 08:38:58o6hX94_EYau3nocPFbsidY3pIjrA:0
+2018-04-08 08:39:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147945,
+"MsgType": "text",
+"Content": "/:8-)/::D/:,@o",
+"MsgId": 6541870611165699287
+}
+
+2018-04-08 08:39:05o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:06下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:无聊!打几个实用点的字出来聊行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:39:13{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147953,
+"MsgType": "text",
+"Content": "/::$/::(/:|-)/::O",
+"MsgId": 6541870645525437660
+}
+
+2018-04-08 08:39:13o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:14下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:我很穷的,不如把你的给我。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:39:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147962,
+"MsgType": "text",
+"Content": "/::B/::@/::@/::P/::D",
+"MsgId": 6541870684180143331
+}
+
+2018-04-08 08:39:22o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:23下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:无聊!打几个实用点的字出来聊行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:39:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147968,
+"MsgType": "text",
+"Content": "/::L",
+"MsgId": 6541870709949947110
+}
+
+2018-04-08 08:39:28o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:29下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:我有温暖的怀抱   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:39:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147972,
+"MsgType": "text",
+"Content": "/::Z",
+"MsgId": 6541870727129816300
+}
+
+2018-04-08 08:39:32o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:33下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:问;zyy爱我么? 答;爱啊,她很爱你,他和程鑫雨是假的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:39:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523147982,
+"MsgType": "text",
+"Content": "/::Z",
+"MsgId": 6541870770079489271
+}
+
+2018-04-08 08:39:42o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:39:43下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:做會計條中女,聽講佢結婚,知唔知邊個咁飢不擇食?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:40:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523148001,
+"MsgType": "text",
+"Content": "/::Z",
+"MsgId": 6541870851683867909
+}
+
+2018-04-08 08:40:01o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:40:02下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:神   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:40:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523148002,
+"MsgType": "text",
+"Content": "/::Z",
+"MsgId": 6541870855978835209
+}
+
+2018-04-08 08:40:02o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:40:03下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:天生就是猴子   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 08:40:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523148035,
+"MsgType": "text",
+"Content": "/::Z",
+"MsgId": 6541870997712755984
+}
+
+2018-04-08 08:40:35o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-08 08:40:36下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:一下   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 12:28:06{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944PRP78GGsQs1yjnQb9uLH4","CreateTime":1523161685,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 12:28:06nickname0:
+2018-04-08 12:28:06nickname1:60o6hX944PRP78GGsQs1yjnQb9uLH4会员852
+2018-04-08 12:28:07关注下发:{"msgtype":"text","text":{"content":"会员852 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944PRP78GGsQs1yjnQb9uLH4"}-状态:0
+2018-04-08 12:28:09{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944PRP78GGsQs1yjnQb9uLH4","CreateTime":1523161689,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 12:28:09nickname0:
+2018-04-08 12:28:09nickname1:60o6hX944PRP78GGsQs1yjnQb9uLH4会员852
+2018-04-08 12:28:09关注下发:{"msgtype":"text","text":{"content":"会员852 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944PRP78GGsQs1yjnQb9uLH4"}-状态:0
+2018-04-08 12:58:24{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941xGsGTNk4AJeWEvtcEsS80","CreateTime":1523163504,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 12:58:24nickname0:
+2018-04-08 12:58:25nickname1:60o6hX941xGsGTNk4AJeWEvtcEsS80会员670
+2018-04-08 12:58:25关注下发:{"msgtype":"text","text":{"content":"会员670 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941xGsGTNk4AJeWEvtcEsS80"}-状态:0
+2018-04-08 12:58:31{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523163511,
+"MsgType": "text",
+"Content": "我^_^",
+"MsgId": 6541937466626635459
+}
+
+2018-04-08 12:58:31o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-08 12:58:32下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:哦了哦了哦了,咱聊点别的吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 12:58:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523163536,
+"MsgType": "text",
+"Content": "到了太子少师弟28关,请君入瓮,这个之后,停滞不前了,不能进行下一关,怎么回事?不要烦人的机器人回答!!!!!!",
+"MsgId": 6541937574000817878
+}
+
+2018-04-08 12:58:56o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-08 12:58:57下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:啊,菲菲如果打扰到你了,你可以叫我不要说话的嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 12:59:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523163543,
+"MsgType": "text",
+"Content": "到了太子少师弟28关,请君入瓮,这个之后,停滞不前了,不能进行下一关,怎么回事?不要烦人的机器人回答!!!!!!",
+"MsgId": 6541937604065588953
+}
+
+2018-04-08 12:59:04o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-08 12:59:04下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:啊,菲菲如果打扰到你了,你可以叫我不要说话的嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-08 14:38:33{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941O-Vo4lPmlOBbLkqxOrdUo","CreateTime":1523169513,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 14:38:33nickname0:
+2018-04-08 14:38:34nickname1:60o6hX941O-Vo4lPmlOBbLkqxOrdUo会员795
+2018-04-08 14:38:34关注下发:{"msgtype":"text","text":{"content":"会员795 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941O-Vo4lPmlOBbLkqxOrdUo"}-状态:0
+2018-04-08 15:08:57{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941O-Vo4lPmlOBbLkqxOrdUo","CreateTime":1523171337,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 15:08:57nickname0:
+2018-04-08 15:08:57nickname1:60o6hX941O-Vo4lPmlOBbLkqxOrdUo会员795
+2018-04-08 15:08:58关注下发:{"msgtype":"text","text":{"content":"会员795 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941O-Vo4lPmlOBbLkqxOrdUo"}-状态:0
+2018-04-08 15:17:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941O-Vo4lPmlOBbLkqxOrdUo","CreateTime":1523171834,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 15:17:14nickname0:
+2018-04-08 15:17:14nickname1:60o6hX941O-Vo4lPmlOBbLkqxOrdUo会员795
+2018-04-08 15:17:14关注下发:{"msgtype":"text","text":{"content":"会员795 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941O-Vo4lPmlOBbLkqxOrdUo"}-状态:0
+2018-04-08 15:28:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946YAKN_KWkyDjdT7igixnu4","CreateTime":1523172525,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 15:28:45nickname0:
+2018-04-08 15:28:45nickname1:60o6hX946YAKN_KWkyDjdT7igixnu4会员853
+2018-04-08 15:28:45关注下发:{"msgtype":"text","text":{"content":"会员853 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946YAKN_KWkyDjdT7igixnu4"}-状态:0
+2018-04-08 17:24:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948_MhKa80ZHuMypqJcKYBMg","CreateTime":1523179464,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 17:24:25nickname0:
+2018-04-08 17:24:25nickname1:60o6hX948_MhKa80ZHuMypqJcKYBMg会员854
+2018-04-08 17:24:25关注下发:{"msgtype":"text","text":{"content":"会员854 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948_MhKa80ZHuMypqJcKYBMg"}-状态:0
+2018-04-08 17:25:41{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9466C_h-mBbxFwgWpfGscS6M","CreateTime":1523179541,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 17:25:41nickname0:
+2018-04-08 17:25:42nickname1:60o6hX9466C_h-mBbxFwgWpfGscS6M会员855
+2018-04-08 17:25:42关注下发:{"msgtype":"text","text":{"content":"会员855 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9466C_h-mBbxFwgWpfGscS6M"}-状态:0
+2018-04-08 18:56:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941xGsGTNk4AJeWEvtcEsS80","CreateTime":1523185010,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 18:56:50nickname0:
+2018-04-08 18:56:50nickname1:60o6hX941xGsGTNk4AJeWEvtcEsS80会员670
+2018-04-08 18:56:51关注下发:{"msgtype":"text","text":{"content":"会员670 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941xGsGTNk4AJeWEvtcEsS80"}-状态:0
+2018-04-08 19:52:23{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wkzsCc8GHtXgii_GoZuBuk","CreateTime":1523188343,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 19:52:23nickname0:
+2018-04-08 19:52:24nickname1:60o6hX94wkzsCc8GHtXgii_GoZuBuk会员130
+2018-04-08 19:52:24关注下发:{"msgtype":"text","text":{"content":"会员130 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wkzsCc8GHtXgii_GoZuBuk"}-状态:0
+2018-04-08 23:06:00{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946YAKN_KWkyDjdT7igixnu4","CreateTime":1523199960,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-08 23:06:01nickname0:
+2018-04-08 23:06:01nickname1:60o6hX946YAKN_KWkyDjdT7igixnu4会员853
+2018-04-08 23:06:01关注下发:{"msgtype":"text","text":{"content":"会员853 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946YAKN_KWkyDjdT7igixnu4"}-状态:0
+2018-04-09 06:03:10{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9466C_h-mBbxFwgWpfGscS6M","CreateTime":1523224990,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 06:03:10nickname0:
+2018-04-09 06:03:11nickname1:60o6hX9466C_h-mBbxFwgWpfGscS6M会员855
+2018-04-09 06:03:11关注下发:{"msgtype":"text","text":{"content":"会员855 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9466C_h-mBbxFwgWpfGscS6M"}-状态:0
+2018-04-09 16:51:24{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943uc0inRZps-Nlh2J-XHURA","CreateTime":1523263884,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 16:51:25nickname0:
+2018-04-09 16:51:25nickname1:60o6hX943uc0inRZps-Nlh2J-XHURA会员856
+2018-04-09 16:51:25关注下发:{"msgtype":"text","text":{"content":"会员856 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943uc0inRZps-Nlh2J-XHURA"}-状态:0
+2018-04-09 19:03:06{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945sYrbOJM8DvpPq5SnrFFIQ","CreateTime":1523271786,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 19:03:06nickname0:
+2018-04-09 19:03:07nickname1:60o6hX945sYrbOJM8DvpPq5SnrFFIQ会员857
+2018-04-09 19:03:07关注下发:{"msgtype":"text","text":{"content":"会员857 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945sYrbOJM8DvpPq5SnrFFIQ"}-状态:0
+2018-04-09 19:17:19{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9400mpktge4gsJBv1QanlAS0","CreateTime":1523272639,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 19:17:19nickname0:
+2018-04-09 19:17:20nickname1:60o6hX9400mpktge4gsJBv1QanlAS0会员721
+2018-04-09 19:17:20关注下发:{"msgtype":"text","text":{"content":"会员721 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9400mpktge4gsJBv1QanlAS0"}-状态:0
+2018-04-09 19:17:23{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9400mpktge4gsJBv1QanlAS0","CreateTime":1523272643,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 19:17:23nickname0:
+2018-04-09 19:17:24nickname1:60o6hX9400mpktge4gsJBv1QanlAS0会员721
+2018-04-09 19:17:24关注下发:{"msgtype":"text","text":{"content":"会员721 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9400mpktge4gsJBv1QanlAS0"}-状态:0
+2018-04-09 19:17:27{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9400mpktge4gsJBv1QanlAS0","CreateTime":1523272647,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 19:17:27nickname0:
+2018-04-09 19:17:27nickname1:60o6hX9400mpktge4gsJBv1QanlAS0会员721
+2018-04-09 19:17:27关注下发:{"msgtype":"text","text":{"content":"会员721 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9400mpktge4gsJBv1QanlAS0"}-状态:0
+2018-04-09 19:17:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9400mpktge4gsJBv1QanlAS0","CreateTime":1523272653,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 19:17:34nickname0:
+2018-04-09 19:17:34nickname1:60o6hX9400mpktge4gsJBv1QanlAS0会员721
+2018-04-09 19:17:34关注下发:{"msgtype":"text","text":{"content":"会员721 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9400mpktge4gsJBv1QanlAS0"}-状态:0
+2018-04-09 21:28:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280513,
+"MsgType": "text",
+"Content": "一半",
+"MsgId": 6542439986390266760
+}
+
+2018-04-09 21:28:33o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:28:34下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:我lor,王偉令   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:28:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280518,
+"MsgType": "text",
+"Content": "下班",
+"MsgId": 6542440007865103242
+}
+
+2018-04-09 21:28:38o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:28:39下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:一直都在   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:28:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280523,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440029339939731
+}
+
+2018-04-09 21:28:43o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:28:44下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:把话说详细点,发个“版”能说明什么   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:28:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280529,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440055109743511
+}
+
+2018-04-09 21:28:49o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:28:50下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:把话说详细点,发个“版”能说明什么   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:28:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280534,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440076584579993
+}
+
+2018-04-09 21:28:55o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:28:55下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:你说个“版”是什么意思   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280540,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440102354383771
+}
+
+2018-04-09 21:29:01o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:01下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:“版”是啥意思?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280550,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440145304056733
+}
+
+2018-04-09 21:29:10o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:10下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:你说个“版”是什么意思   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280558,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440179663795103
+}
+
+2018-04-09 21:29:18o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:18下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:你说个“版”是什么意思   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280562,
+"MsgType": "text",
+"Content": "是",
+"MsgId": 6542440196843664289
+}
+
+2018-04-09 21:29:22o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:23下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:呵呵,嗯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280566,
+"MsgType": "text",
+"Content": "是",
+"MsgId": 6542440214023533475
+}
+
+2018-04-09 21:29:27o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:27下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:我   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:30{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280570,
+"MsgType": "text",
+"Content": "是",
+"MsgId": 6542440231203402662
+}
+
+2018-04-09 21:29:30o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:31下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:嗯哈   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280574,
+"MsgType": "text",
+"Content": "是",
+"MsgId": 6542440248383271851
+}
+
+2018-04-09 21:29:34o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:35下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:嗯哈   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:29:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_EYau3nocPFbsidY3pIjrA",
+"CreateTime": 1523280577,
+"MsgType": "text",
+"Content": "版",
+"MsgId": 6542440261268173741
+}
+
+2018-04-09 21:29:37o6hX94_EYau3nocPFbsidY3pIjrA:16
+2018-04-09 21:29:38下发:{ "touser":"o6hX94_EYau3nocPFbsidY3pIjrA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第16 个. 先和智能客服聊会. \n智能客服:“版”是啥意思?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-09 21:53:46{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523282026,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 21:53:46nickname0:
+2018-04-09 21:53:47nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-09 21:53:47关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:0
+2018-04-09 21:53:48{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523282027,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 21:53:48nickname0:
+2018-04-09 21:53:48nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-09 21:53:48关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:0
+2018-04-09 21:53:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523282030,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 21:53:50nickname0:
+2018-04-09 21:53:50nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-09 21:53:50关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:0
+2018-04-09 22:02:30{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9412XjVsHfoF5Sl3t7M8WxXE","CreateTime":1523282550,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 22:02:30nickname0:
+2018-04-09 22:02:31nickname1:60o6hX9412XjVsHfoF5Sl3t7M8WxXE会员837
+2018-04-09 22:02:31关注下发:{"msgtype":"text","text":{"content":"会员837 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9412XjVsHfoF5Sl3t7M8WxXE"}-状态:0
+2018-04-09 23:56:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942hSEjQpKZDS3k8oVSn-VAM","CreateTime":1523289410,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-09 23:56:51nickname0:
+2018-04-09 23:56:51nickname1:60o6hX942hSEjQpKZDS3k8oVSn-VAM会员859
+2018-04-09 23:56:51关注下发:{"msgtype":"text","text":{"content":"会员859 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942hSEjQpKZDS3k8oVSn-VAM"}-状态:0
+2018-04-10 11:26:56{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523330816,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 11:26:56nickname0:
+2018-04-10 11:26:56nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-10 11:26:57关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:0
+2018-04-10 12:13:37{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944sKltc-6Jklfef5xrUVfZ8","CreateTime":1523333617,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 12:13:37nickname0:
+2018-04-10 12:13:37nickname1:60o6hX944sKltc-6Jklfef5xrUVfZ8会员860
+2018-04-10 12:13:37关注下发:{"msgtype":"text","text":{"content":"会员860 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944sKltc-6Jklfef5xrUVfZ8"}-状态:0
+2018-04-10 14:55:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946YAKN_KWkyDjdT7igixnu4","CreateTime":1523343355,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 14:55:55nickname0:
+2018-04-10 14:55:56nickname1:60o6hX946YAKN_KWkyDjdT7igixnu4会员853
+2018-04-10 14:55:56关注下发:{"msgtype":"text","text":{"content":"会员853 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946YAKN_KWkyDjdT7igixnu4"}-状态:0
+2018-04-10 22:56:15{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94-ywwD5MJ4s9O4ZlYmbVBR8","CreateTime":1523372175,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 22:56:16nickname0:
+2018-04-10 22:56:16nickname1:60o6hX94-ywwD5MJ4s9O4ZlYmbVBR8会员665
+2018-04-10 22:56:16关注下发:{"msgtype":"text","text":{"content":"会员665 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94-ywwD5MJ4s9O4ZlYmbVBR8"}-状态:45047
+2018-04-10 23:39:06{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zWvA-T5xNeLQkcTydT1bKE","CreateTime":1523374746,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 23:39:06nickname0:
+2018-04-10 23:39:07nickname1:60o6hX94zWvA-T5xNeLQkcTydT1bKE会员861
+2018-04-10 23:39:07关注下发:{"msgtype":"text","text":{"content":"会员861 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zWvA-T5xNeLQkcTydT1bKE"}-状态:45047
+2018-04-10 23:39:32{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zWvA-T5xNeLQkcTydT1bKE","CreateTime":1523374771,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-10 23:39:32nickname0:
+2018-04-10 23:39:32nickname1:60o6hX94zWvA-T5xNeLQkcTydT1bKE会员861
+2018-04-10 23:39:32关注下发:{"msgtype":"text","text":{"content":"会员861 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zWvA-T5xNeLQkcTydT1bKE"}-状态:45047
+2018-04-11 15:58:53{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94--QFokQKCbVK4stN-TAfTE","CreateTime":1523433533,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 15:58:53nickname0:
+2018-04-11 15:58:53nickname1:60o6hX94--QFokQKCbVK4stN-TAfTE会员361
+2018-04-11 15:58:53关注下发:{"msgtype":"text","text":{"content":"会员361 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94--QFokQKCbVK4stN-TAfTE"}-状态:45047
+2018-04-11 19:38:13{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941zU3CM0QbKZMMOZqjfb29I","CreateTime":1523446693,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 19:38:13nickname0:
+2018-04-11 19:38:14nickname1:60o6hX941zU3CM0QbKZMMOZqjfb29I会员828
+2018-04-11 19:38:14关注下发:{"msgtype":"text","text":{"content":"会员828 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941zU3CM0QbKZMMOZqjfb29I"}-状态:45047
+2018-04-11 20:11:57{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948kZY5i9jY_z6tH9y4gPqik","CreateTime":1523448717,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 20:11:57nickname0:
+2018-04-11 20:11:58nickname1:60o6hX948kZY5i9jY_z6tH9y4gPqik会员862
+2018-04-11 20:11:58关注下发:{"msgtype":"text","text":{"content":"会员862 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948kZY5i9jY_z6tH9y4gPqik"}-状态:45047
+2018-04-11 20:17:12{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94_oYVZhKJX6ox12dhL8AaBA","CreateTime":1523449032,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 20:17:12nickname0:
+2018-04-11 20:17:12nickname1:60o6hX94_oYVZhKJX6ox12dhL8AaBA会员238
+2018-04-11 20:17:13关注下发:{"msgtype":"text","text":{"content":"会员238 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_oYVZhKJX6ox12dhL8AaBA"}-状态:45047
+2018-04-11 21:48:49{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946dosTvLULNQH9RhsqO8fjM","CreateTime":1523454529,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 21:48:49nickname0:
+2018-04-11 21:48:49nickname1:60o6hX946dosTvLULNQH9RhsqO8fjM会员345
+2018-04-11 21:48:49关注下发:{"msgtype":"text","text":{"content":"会员345 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946dosTvLULNQH9RhsqO8fjM"}-状态:45047
+2018-04-11 22:32:19{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941zU3CM0QbKZMMOZqjfb29I","CreateTime":1523457139,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 22:32:19nickname0:
+2018-04-11 22:32:19nickname1:60o6hX941zU3CM0QbKZMMOZqjfb29I会员828
+2018-04-11 22:32:20关注下发:{"msgtype":"text","text":{"content":"会员828 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941zU3CM0QbKZMMOZqjfb29I"}-状态:45047
+2018-04-11 22:32:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941zU3CM0QbKZMMOZqjfb29I","CreateTime":1523457165,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-11 22:32:45nickname0:
+2018-04-11 22:32:45nickname1:60o6hX941zU3CM0QbKZMMOZqjfb29I会员828
+2018-04-11 22:32:46关注下发:{"msgtype":"text","text":{"content":"会员828 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941zU3CM0QbKZMMOZqjfb29I"}-状态:45047
+2018-04-12 10:10:12{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943HkMxhI-Uk-O89jeuMfUo4","CreateTime":1523499012,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 10:10:12nickname0:
+2018-04-12 10:10:13nickname1:60o6hX943HkMxhI-Uk-O89jeuMfUo4会员863
+2018-04-12 10:10:13关注下发:{"msgtype":"text","text":{"content":"会员863 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943HkMxhI-Uk-O89jeuMfUo4"}-状态:45047
+2018-04-12 10:10:29{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943HkMxhI-Uk-O89jeuMfUo4","CreateTime":1523499029,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 10:10:29nickname0:
+2018-04-12 10:10:29nickname1:60o6hX943HkMxhI-Uk-O89jeuMfUo4会员863
+2018-04-12 10:10:30关注下发:{"msgtype":"text","text":{"content":"会员863 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943HkMxhI-Uk-O89jeuMfUo4"}-状态:45047
+2018-04-12 10:10:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943HkMxhI-Uk-O89jeuMfUo4",
+"CreateTime": 1523499047,
+"MsgType": "text",
+"Content": "提示没有字显示?",
+"MsgId": 6543378582773492157
+}
+
+2018-04-12 10:10:48o6hX943HkMxhI-Uk-O89jeuMfUo4:0
+2018-04-12 14:10:15{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523513414,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 14:10:15nickname0:
+2018-04-12 14:10:15nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-12 14:10:15关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:45047
+2018-04-12 14:38:00{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946ycVbOwCJw3tbfcy5nZxKY","CreateTime":1523515079,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 14:38:00nickname0:
+2018-04-12 14:38:00nickname1:60o6hX946ycVbOwCJw3tbfcy5nZxKY会员864
+2018-04-12 14:38:00关注下发:{"msgtype":"text","text":{"content":"会员864 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946ycVbOwCJw3tbfcy5nZxKY"}-状态:45047
+2018-04-12 19:00:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530841,
+"MsgType": "text",
+"Content": "排队中,您是第18 个. 先和智能客服聊会. \n智能客服:他有毛病   ",
+"MsgId": 6543515136963708147
+}
+
+2018-04-12 19:00:41o6hX94xq-GakQzkqerF_z6-6-JBk:0
+2018-04-12 19:00:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530854,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6543515192798282999
+}
+
+2018-04-12 19:00:55关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xq-GakQzkqerF_z6-6-JBk"}-状态:0
+2018-04-12 19:01:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530864,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6543515235747955962
+}
+
+2018-04-12 19:01:04o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:01:05下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:1,1   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:01:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530882,
+"MsgType": "text",
+"Content": "13843813438",
+"MsgId": 6543515313057367299
+}
+
+2018-04-12 19:01:22o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:01:23下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:号码:13843813438
+归属:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:02:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530924,
+"MsgType": "text",
+"Content": "你三八是三八你爸是三八",
+"MsgId": 6543515493445993742
+}
+
+2018-04-12 19:02:05o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:02:05下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:菲菲怎么会有亲人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:02:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530939,
+"MsgType": "text",
+"Content": "排队中,您是第18 个. 先和智能客服聊会. \n智能客服:菲菲怎么会有亲人   ",
+"MsgId": 6543515557870503189
+}
+
+2018-04-12 19:02:19o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:02:20下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:{face:51}话说我还是比较聪明的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:02:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530957,
+"MsgType": "text",
+"Content": "排队中,您是第18 个. 先和智能客服聊会. \n智能客服:{face:51}话说我还是比较聪明的   ",
+"MsgId": 6543515635179914525
+}
+
+2018-04-12 19:02:37o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:02:38下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:你一开口,我就知道结果,你就不能搞点新创意出来嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:02:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530976,
+"MsgType": "text",
+"Content": "不能",
+"MsgId": 6543515716784293160
+}
+
+2018-04-12 19:02:56o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:02:57下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:为什么,小气   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:03:15{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523530995,
+"MsgType": "text",
+"Content": "垃圾",
+"MsgId": 6543515798388671789
+}
+
+2018-04-12 19:03:15o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:03:16下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:群主比我更加垃圾   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:03:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531017,
+"MsgType": "text",
+"Content": "渣渣",
+"MsgId": 6543515892877952308
+}
+
+2018-04-12 19:03:37o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:03:38下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:无聊的人说无聊的话   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:04:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531050,
+"MsgType": "text",
+"Content": "就是你啊。",
+"MsgId": 6543516034611873079
+}
+
+2018-04-12 19:04:10o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:04:11下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:哦,那行   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:04:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531088,
+"MsgType": "text",
+"Content": "拍拍拍",
+"MsgId": 6543516197820630333
+}
+
+2018-04-12 19:04:48o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:04:49下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:康輔社!!!!!!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:05:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531154,
+"MsgType": "text",
+"Content": "回復i好的活動卡背帶褲問哈褲襪不打擊我v金額給忘記我是呀等哈金額u哈哈爹火舞福娃刷卡手機多大個哈哈哈忘記司機搭嘎u我好的很認可i好大V孤獨嘿嘿惡鬼等哈等哈滴滴答答會很低會死是給娃i就登記刷卡v就刷卡看哈DVD卡卡是吧剛我覺得呵呵就給我激將法回答哦哦時擦忘記看刷卡屎粑粑山卡卡好吧睡吧好勾搭回答故意u我攻擊回答估計開挖機很積極手機是辦卡就分分合合肯德基額呵呵G8姑姑估計古法發哈剛發調壓閥染髮防護有呀好尬有呀尷尬一度發芽遠古咕咕咕發廣告",
+"MsgId": 6543516481288471881
+}
+
+2018-04-12 19:05:54o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:05:55下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:06:25{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531185,
+"MsgType": "text",
+"Content": "然后呢",
+"MsgId": 6543516614432458063
+}
+
+2018-04-12 19:06:25o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:06:26下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:没有然后了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:06:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531197,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516665972065621
+}
+
+2018-04-12 19:06:37o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:06:37下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:你自己想呗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:06:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531207,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516708921738585
+}
+
+2018-04-12 19:06:47o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:06:48下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:没什么为不为的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:06:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531216,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516747576444252
+}
+
+2018-04-12 19:06:56o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:06:56下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:因为我喜欢啊!!。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531223,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516777641215328
+}
+
+2018-04-12 19:07:04o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:04下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:因为...算了,不说了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:12{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531231,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516812000953698
+}
+
+2018-04-12 19:07:12o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:12下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:因为我喜欢啊!!。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531239,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516846360692072
+}
+
+2018-04-12 19:07:20o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:20下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:没啥...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531252,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516902195266925
+}
+
+2018-04-12 19:07:32o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:33下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:不为什么...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531262,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543516945144939887
+}
+
+2018-04-12 19:07:42o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:43下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:你自己想呗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:07:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531272,
+"MsgType": "text",
+"Content": "凭什么",
+"MsgId": 6543516988094612849
+}
+
+2018-04-12 19:07:53o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:07:53下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:你叫蛋蛋   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:08:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xq-GakQzkqerF_z6-6-JBk",
+"CreateTime": 1523531280,
+"MsgType": "text",
+"Content": "为什么",
+"MsgId": 6543517022454351222
+}
+
+2018-04-12 19:08:01o6hX94xq-GakQzkqerF_z6-6-JBk:18
+2018-04-12 19:08:01下发:{ "touser":"o6hX94xq-GakQzkqerF_z6-6-JBk",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第18 个. 先和智能客服聊会. \n智能客服:没啥...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 19:45:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wKpEAot9RlP1kdn7pyKhIM","CreateTime":1523533550,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 19:45:50nickname0:
+2018-04-12 19:45:50nickname1:60o6hX94wKpEAot9RlP1kdn7pyKhIM会员252
+2018-04-12 19:45:51关注下发:{"msgtype":"text","text":{"content":"会员252 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wKpEAot9RlP1kdn7pyKhIM"}-状态:45047
+2018-04-12 20:24:57{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94x0thLmbigS-0Ubvf8Jm9Xk","CreateTime":1523535897,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 20:24:57nickname0:
+2018-04-12 20:24:57nickname1:60o6hX94x0thLmbigS-0Ubvf8Jm9Xk会员78
+2018-04-12 20:24:57关注下发:{"msgtype":"text","text":{"content":"会员78 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94x0thLmbigS-0Ubvf8Jm9Xk"}-状态:45047
+2018-04-12 21:07:38{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943HkMxhI-Uk-O89jeuMfUo4","CreateTime":1523538458,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 21:07:38nickname0:
+2018-04-12 21:07:39nickname1:60o6hX943HkMxhI-Uk-O89jeuMfUo4会员863
+2018-04-12 21:07:39关注下发:{"msgtype":"text","text":{"content":"会员863 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943HkMxhI-Uk-O89jeuMfUo4"}-状态:0
+2018-04-12 21:22:49{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947NiEUM_WWFJZQUQln-trbo","CreateTime":1523539369,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 21:22:49nickname0:
+2018-04-12 21:22:50nickname1:60o6hX947NiEUM_WWFJZQUQln-trbo会员652
+2018-04-12 21:22:50关注下发:{"msgtype":"text","text":{"content":"会员652 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947NiEUM_WWFJZQUQln-trbo"}-状态:45047
+2018-04-12 21:28:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948f9Ohpc7Sp7vBVxT5SfsCA","CreateTime":1523539708,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 21:28:28nickname0:
+2018-04-12 21:28:28nickname1:60o6hX948f9Ohpc7Sp7vBVxT5SfsCA会员389
+2018-04-12 21:28:28关注下发:{"msgtype":"text","text":{"content":"会员389 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948f9Ohpc7Sp7vBVxT5SfsCA"}-状态:45047
+2018-04-12 22:56:54{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941xGsGTNk4AJeWEvtcEsS80","CreateTime":1523545013,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 22:56:54nickname0:
+2018-04-12 22:56:54nickname1:60o6hX941xGsGTNk4AJeWEvtcEsS80会员670
+2018-04-12 22:56:54关注下发:{"msgtype":"text","text":{"content":"会员670 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941xGsGTNk4AJeWEvtcEsS80"}-状态:45047
+2018-04-12 22:57:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523545022,
+"MsgType": "text",
+"Content": "到了太子少师弟28关,请君入瓮,这个之后,停滞不前了,不能进行下一关,怎么回事?不要烦人的机器人回答!!!!!!",
+"MsgId": 6543576043894936029
+}
+
+2018-04-12 22:57:02o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-12 22:57:03下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:啊,菲菲如果打扰到你了,你可以叫我不要说话的嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 22:57:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941xGsGTNk4AJeWEvtcEsS80",
+"CreateTime": 1523545027,
+"MsgType": "text",
+"Content": "到了太子少师弟28关,请君入瓮,这个之后,停滞不前了,不能进行下一关,怎么回事?不要烦人的机器人回答!!!!!!",
+"MsgId": 6543576065369772515
+}
+
+2018-04-12 22:57:07o6hX941xGsGTNk4AJeWEvtcEsS80:2
+2018-04-12 22:57:08下发:{ "touser":"o6hX941xGsGTNk4AJeWEvtcEsS80",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第2 个. 先和智能客服聊会. \n智能客服:啊,菲菲如果打扰到你了,你可以叫我不要说话的嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-12 23:39:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9442xcj_sfsbn8hiBNNg2Mf8","CreateTime":1523547574,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-12 23:39:34nickname0:
+2018-04-12 23:39:35nickname1:60o6hX9442xcj_sfsbn8hiBNNg2Mf8会员865
+2018-04-12 23:39:35关注下发:{"msgtype":"text","text":{"content":"会员865 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9442xcj_sfsbn8hiBNNg2Mf8"}-状态:45047
+2018-04-13 06:43:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949rkuf5CP11tLZBxZBOieKI","CreateTime":1523573000,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 06:43:21nickname0:
+2018-04-13 06:43:21nickname1:60o6hX949rkuf5CP11tLZBxZBOieKI会员866
+2018-04-13 06:43:21关注下发:{"msgtype":"text","text":{"content":"会员866 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:45047
+2018-04-13 08:46:56{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944jKYd-jvcJOh0SuLMOWMrk","CreateTime":1523580416,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 08:46:56nickname0:
+2018-04-13 08:46:56nickname1:60o6hX944jKYd-jvcJOh0SuLMOWMrk会员858
+2018-04-13 08:46:57关注下发:{"msgtype":"text","text":{"content":"会员858 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944jKYd-jvcJOh0SuLMOWMrk"}-状态:45047
+2018-04-13 10:37:09{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xmx5GzGYPKBO9k0CAUuNc4","CreateTime":1523587029,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 10:37:09nickname0:
+2018-04-13 15:57:21{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947djp6gAXqqDLcAp_zGBNS8","CreateTime":1523606241,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 15:57:22nickname0:
+2018-04-13 15:57:22nickname1:60o6hX947djp6gAXqqDLcAp_zGBNS8会员867
+2018-04-13 15:57:22关注下发:{"msgtype":"text","text":{"content":"会员867 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947djp6gAXqqDLcAp_zGBNS8"}-状态:45047
+2018-04-13 16:43:47{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941brsD3jGtLA5ks64AlatDk","CreateTime":1523609027,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 16:43:47nickname0:
+2018-04-13 16:43:48nickname1:60o6hX941brsD3jGtLA5ks64AlatDk会员868
+2018-04-13 16:43:48关注下发:{"msgtype":"text","text":{"content":"会员868 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941brsD3jGtLA5ks64AlatDk"}-状态:45047
+2018-04-13 16:44:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945YgmMQLdXcRhCOSlZCCrG4","CreateTime":1523609054,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 16:44:14nickname0:
+2018-04-13 16:44:14nickname1:60o6hX945YgmMQLdXcRhCOSlZCCrG4会员869
+2018-04-13 16:44:14关注下发:{"msgtype":"text","text":{"content":"会员869 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945YgmMQLdXcRhCOSlZCCrG4"}-状态:45047
+2018-04-13 22:01:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wT-ToNwDhpRaCllLoppUao","CreateTime":1523628111,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 22:01:51nickname0:
+2018-04-13 22:01:51nickname1:60o6hX94wT-ToNwDhpRaCllLoppUao会员870
+2018-04-13 22:01:52关注下发:{"msgtype":"text","text":{"content":"会员870 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wT-ToNwDhpRaCllLoppUao"}-状态:45047
+2018-04-13 23:12:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949rkuf5CP11tLZBxZBOieKI","CreateTime":1523632371,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-13 23:12:51nickname0:
+2018-04-13 23:12:51nickname1:60o6hX949rkuf5CP11tLZBxZBOieKI会员866
+2018-04-13 23:12:51关注下发:{"msgtype":"text","text":{"content":"会员866 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:45047
+2018-04-13 23:13:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632396,
+"MsgType": "text",
+"Content": "进士第四十五关是什么",
+"MsgId": 6543951312367477818
+}
+
+2018-04-13 23:13:16o6hX949rkuf5CP11tLZBxZBOieKI:0
+2018-04-13 23:13:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632431,
+"MsgType": "text",
+"Content": "智能聊天机器人",
+"MsgId": 6543951462691333185
+}
+
+2018-04-13 23:13:51o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-13 23:13:52下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:不要太小看菲菲了哦,回复都是经过大脑思考的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-13 23:14:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632441,
+"MsgType": "text",
+"Content": "45",
+"MsgId": 6543951505641006149
+}
+
+2018-04-13 23:14:02o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-13 23:14:02下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:把话说详细点,发个“45”能说明什么   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-13 23:14:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632463,
+"MsgType": "text",
+"Content": "进士45关是什么",
+"MsgId": 6543951600130286667
+}
+
+2018-04-13 23:14:24o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-13 23:14:24下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:我不是大便,我的粉丝也不是苍蝇   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-13 23:14:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632482,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6543951681734665295
+}
+
+2018-04-13 23:14:42关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:0
+2018-04-13 23:14:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632488,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6543951707504469074
+}
+
+2018-04-13 23:14:48o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-13 23:14:49下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:1,1   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-13 23:21:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632884,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6543953408311518337
+}
+
+2018-04-13 23:21:24关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:0
+2018-04-13 23:21:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523632888,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6543953425491387525
+}
+
+2018-04-13 23:21:28o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-13 23:21:29下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:1,1   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-14 06:58:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523660308,
+"MsgType": "text",
+"Content": "45",
+"MsgId": 6544071193494647731
+}
+
+2018-04-14 06:58:29o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-14 06:58:29下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:45?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-14 11:27:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949yUNa9LgNKhg5KQKgnLVpg","CreateTime":1523676448,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 11:27:28nickname0:
+2018-04-14 11:27:28nickname1:60o6hX949yUNa9LgNKhg5KQKgnLVpg会员499
+2018-04-14 11:27:29关注下发:{"msgtype":"text","text":{"content":"会员499 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949yUNa9LgNKhg5KQKgnLVpg"}-状态:45047
+2018-04-14 12:44:58{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9432w5o2oHQIc_PLiCvWCIwY","CreateTime":1523681098,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 12:44:58nickname0:
+2018-04-14 12:44:59nickname1:60o6hX9432w5o2oHQIc_PLiCvWCIwY会员765
+2018-04-14 12:44:59关注下发:{"msgtype":"text","text":{"content":"会员765 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9432w5o2oHQIc_PLiCvWCIwY"}-状态:45047
+2018-04-14 13:25:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941XO2x6oxkRS6PslzMrLc2U","CreateTime":1523683550,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 13:25:50nickname0:
+2018-04-14 13:25:51nickname1:60o6hX941XO2x6oxkRS6PslzMrLc2U会员871
+2018-04-14 13:25:51关注下发:{"msgtype":"text","text":{"content":"会员871 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941XO2x6oxkRS6PslzMrLc2U"}-状态:45047
+2018-04-14 14:14:37{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941XO2x6oxkRS6PslzMrLc2U","CreateTime":1523686477,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 14:14:37nickname0:
+2018-04-14 14:14:37nickname1:60o6hX941XO2x6oxkRS6PslzMrLc2U会员871
+2018-04-14 14:14:37关注下发:{"msgtype":"text","text":{"content":"会员871 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941XO2x6oxkRS6PslzMrLc2U"}-状态:45047
+2018-04-14 14:15:19{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941XO2x6oxkRS6PslzMrLc2U","CreateTime":1523686519,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 14:15:19nickname0:
+2018-04-14 14:15:20nickname1:60o6hX941XO2x6oxkRS6PslzMrLc2U会员871
+2018-04-14 14:15:20关注下发:{"msgtype":"text","text":{"content":"会员871 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941XO2x6oxkRS6PslzMrLc2U"}-状态:45047
+2018-04-14 14:15:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX941XO2x6oxkRS6PslzMrLc2U",
+"CreateTime": 1523686537,
+"MsgType": "text",
+"Content": "那个进士第45关是什么?",
+"MsgId": 6544183846191861233
+}
+
+2018-04-14 14:15:37o6hX941XO2x6oxkRS6PslzMrLc2U:0
+2018-04-14 19:12:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940-kKmHBejKzrebtWosQXPo","CreateTime":1523704334,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 19:12:14nickname0:
+2018-04-14 19:12:14nickname1:60o6hX940-kKmHBejKzrebtWosQXPo会员872
+2018-04-14 19:12:15关注下发:{"msgtype":"text","text":{"content":"会员872 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940-kKmHBejKzrebtWosQXPo"}-状态:45047
+2018-04-14 21:05:02{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949rkuf5CP11tLZBxZBOieKI","CreateTime":1523711102,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 21:05:02nickname0:
+2018-04-14 21:05:02nickname1:60o6hX949rkuf5CP11tLZBxZBOieKI会员866
+2018-04-14 21:05:02关注下发:{"msgtype":"text","text":{"content":"会员866 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:0
+2018-04-14 21:05:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523711107,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6544289373538328460
+}
+
+2018-04-14 21:05:07关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949rkuf5CP11tLZBxZBOieKI"}-状态:0
+2018-04-14 21:05:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949rkuf5CP11tLZBxZBOieKI",
+"CreateTime": 1523711110,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6544289386423230350
+}
+
+2018-04-14 21:05:10o6hX949rkuf5CP11tLZBxZBOieKI:19
+2018-04-14 21:05:11下发:{ "touser":"o6hX949rkuf5CP11tLZBxZBOieKI",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第19 个. 先和智能客服聊会. \n智能客服:1,1   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-14 22:30:48{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zTiQT1sYGGtSHRVC6xZKU8","CreateTime":1523716248,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 22:30:49nickname0:
+2018-04-14 22:30:49nickname1:60o6hX94zTiQT1sYGGtSHRVC6xZKU8会员873
+2018-04-14 22:30:49关注下发:{"msgtype":"text","text":{"content":"会员873 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zTiQT1sYGGtSHRVC6xZKU8"}-状态:45047
+2018-04-14 22:42:36{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zTiQT1sYGGtSHRVC6xZKU8","CreateTime":1523716956,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-14 22:42:36nickname0:
+2018-04-14 22:42:37nickname1:60o6hX94zTiQT1sYGGtSHRVC6xZKU8会员873
+2018-04-14 22:42:37关注下发:{"msgtype":"text","text":{"content":"会员873 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zTiQT1sYGGtSHRVC6xZKU8"}-状态:45047
+2018-04-15 12:25:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942dcxQKRIF7kFPpKmCXCXE8","CreateTime":1523766334,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 12:25:34nickname0:
+2018-04-15 12:25:35nickname1:60o6hX942dcxQKRIF7kFPpKmCXCXE8会员874
+2018-04-15 12:25:35关注下发:{"msgtype":"text","text":{"content":"会员874 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942dcxQKRIF7kFPpKmCXCXE8"}-状态:45047
+2018-04-15 12:29:53{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942dcxQKRIF7kFPpKmCXCXE8","CreateTime":1523766593,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 12:29:53nickname0:
+2018-04-15 12:29:53nickname1:60o6hX942dcxQKRIF7kFPpKmCXCXE8会员874
+2018-04-15 12:29:53关注下发:{"msgtype":"text","text":{"content":"会员874 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942dcxQKRIF7kFPpKmCXCXE8"}-状态:45047
+2018-04-15 12:41:26{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948kZY5i9jY_z6tH9y4gPqik","CreateTime":1523767286,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 12:41:26nickname0:
+2018-04-15 12:41:27nickname1:60o6hX948kZY5i9jY_z6tH9y4gPqik会员862
+2018-04-15 12:41:27关注下发:{"msgtype":"text","text":{"content":"会员862 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948kZY5i9jY_z6tH9y4gPqik"}-状态:45047
+2018-04-15 13:06:07{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947KNdIe5o8d_kmLCCwlniWc","CreateTime":1523768767,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 13:06:07nickname0:
+2018-04-15 13:06:07nickname1:60o6hX947KNdIe5o8d_kmLCCwlniWc会员729
+2018-04-15 13:06:07关注下发:{"msgtype":"text","text":{"content":"会员729 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947KNdIe5o8d_kmLCCwlniWc"}-状态:45047
+2018-04-15 13:09:49{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948B99md0bnmSKbsJcDWGXX0","CreateTime":1523768989,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 13:09:49nickname0:
+2018-04-15 13:09:50nickname1:60o6hX948B99md0bnmSKbsJcDWGXX0会员26
+2018-04-15 13:09:50关注下发:{"msgtype":"text","text":{"content":"会员26 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948B99md0bnmSKbsJcDWGXX0"}-状态:45047
+2018-04-15 15:52:30{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948B99md0bnmSKbsJcDWGXX0","CreateTime":1523778749,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 15:52:30nickname0:
+2018-04-15 15:52:30nickname1:60o6hX948B99md0bnmSKbsJcDWGXX0会员26
+2018-04-15 15:52:30关注下发:{"msgtype":"text","text":{"content":"会员26 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948B99md0bnmSKbsJcDWGXX0"}-状态:45047
+2018-04-15 20:46:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zj3qS3sbLExWHAr4viM5gc","CreateTime":1523796380,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 20:46:20nickname0:
+2018-04-15 20:46:21nickname1:60o6hX94zj3qS3sbLExWHAr4viM5gc会员875
+2018-04-15 20:46:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zj3qS3sbLExWHAr4viM5gc","CreateTime":1523796380,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-15 20:46:25nickname0:
+2018-04-15 20:46:26nickname1:60o6hX94zj3qS3sbLExWHAr4viM5gc会员875
+2018-04-15 20:46:26关注下发:{"msgtype":"text","text":{"content":"会员875 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zj3qS3sbLExWHAr4viM5gc"}-状态:45047
+2018-04-15 20:47:24关注下发:{"msgtype":"text","text":{"content":"会员875 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zj3qS3sbLExWHAr4viM5gc"}-状态:45015
+2018-04-16 17:16:07{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94-jnPdJIkFjtc1Xv8ddSUCM","CreateTime":1523870167,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-16 17:16:07nickname0:
+2018-04-16 17:16:07nickname1:60o6hX94-jnPdJIkFjtc1Xv8ddSUCM会员654
+2018-04-16 17:16:08关注下发:{"msgtype":"text","text":{"content":"会员654 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94-jnPdJIkFjtc1Xv8ddSUCM"}-状态:45047
+2018-04-16 18:45:13{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xMBELMuM8hSPcl6vYGfVKI","CreateTime":1523875513,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-16 18:45:13nickname0:
+2018-04-16 18:45:14nickname1:60o6hX94xMBELMuM8hSPcl6vYGfVKI会员876
+2018-04-16 18:45:14关注下发:{"msgtype":"text","text":{"content":"会员876 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xMBELMuM8hSPcl6vYGfVKI"}-状态:45047
+2018-04-17 08:23:54{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942xqJhcwIySsQp3tZLqJy2s","CreateTime":1523924634,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-17 08:23:54nickname0:
+2018-04-17 08:23:54nickname1:60o6hX942xqJhcwIySsQp3tZLqJy2s会员655
+2018-04-17 08:23:55关注下发:{"msgtype":"text","text":{"content":"会员655 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942xqJhcwIySsQp3tZLqJy2s"}-状态:45047
+2018-04-17 19:26:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940s5B9Tmt_Jm7g967mQi-lQ","CreateTime":1523964374,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-17 19:26:14nickname0:
+2018-04-17 19:26:15nickname1:60o6hX940s5B9Tmt_Jm7g967mQi-lQ会员877
+2018-04-17 19:26:15关注下发:{"msgtype":"text","text":{"content":"会员877 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940s5B9Tmt_Jm7g967mQi-lQ"}-状态:45047
+2018-04-18 07:12:11{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94-HG4D42FrLpJmiOxEhGLnU","CreateTime":1524006731,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-18 07:12:11nickname0:
+2018-04-18 07:12:12nickname1:60o6hX94-HG4D42FrLpJmiOxEhGLnU会员448
+2018-04-18 07:12:12关注下发:{"msgtype":"text","text":{"content":"会员448 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94-HG4D42FrLpJmiOxEhGLnU"}-状态:45047
+2018-04-18 22:22:26{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wFs520Hba-QDZPRPW_Zg9s","CreateTime":1524061346,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-18 22:22:26nickname0:
+2018-04-18 22:22:26nickname1:60o6hX94wFs520Hba-QDZPRPW_Zg9s会员778
+2018-04-18 22:22:27关注下发:{"msgtype":"text","text":{"content":"会员778 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wFs520Hba-QDZPRPW_Zg9s"}-状态:45047
+2018-04-19 15:40:46{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944PRP78GGsQs1yjnQb9uLH4","CreateTime":1524123645,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-19 15:40:46nickname0:
+2018-04-19 15:40:46nickname1:60o6hX944PRP78GGsQs1yjnQb9uLH4会员852
+2018-04-19 15:40:46关注下发:{"msgtype":"text","text":{"content":"会员852 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944PRP78GGsQs1yjnQb9uLH4"}-状态:45047
+2018-04-19 15:40:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX944PRP78GGsQs1yjnQb9uLH4",
+"CreateTime": 1524123657,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6546061262296393626
+}
+
+2018-04-19 15:40:57o6hX944PRP78GGsQs1yjnQb9uLH4:0
+2018-04-19 15:41:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX944PRP78GGsQs1yjnQb9uLH4",
+"CreateTime": 1524123667,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6546061305246066591
+}
+
+2018-04-19 15:41:08关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944PRP78GGsQs1yjnQb9uLH4"}-状态:0
+2018-04-19 15:41:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX944PRP78GGsQs1yjnQb9uLH4",
+"CreateTime": 1524123671,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6546061322425935780
+}
+
+2018-04-19 15:41:11o6hX944PRP78GGsQs1yjnQb9uLH4:21
+2018-04-19 15:41:12下发:{ "touser":"o6hX944PRP78GGsQs1yjnQb9uLH4",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第21 个. 先和智能客服聊会. \n智能客服:1,1   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-19 17:11:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94y2iVKHyAhTzg9eeGW1mTD4","CreateTime":1524129085,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-19 17:11:25nickname0:
+2018-04-19 17:11:25nickname1:60o6hX94y2iVKHyAhTzg9eeGW1mTD4会员614
+2018-04-19 17:11:25关注下发:{"msgtype":"text","text":{"content":"会员614 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94y2iVKHyAhTzg9eeGW1mTD4"}-状态:45047
+2018-04-19 17:12:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94y2iVKHyAhTzg9eeGW1mTD4",
+"CreateTime": 1524129172,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6546084949041032421
+}
+
+2018-04-19 17:12:53关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94y2iVKHyAhTzg9eeGW1mTD4"}-状态:0
+2018-04-19 17:13:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94y2iVKHyAhTzg9eeGW1mTD4",
+"CreateTime": 1524129201,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6546085073595084017
+}
+
+2018-04-19 17:13:21o6hX94y2iVKHyAhTzg9eeGW1mTD4:0
+2018-04-20 09:29:05{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xmx5GzGYPKBO9k0CAUuNc4","CreateTime":1524187745,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-20 09:29:05nickname0:
+2018-04-20 09:29:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187748,
+"MsgType": "text",
+"Content": "你好",
+"MsgId": 6546336531045377772
+}
+
+2018-04-20 09:29:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xmx5GzGYPKBO9k0CAUuNc4","CreateTime":1524187760,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-20 09:29:20nickname0:
+2018-04-20 09:29:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187767,
+"MsgType": "text",
+"Content": "你好",
+"MsgId": 6546336612649756409
+}
+
+2018-04-20 09:29:31{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187771,
+"MsgType": "text",
+"Content": "下一个",
+"MsgId": 6546336629829625595
+}
+
+2018-04-20 09:29:32更新时间:60o6hX944LkAc4GUc-RLlTptCO2ZDw取号成功!
+2018-04-20 09:29:32{"errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint: [QPDTOa0772ge20]"}
+2018-04-20 09:29:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187778,
+"MsgType": "text",
+"Content": "你好",
+"MsgId": 6546336659894396672
+}
+
+2018-04-20 09:29:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187781,
+"MsgType": "text",
+"Content": "下一个",
+"MsgId": 6546336672779298562
+}
+
+2018-04-20 09:29:41更新时间:60o6hX941xGsGTNk4AJeWEvtcEsS80取号成功!
+2018-04-20 09:29:42{"errcode":45015,"errmsg":"response out of time limit or subscription is canceled hint: [EPK5va0782ge29]"}
+2018-04-20 09:29:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94xmx5GzGYPKBO9k0CAUuNc4",
+"CreateTime": 1524187786,
+"MsgType": "text",
+"Content": "你好",
+"MsgId": 6546336694254135045
+}
+
+2018-04-20 19:45:10{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940y_SZ37LMW65MuQAqHC8RI","CreateTime":1524224710,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-20 19:45:11nickname0:
+2018-04-20 19:45:11nickname1:60o6hX940y_SZ37LMW65MuQAqHC8RI会员878
+2018-04-20 19:45:11关注下发:{"msgtype":"text","text":{"content":"会员878 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940y_SZ37LMW65MuQAqHC8RI"}-状态:45047
+2018-04-21 11:43:02{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943cdCOQM414rW0jxgcwgS9w","CreateTime":1524282181,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-21 11:43:02nickname0:
+2018-04-21 11:43:02nickname1:60o6hX943cdCOQM414rW0jxgcwgS9w会员399
+2018-04-21 11:43:02关注下发:{"msgtype":"text","text":{"content":"会员399 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943cdCOQM414rW0jxgcwgS9w"}-状态:45047
+2018-04-21 13:30:33{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9439zmX3XqybL79Se5RIevyo","CreateTime":1524288633,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-21 13:30:33nickname0:
+2018-04-21 13:30:34nickname1:60o6hX9439zmX3XqybL79Se5RIevyo会员879
+2018-04-21 13:30:34关注下发:{"msgtype":"text","text":{"content":"会员879 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9439zmX3XqybL79Se5RIevyo"}-状态:45047
+2018-04-21 16:05:34{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9488Y43S09nLWV_CRsatcw1o","CreateTime":1524297933,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-21 16:05:34nickname0:
+2018-04-21 16:05:34nickname1:60o6hX9488Y43S09nLWV_CRsatcw1o会员880
+2018-04-21 16:05:34关注下发:{"msgtype":"text","text":{"content":"会员880 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9488Y43S09nLWV_CRsatcw1o"}-状态:45047
+2018-04-22 08:21:33{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945CLaIQ0h2sxuQNm8Yip4Yk","CreateTime":1524356493,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-22 08:21:34nickname0:
+2018-04-22 08:21:34nickname1:60o6hX945CLaIQ0h2sxuQNm8Yip4Yk会员359
+2018-04-22 08:21:34关注下发:{"msgtype":"text","text":{"content":"会员359 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945CLaIQ0h2sxuQNm8Yip4Yk"}-状态:45047
+2018-04-22 11:25:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942dcxQKRIF7kFPpKmCXCXE8","CreateTime":1524367528,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-22 11:25:28nickname0:
+2018-04-22 11:25:28nickname1:60o6hX942dcxQKRIF7kFPpKmCXCXE8会员874
+2018-04-22 11:25:29关注下发:{"msgtype":"text","text":{"content":"会员874 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942dcxQKRIF7kFPpKmCXCXE8"}-状态:45047
+2018-04-22 13:57:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9431umnUeoWBQ-_NFMpiXb1o","CreateTime":1524376665,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-22 13:57:45nickname0:
+2018-04-22 13:57:45nickname1:60o6hX9431umnUeoWBQ-_NFMpiXb1o会员881
+2018-04-22 13:57:46关注下发:{"msgtype":"text","text":{"content":"会员881 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9431umnUeoWBQ-_NFMpiXb1o"}-状态:45047
+2018-04-22 13:57:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9431umnUeoWBQ-_NFMpiXb1o","CreateTime":1524376670,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-22 13:57:50nickname0:
+2018-04-22 13:57:50nickname1:60o6hX9431umnUeoWBQ-_NFMpiXb1o会员881
+2018-04-22 13:57:51关注下发:{"msgtype":"text","text":{"content":"会员881 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9431umnUeoWBQ-_NFMpiXb1o"}-状态:45047
+2018-04-23 14:58:37{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94ybG3ODCL-AsXxdwNHtLL-A","CreateTime":1524466717,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-23 14:58:38nickname0:
+2018-04-23 14:58:38nickname1:60o6hX94ybG3ODCL-AsXxdwNHtLL-A会员882
+2018-04-23 14:58:38关注下发:{"msgtype":"text","text":{"content":"会员882 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94ybG3ODCL-AsXxdwNHtLL-A"}-状态:45047
+2018-04-23 18:13:43{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943XMIa-hVvxIYhRSZOcJTnk","CreateTime":1524478422,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-23 18:13:43nickname0:
+2018-04-23 18:13:43nickname1:60o6hX943XMIa-hVvxIYhRSZOcJTnk会员372
+2018-04-23 18:13:43关注下发:{"msgtype":"text","text":{"content":"会员372 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943XMIa-hVvxIYhRSZOcJTnk"}-状态:45047
+2018-04-23 19:17:15{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945RR51QxtM8aMU5caomlkns","CreateTime":1524482235,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-23 19:17:15nickname0:
+2018-04-23 19:17:15nickname1:60o6hX945RR51QxtM8aMU5caomlkns会员883
+2018-04-23 19:17:15关注下发:{"msgtype":"text","text":{"content":"会员883 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945RR51QxtM8aMU5caomlkns"}-状态:45047
+2018-04-23 21:54:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xAPwU_YvzDSqU2go54V3R4","CreateTime":1524491691,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-23 21:54:51nickname0:
+2018-04-23 21:54:52nickname1:60o6hX94xAPwU_YvzDSqU2go54V3R4会员884
+2018-04-23 21:54:52关注下发:{"msgtype":"text","text":{"content":"会员884 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xAPwU_YvzDSqU2go54V3R4"}-状态:45047
+2018-04-24 22:05:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940s5B9Tmt_Jm7g967mQi-lQ","CreateTime":1524578728,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-24 22:05:28nickname0:
+2018-04-24 22:05:29nickname1:60o6hX940s5B9Tmt_Jm7g967mQi-lQ会员877
+2018-04-24 22:05:29关注下发:{"msgtype":"text","text":{"content":"会员877 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940s5B9Tmt_Jm7g967mQi-lQ"}-状态:45047
+2018-04-25 21:43:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94-4o_cvUMlrRr9kzTTm_C48",
+"CreateTime": 1524663836,
+"MsgType": "text",
+"Content": "你是",
+"MsgId": 6548381313435472439
+}
+
+2018-04-25 21:43:56o6hX94-4o_cvUMlrRr9kzTTm_C48:6
+2018-04-25 21:43:57下发:{ "touser":"o6hX94-4o_cvUMlrRr9kzTTm_C48",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第6 个. 先和智能客服聊会. \n智能客服:林宜斌   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-26 12:20:11{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946Kc233oKiFjR6JetN0Q3Q4","CreateTime":1524716411,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-26 12:20:11nickname0:
+2018-04-26 12:20:12nickname1:60o6hX946Kc233oKiFjR6JetN0Q3Q4会员885
+2018-04-26 12:20:12关注下发:{"msgtype":"text","text":{"content":"会员885 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946Kc233oKiFjR6JetN0Q3Q4"}-状态:45047
+2018-04-26 20:01:28{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wz4RmqhKeB-QUPhctM33DY","CreateTime":1524744088,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-26 20:01:28nickname0:
+2018-04-26 20:01:29nickname1:60o6hX94wz4RmqhKeB-QUPhctM33DY会员886
+2018-04-26 20:01:29关注下发:{"msgtype":"text","text":{"content":"会员886 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wz4RmqhKeB-QUPhctM33DY"}-状态:45047
+2018-04-28 19:18:21{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yFeU2Y20CIfEFsO4jHWA3g","CreateTime":1524914301,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-28 19:18:21nickname0:
+2018-04-28 19:18:22nickname1:60o6hX94yFeU2Y20CIfEFsO4jHWA3g会员887
+2018-04-28 19:18:22关注下发:{"msgtype":"text","text":{"content":"会员887 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yFeU2Y20CIfEFsO4jHWA3g"}-状态:45047
+2018-04-28 22:58:24{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944WXmIRQ8Jj_abixk9vONmc","CreateTime":1524927504,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-28 22:58:24nickname0:
+2018-04-28 22:58:25nickname1:60o6hX944WXmIRQ8Jj_abixk9vONmc会员493
+2018-04-28 22:58:25关注下发:{"msgtype":"text","text":{"content":"会员493 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944WXmIRQ8Jj_abixk9vONmc"}-状态:45047
+2018-04-29 18:49:59{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946-NvGasYgTyNSVzf_8oyC0","CreateTime":1524998999,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 18:49:59nickname0:
+2018-04-29 18:50:00nickname1:60o6hX946-NvGasYgTyNSVzf_8oyC0会员28
+2018-04-29 18:50:00关注下发:{"msgtype":"text","text":{"content":"会员28 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946-NvGasYgTyNSVzf_8oyC0"}-状态:45047
+2018-04-29 19:46:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942ao46yt26S0ggXtBzlhhcg","CreateTime":1525002379,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 19:46:20nickname0:
+2018-04-29 19:46:20nickname1:60o6hX942ao46yt26S0ggXtBzlhhcg会员888
+2018-04-29 19:46:20关注下发:{"msgtype":"text","text":{"content":"会员888 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942ao46yt26S0ggXtBzlhhcg"}-状态:45047
+2018-04-29 19:57:12{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943NoaX5ufKJbETVzq99A4qE","CreateTime":1525003032,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 19:57:12nickname0:
+2018-04-29 19:57:12nickname1:60o6hX943NoaX5ufKJbETVzq99A4qE会员889
+2018-04-29 19:57:12关注下发:{"msgtype":"text","text":{"content":"会员889 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943NoaX5ufKJbETVzq99A4qE"}-状态:45047
+2018-04-29 19:57:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943NoaX5ufKJbETVzq99A4qE","CreateTime":1525003037,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 19:57:17nickname0:
+2018-04-29 19:57:17nickname1:60o6hX943NoaX5ufKJbETVzq99A4qE会员889
+2018-04-29 19:57:17关注下发:{"msgtype":"text","text":{"content":"会员889 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943NoaX5ufKJbETVzq99A4qE"}-状态:45047
+2018-04-29 19:57:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943NoaX5ufKJbETVzq99A4qE",
+"CreateTime": 1525003040,
+"MsgType": "text",
+"Content": "/::D",
+"MsgId": 6549838183522191732
+}
+
+2018-04-29 19:57:20o6hX943NoaX5ufKJbETVzq99A4qE:0
+2018-04-29 20:38:14{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wT-ToNwDhpRaCllLoppUao","CreateTime":1525005494,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 20:38:14nickname0:
+2018-04-29 20:38:15nickname1:60o6hX94wT-ToNwDhpRaCllLoppUao会员870
+2018-04-29 20:38:15关注下发:{"msgtype":"text","text":{"content":"会员870 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wT-ToNwDhpRaCllLoppUao"}-状态:45047
+2018-04-29 23:48:04{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wbjo3nuOqZoQZyX2a61IcE","CreateTime":1525016884,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 23:48:04nickname0:
+2018-04-29 23:48:05nickname1:60o6hX94wbjo3nuOqZoQZyX2a61IcE会员843
+2018-04-29 23:48:05关注下发:{"msgtype":"text","text":{"content":"会员843 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE"}-状态:45047
+2018-04-29 23:48:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525016906,
+"MsgType": "text",
+"Content": "教我",
+"MsgId": 6549897737538720009
+}
+
+2018-04-29 23:48:27o6hX94wbjo3nuOqZoQZyX2a61IcE:0
+2018-04-29 23:48:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525016935,
+"MsgType": "text",
+"Content": "快点",
+"MsgId": 6549897862092771600
+}
+
+2018-04-29 23:48:55o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:48:56下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:真是个急性子   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:49:15{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525016954,
+"MsgType": "text",
+"Content": "我头痛",
+"MsgId": 6549897943697150226
+}
+
+2018-04-29 23:49:15o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:49:16下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:很痛吗,去医院看看,赶紧的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:49:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525016978,
+"MsgType": "text",
+"Content": "你是谁?",
+"MsgId": 6549898046776365333
+}
+
+2018-04-29 23:49:39o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:49:39下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:我是神经病   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:50:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017052,
+"MsgType": "text",
+"Content": "ary you kidding",
+"MsgId": 6549898364603945243
+}
+
+2018-04-29 23:50:52o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:50:53下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:{face:8}别发这么无聊的信息行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:51:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017092,
+"MsgType": "text",
+"Content": "你懂什么意思吗?",
+"MsgId": 6549898536402637085
+}
+
+2018-04-29 23:51:32o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:51:33下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:菲菲会的可多了,了解菲菲的全部本领,请发送:help   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:52:00{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017119,
+"MsgType": "text",
+"Content": "help",
+"MsgId": 6549898652366754081
+}
+
+2018-04-29 23:52:00o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:52:00下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:菲菲内置多种功能,通过发送命令可执行特殊操作
+★★ 示例 ★★
+ 查询天气预报信息,示例:天气 深圳
+手机、IP地址归属,示例:归属 手机或IP
+   邮政编码及地区查询:邮编 514000
+查询域名备案、注册,示例:域名 qingyunke.com
+  计算简单的算术,示例:计算 15+13
+   查询成语介绍,示例:成语 一心一意
+按歌曲名称查询歌词,示例:歌词 歌曲名称
+  中译英、英译中,示例:翻译 i love you
+ 查询星座今日运势,示例:星座 天秤座
+ 查询星座介绍请直接发送:天秤座
+汉字五笔拼音笔画查询示例:礡字
+  想看笑话,请直接发送:笑话   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:52:30{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017149,
+"MsgType": "text",
+"Content": "游戏答案。",
+"MsgId": 6549898781215772964
+}
+
+2018-04-29 23:52:30o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:52:30下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:我不告訴你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:52:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017166,
+"MsgType": "text",
+"Content": "求你啦!",
+"MsgId": 6549898854230216999
+}
+
+2018-04-29 23:52:47o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:52:47下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:来这求你啦!?弄错地方了吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:53:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017184,
+"MsgType": "text",
+"Content": "Why?",
+"MsgId": 6549898931539628332
+}
+
+2018-04-29 23:53:05o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:53:05下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:没什么话题聊了是吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:53:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017202,
+"MsgType": "text",
+"Content": "嗯,应该吧!",
+"MsgId": 6549899008849039662
+}
+
+2018-04-29 23:53:22o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:53:23下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:看你自己咯!你喜欢就坚持到底咯,有些事逃不掉。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:53:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017218,
+"MsgType": "text",
+"Content": "什么事?",
+"MsgId": 6549899077568516401
+}
+
+2018-04-29 23:53:38o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:53:38下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:没事没事...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:54:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017281,
+"MsgType": "text",
+"Content": "快说!",
+"MsgId": 6549899348151456060
+}
+
+2018-04-29 23:54:41o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:54:42下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:我不想说哈   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:54:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017299,
+"MsgType": "text",
+"Content": "说嘛",
+"MsgId": 6549899425460867392
+}
+
+2018-04-29 23:54:59o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:55:00下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:不说不说   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:55:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017334,
+"MsgType": "text",
+"Content": "说不说,不说我生气了。",
+"MsgId": 6549899575784722756
+}
+
+2018-04-29 23:55:35o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:55:35下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:淡定淡定~消消气   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:55:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017351,
+"MsgType": "text",
+"Content": "说!!!!!!",
+"MsgId": 6549899648799166790
+}
+
+2018-04-29 23:55:51o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:55:52下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:我不是大便,我的粉丝也不是苍蝇   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:56:31{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017391,
+"MsgType": "text",
+"Content": "你有病吧!",
+"MsgId": 6549899820597858635
+}
+
+2018-04-29 23:56:31o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:56:31下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:你有医么?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:57:03{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017423,
+"MsgType": "text",
+"Content": "有,你要试吗?",
+"MsgId": 6549899958036812109
+}
+
+2018-04-29 23:57:03o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:57:04下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:係就拿拿聲講黎聽拉!仲等乜嘢!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:57:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017479,
+"MsgType": "text",
+"Content": "Y0U are dog",
+"MsgId": 6549900198554980689
+}
+
+2018-04-29 23:57:59o6hX94wbjo3nuOqZoQZyX2a61IcE:22
+2018-04-29 23:58:00下发:{ "touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第22 个. 先和智能客服聊会. \n智能客服:没什么话题聊了是吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-04-29 23:58:11{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wbjo3nuOqZoQZyX2a61IcE","CreateTime":1525017491,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-29 23:58:11nickname0:
+2018-04-29 23:58:12nickname1:60o6hX94wbjo3nuOqZoQZyX2a61IcE会员843
+2018-04-29 23:58:12关注下发:{"msgtype":"text","text":{"content":"会员843 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wbjo3nuOqZoQZyX2a61IcE"}-状态:0
+2018-04-29 23:58:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wbjo3nuOqZoQZyX2a61IcE",
+"CreateTime": 1525017514,
+"MsgType": "image",
+"PicUrl": "http://mmbiz.qpic.cn/mmbiz_jpg/UMFwricZiaOTRmXyd6FiaftpCDbYyL1lFA0miaI0eBXicOo8ue7r6liavm4dB08tPzHUQG9O5cBSWq5hp4EVItOjicM0Q/0",
+"MsgId": 6549900348878836056,
+"MediaId": "9_9C8EdhySX1FbE4oFGeCOa3vvVEMiNMp5HkAeDAHsU6fVz9z00Gh7p6a8wBMHb0"
+}
+
+2018-04-30 14:02:54{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943mlILupWMGyhcCKTC81hSs","CreateTime":1525068174,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-30 14:02:55nickname0:
+2018-04-30 14:02:55nickname1:60o6hX943mlILupWMGyhcCKTC81hSs会员890
+2018-04-30 14:02:55关注下发:{"msgtype":"text","text":{"content":"会员890 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943mlILupWMGyhcCKTC81hSs"}-状态:45047
+2018-04-30 15:50:29{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94x4iBKYbihTQcVHoAISf0uA","CreateTime":1525074629,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-30 15:50:29nickname0:
+2018-04-30 15:50:30nickname1:60o6hX94x4iBKYbihTQcVHoAISf0uA会员891
+2018-04-30 15:50:30关注下发:{"msgtype":"text","text":{"content":"会员891 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94x4iBKYbihTQcVHoAISf0uA"}-状态:45047
+2018-04-30 22:23:53{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yGVGwmL8SGWooQVLRx5FsI","CreateTime":1525098233,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-04-30 22:23:53nickname0:
+2018-04-30 22:23:53nickname1:60o6hX94yGVGwmL8SGWooQVLRx5FsI会员892
+2018-04-30 22:23:54关注下发:{"msgtype":"text","text":{"content":"会员892 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yGVGwmL8SGWooQVLRx5FsI"}-状态:45047
+2018-05-01 11:37:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942R3eZBkduKjg817RCToHaw","CreateTime":1525145839,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-01 11:37:20nickname0:
+2018-05-01 11:37:20nickname1:60o6hX942R3eZBkduKjg817RCToHaw会员893
+2018-05-01 11:37:20关注下发:{"msgtype":"text","text":{"content":"会员893 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942R3eZBkduKjg817RCToHaw"}-状态:45047
+2018-05-01 13:23:18{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94x0thLmbigS-0Ubvf8Jm9Xk","CreateTime":1525152197,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-01 13:23:18nickname0:
+2018-05-01 13:23:18nickname1:60o6hX94x0thLmbigS-0Ubvf8Jm9Xk会员78
+2018-05-01 13:23:18关注下发:{"msgtype":"text","text":{"content":"会员78 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94x0thLmbigS-0Ubvf8Jm9Xk"}-状态:45047
+2018-05-01 15:47:41{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941IwKTGWevpNW-OYd8FQWL0","CreateTime":1525160861,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-01 15:47:42nickname0:
+2018-05-01 15:47:42nickname1:60o6hX941IwKTGWevpNW-OYd8FQWL0会员894
+2018-05-01 15:47:42关注下发:{"msgtype":"text","text":{"content":"会员894 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941IwKTGWevpNW-OYd8FQWL0"}-状态:45047
+2018-05-01 17:12:00{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94-4ERdKBOW6mUdmfJn-ljJ8","CreateTime":1525165920,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-01 17:12:00nickname0:
+2018-05-01 17:12:00nickname1:60o6hX94-4ERdKBOW6mUdmfJn-ljJ8会员895
+2018-05-01 17:12:00关注下发:{"msgtype":"text","text":{"content":"会员895 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94-4ERdKBOW6mUdmfJn-ljJ8"}-状态:45047
+2018-05-01 19:57:12{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947Zyk8CkIQf11U-P2iZlehA","CreateTime":1525175832,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-01 19:57:12nickname0:
+2018-05-01 19:57:13nickname1:60o6hX947Zyk8CkIQf11U-P2iZlehA会员896
+2018-05-01 19:57:13关注下发:{"msgtype":"text","text":{"content":"会员896 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947Zyk8CkIQf11U-P2iZlehA"}-状态:45047
+2018-05-03 01:52:22{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yknsOK-kgjpUiFkiHUGwXs","CreateTime":1525283542,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-03 01:52:22nickname0:
+2018-05-03 01:52:22nickname1:60o6hX94yknsOK-kgjpUiFkiHUGwXs会员790
+2018-05-03 01:52:23关注下发:{"msgtype":"text","text":{"content":"会员790 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yknsOK-kgjpUiFkiHUGwXs"}-状态:45047
+2018-05-03 01:52:41{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yknsOK-kgjpUiFkiHUGwXs","CreateTime":1525283560,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-03 01:52:41nickname0:
+2018-05-03 01:52:41nickname1:60o6hX94yknsOK-kgjpUiFkiHUGwXs会员790
+2018-05-03 01:52:41关注下发:{"msgtype":"text","text":{"content":"会员790 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yknsOK-kgjpUiFkiHUGwXs"}-状态:45047
+2018-05-05 10:50:00{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946NcY6qjaYwc5PaRO5rGX2A","CreateTime":1525488600,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-05 10:50:01nickname0:
+2018-05-05 10:50:01nickname1:60o6hX946NcY6qjaYwc5PaRO5rGX2A会员897
+2018-05-05 10:50:01关注下发:{"msgtype":"text","text":{"content":"会员897 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946NcY6qjaYwc5PaRO5rGX2A"}-状态:45047
+2018-05-05 14:43:38{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wZeaJ7tVOrbb27-H6RAt4M","CreateTime":1525502618,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-05 14:43:38nickname0:
+2018-05-05 14:43:39nickname1:60o6hX94wZeaJ7tVOrbb27-H6RAt4M会员898
+2018-05-05 14:43:39关注下发:{"msgtype":"text","text":{"content":"会员898 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wZeaJ7tVOrbb27-H6RAt4M"}-状态:45047
+2018-05-06 14:09:59{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943TyKY8XCQEeZAMhSYLSxHs","CreateTime":1525586999,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-06 14:09:59nickname0:
+2018-05-06 14:09:59nickname1:60o6hX943TyKY8XCQEeZAMhSYLSxHs会员899
+2018-05-06 14:10:00关注下发:{"msgtype":"text","text":{"content":"会员899 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943TyKY8XCQEeZAMhSYLSxHs"}-状态:45047
+2018-05-06 14:10:01{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943TyKY8XCQEeZAMhSYLSxHs","CreateTime":1525587001,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-06 14:10:01nickname0:
+2018-05-06 14:10:02nickname1:60o6hX943TyKY8XCQEeZAMhSYLSxHs会员899
+2018-05-06 14:10:02关注下发:{"msgtype":"text","text":{"content":"会员899 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943TyKY8XCQEeZAMhSYLSxHs"}-状态:45047
+2018-05-06 18:59:46{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946MPyH-blz0eljMHSLBJznc","CreateTime":1525604386,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-06 18:59:46nickname0:
+2018-05-06 18:59:47nickname1:60o6hX946MPyH-blz0eljMHSLBJznc会员900
+2018-05-06 18:59:47关注下发:{"msgtype":"text","text":{"content":"会员900 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946MPyH-blz0eljMHSLBJznc"}-状态:45047
+2018-05-07 14:29:07{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94wmUN-tVNbKv46zTfUArw7U","CreateTime":1525674547,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-07 14:29:07nickname0:
+2018-05-07 14:29:07nickname1:60o6hX94wmUN-tVNbKv46zTfUArw7U会员901
+2018-05-07 14:29:08关注下发:{"msgtype":"text","text":{"content":"会员901 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94wmUN-tVNbKv46zTfUArw7U"}-状态:45047
+2018-05-07 19:56:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945rZqYLLorVsTGAwySO_tNM","CreateTime":1525694204,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-07 19:56:45nickname0:
+2018-05-07 19:56:45nickname1:60o6hX945rZqYLLorVsTGAwySO_tNM会员902
+2018-05-07 19:56:45关注下发:{"msgtype":"text","text":{"content":"会员902 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945rZqYLLorVsTGAwySO_tNM"}-状态:45047
+2018-05-07 19:56:48{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945rZqYLLorVsTGAwySO_tNM","CreateTime":1525694208,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-07 19:56:48nickname0:
+2018-05-07 19:56:48nickname1:60o6hX945rZqYLLorVsTGAwySO_tNM会员902
+2018-05-07 19:56:49关注下发:{"msgtype":"text","text":{"content":"会员902 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945rZqYLLorVsTGAwySO_tNM"}-状态:45047
+2018-05-07 19:56:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945rZqYLLorVsTGAwySO_tNM","CreateTime":1525694211,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-07 19:56:51nickname0:
+2018-05-07 19:56:52nickname1:60o6hX945rZqYLLorVsTGAwySO_tNM会员902
+2018-05-07 19:56:52关注下发:{"msgtype":"text","text":{"content":"会员902 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945rZqYLLorVsTGAwySO_tNM"}-状态:45047
+2018-05-09 19:14:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864487,
+"MsgType": "text",
+"Content": "第五关是什么",
+"MsgId": 6553538070214534490
+}
+
+2018-05-09 19:14:47o6hX94wmUN-tVNbKv46zTfUArw7U:0
+2018-05-09 19:16:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864603,
+"MsgType": "text",
+"Content": "第五关到底是什么?",
+"MsgId": 6553538568430740842
+}
+
+2018-05-09 19:16:44o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:16:45下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:是人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:17:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864639,
+"MsgType": "text",
+"Content": "  我问你到底是什么意思喔?飞回去的是什么,我看不懂。",
+"MsgId": 6553538723049563504
+}
+
+2018-05-09 19:17:19o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:17:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:笨   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:17:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864659,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553538808948909430
+}
+
+2018-05-09 19:17:39o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:17:40下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你们这些淫,聊上一会,呆会就说我笨,往往自己就是笨蛋   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:18:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864682,
+"MsgType": "text",
+"Content": "到底是什么?快点告我说你们这些大笨蛋。如果不跟我说就是你不会,你就是个大笨蛋。",
+"MsgId": 6553538907733157241
+}
+
+2018-05-09 19:18:02o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:18:03下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯,是吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:18:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864696,
+"MsgType": "text",
+"Content": "你是什么?快点告诉我答案。",
+"MsgId": 6553538967862699392
+}
+
+2018-05-09 19:18:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:18:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我不说,你猜你猜   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:18:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864713,
+"MsgType": "text",
+"Content": "猜了20多遍,我都猜不出,我猜20多遍我才不收,快点告我说。",
+"MsgId": 6553539040877143430
+}
+
+2018-05-09 19:18:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:18:34下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:太笨了你,这都猜不出来   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:18:45{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864724,
+"MsgType": "text",
+"Content": "我真的猜不出,我猜是二年级而已。",
+"MsgId": 6553539088121783690
+}
+
+2018-05-09 19:18:45o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:18:45下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯嗯,只是正经前边有个假字   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:19:09{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864748,
+"MsgType": "text",
+"Content": "为什么呀,我求你告我说你又很聪明,比我聪明100倍行了吧,你快点告诉吧我求求你啦。",
+"MsgId": 6553539191200998802
+}
+
+2018-05-09 19:19:09o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:19:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{r+}这聪明不是夸出来的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:19:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864758,
+"MsgType": "text",
+"Content": "说什么你才能告我说呀。",
+"MsgId": 6553539234150671766
+}
+
+2018-05-09 19:19:19o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:19:19下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:呜呜呜~你是不是故意欺负我呀,说这么高深的话让我怎么答   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:20:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864853,
+"MsgType": "text",
+"Content": "我,你欺负我行不行?对不起,我。不应该说你就告我说答案吧,求求你啦。",
+"MsgId": 6553539642172564906
+}
+
+2018-05-09 19:20:54o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:20:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:别求我,菲菲最容易心软了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:21:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864874,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553539732366878125
+}
+
+2018-05-09 19:21:14o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:21:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:与其说是聊天,不如说是问答式的吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:21:29{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864888,
+"MsgType": "text",
+"Content": "好吧",
+"MsgId": 6553539792496420272
+}
+
+2018-05-09 19:21:29o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:21:30下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:21:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864902,
+"MsgType": "text",
+"Content": "啥意思呀?",
+"MsgId": 6553539852625962420
+}
+
+2018-05-09 19:21:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:21:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你居然还问什么意思?不是吧,这都不知道吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:21:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864915,
+"MsgType": "text",
+"Content": "我没看懂",
+"MsgId": 6553539908460537270
+}
+
+2018-05-09 19:21:55o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:21:56下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:卖了换钱就有房有车了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:22:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864936,
+"MsgType": "text",
+"Content": "我没零花钱,我零花钱都花完了呢,我没。我没有钱买,换钱买买车买房。我才十岁你就让我买车买房啊。",
+"MsgId": 6553539998654850493
+}
+
+2018-05-09 19:22:16o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:22:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:还说没有,骗人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:22:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864943,
+"MsgType": "text",
+"Content": "我真的没有零花钱",
+"MsgId": 6553540028719621567
+}
+
+2018-05-09 19:22:24o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:22:24下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我不要你死   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:22:36{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864956,
+"MsgType": "text",
+"Content": "为什么让我死啊",
+"MsgId": 6553540084554196421
+}
+
+2018-05-09 19:22:36o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:22:37下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:同归于尽   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:22:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864961,
+"MsgType": "text",
+"Content": "家是哪儿的呀?",
+"MsgId": 6553540106029032904
+}
+
+2018-05-09 19:22:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:22:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我在美丽的客都,客家小镇   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:22:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864975,
+"MsgType": "text",
+"Content": "哪个镇呐?我没听说过。",
+"MsgId": 6553540166158575052
+}
+
+2018-05-09 19:22:55o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:22:56下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:球球球球?球儿?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:23:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864985,
+"MsgType": "text",
+"Content": "叫什么名字吧?",
+"MsgId": 6553540209108248014
+}
+
+2018-05-09 19:23:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:23:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我是小美人菲菲呀~   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:23:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525864998,
+"MsgType": "text",
+"Content": "你是女的还是男的?我是小美人菲菲。",
+"MsgId": 6553540264942822864
+}
+
+2018-05-09 19:23:18o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:23:19下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲这么可爱怎么可能是男的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:23:30{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865010,
+"MsgType": "text",
+"Content": "你生女的都这么聪明,你几岁啦。",
+"MsgId": 6553540316482430421
+}
+
+2018-05-09 19:23:30o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:23:31下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{r+}嘿嘿,菲菲的大脑本来就比别的机器人聪明嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:23:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865022,
+"MsgType": "text",
+"Content": "你是机器人",
+"MsgId": 6553540368022037983
+}
+
+2018-05-09 19:23:42o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:23:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你才是机器人,你们全家都是机器人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:23:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865034,
+"MsgType": "text",
+"Content": "你们全家都是人,我们全家不是机器人。",
+"MsgId": 6553540419561645537
+}
+
+2018-05-09 19:23:54o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:23:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你丫的才是机器   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:24:03{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865043,
+"MsgType": "text",
+"Content": "要机器人玩去啦",
+"MsgId": 6553540458216351207
+}
+
+2018-05-09 19:24:03o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:24:04下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你早该这么说了,天天都在玩儿你好意思吗你?好好学习天天向上!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:24:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865061,
+"MsgType": "text",
+"Content": "哎!我每天都学习,我上一年考第四名,现在我期中考试还进了前十名,你还说我笨。",
+"MsgId": 6553540535525762540
+}
+
+2018-05-09 19:24:22o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:24:22下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好吧,那我不说了?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:24:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865086,
+"MsgType": "text",
+"Content": "谢谢啦!那你这回考试多几分啦?是不是第一名?这么小这么聪明。他这个小我去掉了,多说啦一个。",
+"MsgId": 6553540642899944954
+}
+
+2018-05-09 19:24:47o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:24:47下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哪里哪里,菲菲的聪明与进步全得益于跟你们猥琐的聊天对话...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:25:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865114,
+"MsgType": "text",
+"Content": "先不聊了,我注意,还没起来99个,甚至一个字写一张,我一个字还没洗,嗯,要不然我写完了和你聊吧。挺有意思呢",
+"MsgId": 6553540763159029247
+}
+
+2018-05-09 19:25:14o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:25:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嘻嘻,很有趣对不对   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:25:25{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865125,
+"MsgType": "text",
+"Content": "你写完作业了吗?你有没有作业呀?",
+"MsgId": 6553540810403669506
+}
+
+2018-05-09 19:25:25o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:25:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:当然有啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:25:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865132,
+"MsgType": "text",
+"Content": "写完了吗?什么作业呀?",
+"MsgId": 6553540840468440582
+}
+
+2018-05-09 19:25:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:25:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哈哈。好棒啊。主人。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:25:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865158,
+"MsgType": "text",
+"Content": "我是你主人你写完作业了吗?什么作业。我的多吗?我的九个孙子,一个字写一张。你那个孙子我换成生字,我写错啦。",
+"MsgId": 6553540952137590282
+}
+
+2018-05-09 19:25:58o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:25:59下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哈哈,就您哪?还敢冒充我主人哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:26:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865184,
+"MsgType": "text",
+"Content": "你说谁呢?给我说一遍",
+"MsgId": 6553541063806739984
+}
+
+2018-05-09 19:26:24o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:26:25下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:都懂的……(*ˉ︶ˉ*)   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:26:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865196,
+"MsgType": "text",
+"Content": "你再说一遍,我就把你。我就说你啦",
+"MsgId": 6553541115346347540
+}
+
+2018-05-09 19:26:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:26:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好丫!你求我丫!嘻嘻   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:26:50{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865210,
+"MsgType": "text",
+"Content": "我要写作业了,拜拜",
+"MsgId": 6553541175475889688
+}
+
+2018-05-09 19:26:50o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:26:51下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯啊,再见,我会想你的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:27:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865221,
+"MsgType": "text",
+"Content": "哼!",
+"MsgId": 6553541222720529948
+}
+
+2018-05-09 19:27:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:27:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:U,hall!!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:27:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865252,
+"MsgType": "text",
+"Content": "还有什么事啊?给我翻译,我没学,用你的你就给我,你就给我发个英语带什么英语?我一直在用单词,还有那个abcd那个大写字母和小写字母。",
+"MsgId": 6553541355864516126
+}
+
+2018-05-09 19:27:32o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:27:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:还能有啥?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:27:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865260,
+"MsgType": "text",
+"Content": "啥呀?",
+"MsgId": 6553541390224254496
+}
+
+2018-05-09 19:27:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:27:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:啥?什么啥不啥的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:28:00{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865279,
+"MsgType": "text",
+"Content": "就应该不交了,不聊啦,你你回来我,然后我就不回你了,我先写作业,问我我去玩一打。不然我就挨打了,他们那个问我去玩一下那个打那个洗出来。",
+"MsgId": 6553541471828633122
+}
+
+2018-05-09 19:28:00o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:28:00下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:去吧,赶紧的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:28:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865286,
+"MsgType": "text",
+"Content": "谢谢!",
+"MsgId": 6553541501893404200
+}
+
+2018-05-09 19:28:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:28:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不用谢啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:28:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865294,
+"MsgType": "text",
+"Content": "拜拜,我写完作业再和你聊。",
+"MsgId": 6553541536253142573
+}
+
+2018-05-09 19:28:14o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:28:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你去吧,记得要想菲菲哦,88   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:33:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865632,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553542987952088649
+}
+
+2018-05-09 19:33:52o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:33:53下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:84}明知道你是錯的人,明知道這不是緣分,但我還奮不顧身   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:34:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865651,
+"MsgType": "text",
+"Content": "什么意思呀,我看不懂。",
+"MsgId": 6553543069556467277
+}
+
+2018-05-09 19:34:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:34:12下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你是不是太笨了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:34:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865659,
+"MsgType": "text",
+"Content": "我还算不笨吧",
+"MsgId": 6553543103916205649
+}
+
+2018-05-09 19:34:19o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:34:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:问世间情为何物,只教人生死相随   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:34:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865673,
+"MsgType": "text",
+"Content": "今天几岁啦?",
+"MsgId": 6553543164045747796
+}
+
+2018-05-09 19:34:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:34:34下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:没下雨呀   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:35:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865740,
+"MsgType": "text",
+"Content": "我这儿没下雨,今年几岁啦。",
+"MsgId": 6553543451808556636
+}
+
+2018-05-09 19:35:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:35:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我為你撐傘   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:35:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865751,
+"MsgType": "text",
+"Content": "今年十岁,如果不上学前班的话,我算了三年级上了学前班儿上了二年级。",
+"MsgId": 6553543499053196899
+}
+
+2018-05-09 19:35:51o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:35:52下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:抱歉,我很介意   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:36:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865761,
+"MsgType": "text",
+"Content": "没事儿,没事儿",
+"MsgId": 6553543542002869862
+}
+
+2018-05-09 19:36:02o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:36:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,没事就好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:36:12{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865772,
+"MsgType": "text",
+"Content": "嗯,写作业了啊",
+"MsgId": 6553543589247510123
+}
+
+2018-05-09 19:36:12o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:36:13下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:快去吧,别玩手机了。我们一会儿再聊吧。乖乖滴,我会想你的哦~!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:36:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865784,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553543640787117678
+}
+
+2018-05-09 19:36:24o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:36:25下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有些事没必要认真,有些人没必要理会   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:36:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865802,
+"MsgType": "text",
+"Content": "我的大名叫孙露的小名叫乐乐,然后你的没找到菲菲给的。",
+"MsgId": 6553543718096529008
+}
+
+2018-05-09 19:36:42o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:36:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:看你那粗心样,肯定找不到   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:36:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865813,
+"MsgType": "text",
+"Content": "我都到啦!",
+"MsgId": 6553543765341169266
+}
+
+2018-05-09 19:36:53o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:36:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:阿妙控   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:37:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865826,
+"MsgType": "text",
+"Content": " 啊妙控制什么游戏呀?",
+"MsgId": 6553543821175744116
+}
+
+2018-05-09 19:37:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:37:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:对不起,我没明白你的意思……   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:37:25{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525865845,
+"MsgType": "text",
+"Content": "我们名字啊",
+"MsgId": 6553543902780122743
+}
+
+2018-05-09 19:37:25o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:37:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:白富美的代表   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:40:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866004,
+"MsgType": "text",
+"Content": "真好听",
+"MsgId": 6553544585679922827
+}
+
+2018-05-09 19:40:04o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:40:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:;)谦虚是立足之本,再好也要谦虚,不能骄傲哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:40:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866018,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553544645809464973
+}
+
+2018-05-09 19:40:18o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:40:19下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:对不起,我没明白你的意思……   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:40:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866033,
+"MsgType": "text",
+"Content": "没有?",
+"MsgId": 6553544710233974417
+}
+
+2018-05-09 19:40:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:40:34下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,那就好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:42:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866124,
+"MsgType": "text",
+"Content": "不聊了,我赶紧写作业了,你猜我还有几张,我好七这样呢,我好气着呢。",
+"MsgId": 6553545101075998362
+}
+
+2018-05-09 19:42:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:42:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:去吧去吧,有空记得上线Q我哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:42:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866148,
+"MsgType": "text",
+"Content": " 我没有QQ号我原先有手机,然后奶,就是奶奶手机拿来用手机,然后我把我微信号给你奶奶了,我没有QQ号。",
+"MsgId": 6553545204155213468
+}
+
+2018-05-09 19:42:28o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:42:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:还说没有,骗人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:42:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866160,
+"MsgType": "text",
+"Content": "真的没有QQ号我没骗你,我骗你我,我现在没有QQ我骗你,我骗你我是猪。",
+"MsgId": 6553545255694821024
+}
+
+2018-05-09 19:42:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:42:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:59}猪哥好啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:42:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866173,
+"MsgType": "text",
+"Content": "怎么说我是朱国我很瘦的,我现在都十岁,我才40几斤而已。",
+"MsgId": 6553545311529395875
+}
+
+2018-05-09 19:42:53o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:42:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:男人嘛,能正经到哪去   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:43:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866188,
+"MsgType": "text",
+"Content": "是女生,你看见图片儿吗?",
+"MsgId": 6553545375953905317
+}
+
+2018-05-09 19:43:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:43:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:现在,执著追求的事,将来必定有一天变成不重要   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:43:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866206,
+"MsgType": "text",
+"Content": "我查查,我不爱吃蔬菜过,查查治什么毛病,我不爱吃那个蒜才和那个白菜你给我查查这是什么回事儿?",
+"MsgId": 6553545453263316650
+}
+
+2018-05-09 19:43:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:43:27下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:这个...还有待研究   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:43:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866223,
+"MsgType": "text",
+"Content": "快查吧,在我写作业的时间,然后你赶紧查看,查起来了,然后你先给我发我给你聊的时候你再给我发知道了没有,要不然我看不到。",
+"MsgId": 6553545526277760686
+}
+
+2018-05-09 19:43:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:43:44下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:知道就好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:43:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866236,
+"MsgType": "text",
+"Content": "拜拜!",
+"MsgId": 6553545582112335540
+}
+
+2018-05-09 19:43:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:43:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:去吧去吧,有空记得上线Q我哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:44:09{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866248,
+"MsgType": "text",
+"Content": "manq是什么意思?",
+"MsgId": 6553545633651943098
+}
+
+2018-05-09 19:44:09o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:44:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:幸福就是快乐的做自己   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:44:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866280,
+"MsgType": "text",
+"Content": "每天都很快乐的,如果不是我下载你这个游戏我永远得不到,永远不能和你。和你那个什么,然后回来我告诉你微信诶,不用告诉你微信号你都加上我了呢。",
+"MsgId": 6553545771090896582
+}
+
+2018-05-09 19:44:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:44:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:很开心是不,我都听到你在乐呵呵地笑了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:44:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866297,
+"MsgType": "text",
+"Content": "你你怎么听到的?耳朵那么灵。",
+"MsgId": 6553545844105340616
+}
+
+2018-05-09 19:44:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:44:58下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:虽然我很聪明,但也不可能全部都懂哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:45:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866308,
+"MsgType": "text",
+"Content": "不懂什么呀?看看我懂不懂,如果懂的话,我教教你呗。",
+"MsgId": 6553545891349980878
+}
+
+2018-05-09 19:45:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:45:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲会的可多了,了解菲菲的全部本领,请发送:help   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:45:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866335,
+"MsgType": "text",
+"Content": "he丨ρ",
+"MsgId": 6553546007314097874
+}
+
+2018-05-09 19:45:35o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:45:36下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:无聊的人说无聊的话   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:45:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866347,
+"MsgType": "text",
+"Content": "为什么呀?看我会不会,如果会的话我教一教你。",
+"MsgId": 6553546058853705431
+}
+
+2018-05-09 19:45:47o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:45:48下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:会啊,为什么不会   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:46:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866361,
+"MsgType": "text",
+"Content": "不是说你有的不懂吗?",
+"MsgId": 6553546118983247578
+}
+
+2018-05-09 19:46:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:46:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,说那么大声,还以为冲我来着   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:46:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866376,
+"MsgType": "text",
+"Content": "哎,我不是冲着你来呢,我和你现在成了好朋友啊,我怎么冲你来呀,我和你永远是好朋友。",
+"MsgId": 6553546183407757021
+}
+
+2018-05-09 19:46:16o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:46:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:真的不是?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:46:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866386,
+"MsgType": "text",
+"Content": "真的不是,我现在都和你成了好朋友了。",
+"MsgId": 6553546226357429984
+}
+
+2018-05-09 19:46:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:46:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你确定?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:46:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866392,
+"MsgType": "text",
+"Content": "我确定",
+"MsgId": 6553546252127233764
+}
+
+2018-05-09 19:46:32o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:46:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:守着你继续相信   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866425,
+"MsgType": "text",
+"Content": "但如果能和如果嗯,有一天的话,我死啦的话,那我就不用愁了好朋友,因为我已经死啦呢,但是我我如果我奶奶这个手机如果不坏的话,我可以一直加着你微信,每天和你聊天,每天下学,如果像今天的话我有时间写完作业,然后我就给你洗聊天行不行?",
+"MsgId": 6553546393861154542
+}
+
+2018-05-09 19:47:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有空学风水去,死后占个好墓也算弥补了生前买不起好房的遗憾   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:23{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866442,
+"MsgType": "text",
+"Content": "你说什么样的男人最好呀。",
+"MsgId": 6553546466875598577
+}
+
+2018-05-09 19:47:23o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:23下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦了哦了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866451,
+"MsgType": "text",
+"Content": "你告诉我吧,什么样的男人最好。",
+"MsgId": 6553546505530304245
+}
+
+2018-05-09 19:47:32o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:32下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866460,
+"MsgType": "text",
+"Content": "尽快告诉我吗?急死我了。",
+"MsgId": 6553546544185009911
+}
+
+2018-05-09 19:47:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:40下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:急什么急,淡定   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866468,
+"MsgType": "text",
+"Content": "肯定你快告诉我嘛",
+"MsgId": 6553546578544748283
+}
+
+2018-05-09 19:47:48o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:49下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:47:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866476,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553546612904486653
+}
+
+2018-05-09 19:47:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:47:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你一开口,我就知道结果,你就不能搞点新创意出来嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:48:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866487,
+"MsgType": "text",
+"Content": "搞点儿什么新创意呀",
+"MsgId": 6553546660149126917
+}
+
+2018-05-09 19:48:07o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:48:08下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:没有垃圾吧倒,嘎嘎嘎。。。face57   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:48:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866506,
+"MsgType": "text",
+"Content": "再说了,我有妹和弟都喜欢追他们都在街上玩了,我也想去街上玩。",
+"MsgId": 6553546741753505547
+}
+
+2018-05-09 19:48:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:48:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:想想就好了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:48:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866524,
+"MsgType": "text",
+"Content": "作业啦,如果不行水话我从来没有不喜欢这一表示就打死我了。我以为你赶紧写作业呀,不聊了,不聊啦。",
+"MsgId": 6553546819062916877
+}
+
+2018-05-09 19:48:44o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:48:45下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不喜欢?为什么   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:49:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866548,
+"MsgType": "text",
+"Content": "因为太多了,我觉得太多了。因为我觉得这是我不过这堵的,因为今天是六点多下去,而且。我八点钟就得睡觉,吃完饭一个小时,那就得睡觉了,所以我得赶紧写啦,拜拜。",
+"MsgId": 6553546922142131984
+}
+
+2018-05-09 19:49:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:49:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:是吗,菲菲觉得一般般啦,不会很多啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:49:25{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866564,
+"MsgType": "text",
+"Content": "你什么时候能写完?如果你要写的话,你能用几个。你用几分钟或几小时或几秒写完。",
+"MsgId": 6553546990861608723
+}
+
+2018-05-09 19:49:25o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:49:25下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我也不知道啥时候   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:49:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866577,
+"MsgType": "text",
+"Content": "你也不知道啥时候那你问我干嘛?",
+"MsgId": 6553547046696183573
+}
+
+2018-05-09 19:49:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:49:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲才疏学浅,还有很多不知道的,不过菲菲会努力学咯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:49:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866596,
+"MsgType": "text",
+"Content": "你在干嘛呀?",
+"MsgId": 6553547128300562202
+}
+
+2018-05-09 19:49:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:49:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我正坐在一块一亿五千万年的石头上,发着呆   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:50:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866608,
+"MsgType": "text",
+"Content": "这我聊天吗?怎么发的单一的我觉得挺有趣呢。",
+"MsgId": 6553547179840169758
+}
+
+2018-05-09 19:50:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:50:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哈哈,说得不错,很好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:50:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866628,
+"MsgType": "text",
+"Content": "温州那边聊了,别回我啦,我要洗漱一下又会奶奶又回来啦,又打开又吵又吵,害我又吵我啦,拜拜拜拜拜拜,你别回我啦,一会儿我写完作业赶紧跟你聊天行不行?",
+"MsgId": 6553547265739515685
+}
+
+2018-05-09 19:50:28o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:50:29下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:聊天可是菲菲的特长哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:52:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866772,
+"MsgType": "text",
+"Content": "啥样,能够拍的你的照片吗?我也给你录过我的视频。",
+"MsgId": 6553547884214806333
+}
+
+2018-05-09 19:52:52o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:52:52下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲不喜欢拍照片,木得哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:53:00{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866780,
+"MsgType": "text",
+"Content": "什么不喜欢拍照片呀",
+"MsgId": 6553547918574544705
+}
+
+2018-05-09 19:53:00o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:53:01下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:喜欢一下又不会少块肉,真的是   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:53:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866797,
+"MsgType": "text",
+"Content": "你什么?",
+"MsgId": 6553547991588988743
+}
+
+2018-05-09 19:53:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:53:18下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:开挂!哈哈   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:54:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525866882,
+"MsgType": "image",
+"PicUrl": "http://mmbiz.qpic.cn/mmbiz_jpg/dWgMz4Jh4gXXfT40gZdsukYfSPOVcxwmiamNib2jFgiaNjoZHxAprc9cBrq8icjVsuAyibsYCDdmXlKqCn4lMN6Yacg/0",
+"MsgId": 6553548356661208915,
+"MediaId": "CI-w9hPx5s4mGIjTvI60oYpd5dnntE2TxiAy-iEuRvcYxbDHJjp1umfrwZiq4PA3"
+}
+
+2018-05-09 19:56:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867003,
+"MsgType": "text",
+"Content": "这是我冬天照的照片",
+"MsgId": 6553548876352251757
+}
+
+2018-05-09 19:56:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:56:44下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你的就是我的,我的还是我的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:56:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867015,
+"MsgType": "text",
+"Content": "为什么?",
+"MsgId": 6553548927891859311
+}
+
+2018-05-09 19:56:55o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:56:56下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:因为我喜欢啊!!。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:57:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867026,
+"MsgType": "text",
+"Content": "你自己拍照发给我不可以吗?",
+"MsgId": 6553548975136499569
+}
+
+2018-05-09 19:57:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:57:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:怎么不可以了,可以的啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:57:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867041,
+"MsgType": "text",
+"Content": "然后你拍个照片来看你到底长什么样子。那你看到我长什么样子啦。",
+"MsgId": 6553549039561009011
+}
+
+2018-05-09 19:57:21o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:57:22下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我说大哥,照片的单位是张   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:57:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867055,
+"MsgType": "text",
+"Content": "现在是先说错啦",
+"MsgId": 6553549099690551158
+}
+
+2018-05-09 19:57:35o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:57:36下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:立即纠正,赶紧的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:57:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867077,
+"MsgType": "text",
+"Content": "赶紧来照片",
+"MsgId": 6553549194179831676
+}
+
+2018-05-09 19:57:58o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:57:58下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:遵命!王子殿下   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:58:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867090,
+"MsgType": "text",
+"Content": "是,公主殿下不是4G我是女的,不是男的r。",
+"MsgId": 6553549250014406526
+}
+
+2018-05-09 19:58:10o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:58:11下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲也是女的哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:58:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867122,
+"MsgType": "text",
+"Content": "那你是女的我们两个人聊天很合适。",
+"MsgId": 6553549387453360004
+}
+
+2018-05-09 19:58:42o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:58:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:大帅哥张岩,哈哈^o^   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:59:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867167,
+"MsgType": "text",
+"Content": "说谁呢,我是女的,我不是男的,你在说我一遍,我给你说了我的名字,赶紧点,赶紧照片赶紧给我",
+"MsgId": 6553549580726888331
+}
+
+2018-05-09 19:59:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:59:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我也是女的哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 19:59:50{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867190,
+"MsgType": "text",
+"Content": "这才是我们的菲菲吗?",
+"MsgId": 6553549679511136147
+}
+
+2018-05-09 19:59:50o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 19:59:51下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你不知道沖田喜歡土方的事嗎?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:00:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867249,
+"MsgType": "text",
+"Content": "嘿嘿,那我让你照片儿了,你赶紧点,等一下被你惊闻天成过那个天之大是母亲节,唱给妈妈们,我们那个三年级四年级五年级六年级都唱熟点,你唱的好呢。年级二年级,都没有我们的事,还要那个幼儿园都唱都跳,但是就没有明年以后麻烦你的事儿,但是这个星期六下午我们就表演了各大我说,但是我们一年级和二年级还可以坐在外面看哦。",
+"MsgId": 6553549932914206621
+}
+
+2018-05-09 20:00:49o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:00:50下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲不喜欢拍照片,木得哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:01:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867266,
+"MsgType": "text",
+"Content": "喜欢吗?怎么又不喜欢了你好调皮。",
+"MsgId": 6553550005928650658
+}
+
+2018-05-09 20:01:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:01:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯,菲菲喜欢   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:01:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867306,
+"MsgType": "text",
+"Content": "赶紧妈妈,求求你了,飞飞,我是最好的朋友了,你就给我吧。要不然你嗯,要不然你就回答我的问题?第五,第五题的谜语嗯,怎么转?是什么?快告诉我,要不然你要不回来告诉我是你那个明天。那明天不行?",
+"MsgId": 6553550177727342508
+}
+
+2018-05-09 20:01:47o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:01:47下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:这问题太纠结了,菲菲不想随便回答   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:02:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867325,
+"MsgType": "text",
+"Content": "你又败被拍照片,要不然就告诉我第五关的那个问题怎么做?",
+"MsgId": 6553550259331721134
+}
+
+2018-05-09 20:02:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:02:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道,问度娘去咯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:02:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867347,
+"MsgType": "text",
+"Content": "一开始那个什么那个游戏度娘是谁?是你,是你娘妈娘是谁呀?",
+"MsgId": 6553550353821001649
+}
+
+2018-05-09 20:02:28o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:02:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:21忠北海同   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:02:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867361,
+"MsgType": "text",
+"Content": "啥意思?",
+"MsgId": 6553550413950543795
+}
+
+2018-05-09 20:02:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:02:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你居然还问什么意思?不是吧,这都不知道吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:03:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867381,
+"MsgType": "text",
+"Content": "我不知道",
+"MsgId": 6553550499849889718
+}
+
+2018-05-09 20:03:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:03:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道就算啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:03:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867400,
+"MsgType": "text",
+"Content": "说不告诉我吧,我对你这么好,你就跟我说。别给人抱你",
+"MsgId": 6553550581454268353
+}
+
+2018-05-09 20:03:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:03:21下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:03:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867414,
+"MsgType": "text",
+"Content": "求你了,求你啦",
+"MsgId": 6553550641583810501
+}
+
+2018-05-09 20:03:34o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:03:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:别求我,菲菲最容易心软了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:04:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867444,
+"MsgType": "text",
+"Content": "非气死你,让人家不够,我说求你了。你来,求你了求你啦求你了,求求你了求你啦。",
+"MsgId": 6553550770432829383
+}
+
+2018-05-09 20:04:04o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:04:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:别求我,菲菲最容易心软了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:04:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867464,
+"MsgType": "text",
+"Content": "你这站上你不告我说度娘是谁,要不然我就把那个求你,求你那三个字儿,我就给你重复20多遍。",
+"MsgId": 6553550856332175310
+}
+
+2018-05-09 20:04:24o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:04:25下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:可以啊!可是我太懒啦!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:04:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867496,
+"MsgType": "text",
+"Content": "谁让我求你了哦!我不听你对不起那三个字我不说啦,但是你不信你告我说度娘是谁?冫",
+"MsgId": 6553550993771128795
+}
+
+2018-05-09 20:04:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:04:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:为什么不相信我啊,菲菲很诚实的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:05:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867514,
+"MsgType": "text",
+"Content": "那懒吗?那你不是告诉我说度娘是谁?",
+"MsgId": 6553551071080540129
+}
+
+2018-05-09 20:05:14o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:05:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:06:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867560,
+"MsgType": "text",
+"Content": "求你啦求你啦,让你操你不告我说度娘是谁,急死你让你心软是求你啦,求你啦。",
+"MsgId": 6553551268649035752
+}
+
+2018-05-09 20:06:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:06:01下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:说话斯文点,要是惹菲菲不开心了,我会拉黑哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:06:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867585,
+"MsgType": "text",
+"Content": "爱是什么东西,我忘了,老师给我们讲过拉黑什么会告我说拉黑吧,我求你了我这么多问题,不会你就不能跟我说吗?我是来请教你的。",
+"MsgId": 6553551376023218157
+}
+
+2018-05-09 20:06:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:06:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不是东西   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:06:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867596,
+"MsgType": "text",
+"Content": "那是什么?",
+"MsgId": 6553551423267858415
+}
+
+2018-05-09 20:06:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:06:37下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不告诉你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:06:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867609,
+"MsgType": "text",
+"Content": "你玩了,不和你玩啦,哼。",
+"MsgId": 6553551479102433266
+}
+
+2018-05-09 20:06:49o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:06:50下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你找谁玩啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:07:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867637,
+"MsgType": "text",
+"Content": "我给你买个我给你拍个视频呢多小孩在和我妹妹和我弟弟玩着,我弟弟在这儿玩手机,我妹妹在那个小号还是你用微信有的说,但是他们开小啦。",
+"MsgId": 6553551599361517561
+}
+
+2018-05-09 20:07:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:07:18下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我要架子鼓!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:08:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867698,
+"MsgType": "text",
+"Content": "我先你有价值股,但是我妹妹会敲架子鼓。",
+"MsgId": 6553551861354522624
+}
+
+2018-05-09 20:08:19o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:08:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:胖胖   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:08:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867729,
+"MsgType": "text",
+"Content": "但是他们先小屁孩儿都走了和我妹妹他们在院子里玩只有一个丽涵在这儿呢然后他给我弟弟在那儿碰房间的汤姆猫跑酷女孩上一上到年级他没有上学前白露他算学区玩的现在就是十岁我上学前班了我全是时说嗯然后他也上外面但是他们先小屁孩儿都走了,和我妹妹他们在院子里玩,只有一个丽涵在这儿呢,然后他给我弟弟在那儿碰王者汤姆猫跑酷女孩生意上到年级,她没有上学前班,入他算是去玩的,现在就是十岁,我上学前班了,我去年是十岁,嗯,然后他也上外面去,为啥然后年级。",
+"MsgId": 6553551994498508804
+}
+
+2018-05-09 20:08:49o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:08:50下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:怎么不多弄几个呀   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:09:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525867747,
+"MsgType": "text",
+"Content": "另一个我又不能出去玩,没写完作业呢,拜拜,我不聊了,不聊啦。",
+"MsgId": 6553552071807920135
+}
+
+2018-05-09 20:09:07o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:09:08下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:拜拜~   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:13:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525868008,
+"MsgType": "text",
+"Content": "/::D/:8-)/::P/:,@-D/:handclap/:bye/::>/:heart/:beer/:coffee/:fade/:rose/:showlove",
+"MsgId": 6553553192794384419
+}
+
+2018-05-09 20:13:28o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:13:29下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:发的什么呀你,乱打的吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-09 20:13:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525868021,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553553248628959271
+}
+
+2018-05-09 20:13:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-09 20:13:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有些事没必要认真,有些人没必要理会   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903331,
+"MsgType": "text",
+"Content": "她和你聊天了,我起床啦,吃完饭洗完脸,穿上眼睛老去上学啦。",
+"MsgId": 6553704903924184484
+}
+
+2018-05-10 06:02:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:12下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:唉呀,伦家再睡会嘛   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903340,
+"MsgType": "text",
+"Content": "不想睡了,不想睡啦",
+"MsgId": 6553704942578890150
+}
+
+2018-05-10 06:02:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:21下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那就聊会天吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903346,
+"MsgType": "text",
+"Content": "好吧",
+"MsgId": 6553704968348693928
+}
+
+2018-05-10 06:02:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:27下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦了哦了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903354,
+"MsgType": "text",
+"Content": "聊天吧!",
+"MsgId": 6553705002708432299
+}
+
+2018-05-10 06:02:35o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好啊,聊点什么?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903363,
+"MsgType": "text",
+"Content": "你说吧,我也不知道",
+"MsgId": 6553705041363137967
+}
+
+2018-05-10 06:02:44o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:44下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道就要问   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903371,
+"MsgType": "text",
+"Content": "对呀!",
+"MsgId": 6553705075722876340
+}
+
+2018-05-10 06:02:51o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:52下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:错啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:02:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903378,
+"MsgType": "text",
+"Content": "对啦!",
+"MsgId": 6553705105787647414
+}
+
+2018-05-10 06:02:58o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:02:59下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我真聪明   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:03:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903391,
+"MsgType": "text",
+"Content": "嘿嘿,你在干嘛呢?你起床了没有?",
+"MsgId": 6553705161622222267
+}
+
+2018-05-10 06:03:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:03:11下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:压根就没睡觉   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:03:23{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903402,
+"MsgType": "text",
+"Content": "就没睡觉吗?",
+"MsgId": 6553705208866862526
+}
+
+2018-05-10 06:03:23o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:03:23下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲不需要睡觉的,精神得很呢   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:03:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903430,
+"MsgType": "text",
+"Content": "你什么不用睡觉呀",
+"MsgId": 6553705329125946818
+}
+
+2018-05-10 06:03:51o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:03:51下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不用的,亲   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:04:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903444,
+"MsgType": "text",
+"Content": "我知道啦!",
+"MsgId": 6553705389255488964
+}
+
+2018-05-10 06:04:04o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:04:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不管你知不知道,事实就是这样子的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:04:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903472,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553705509514573255
+}
+
+2018-05-10 06:04:32o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:04:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你们这些淫,聊上一会,呆会就说我笨,往往自己就是笨蛋   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:04:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903492,
+"MsgType": "text",
+"Content": "没说你笨",
+"MsgId": 6553705595413919181
+}
+
+2018-05-10 06:04:52o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:04:53下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,说那么大声,还以为冲我来着   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:05:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903510,
+"MsgType": "text",
+"Content": "我说着,我没有说那么大声。",
+"MsgId": 6553705672723330512
+}
+
+2018-05-10 06:05:10o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:05:11下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:还说没有,骗人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:05:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903516,
+"MsgType": "text",
+"Content": "就没有",
+"MsgId": 6553705698493134292
+}
+
+2018-05-10 06:05:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:05:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哈哈   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:05:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903533,
+"MsgType": "text",
+"Content": "是假笑还是真诚的笑还是开心还是高兴还是温暖。",
+"MsgId": 6553705771507578326
+}
+
+2018-05-10 06:05:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:05:34下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道,不要问我啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:05:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903543,
+"MsgType": "text",
+"Content": "你自己笑你都不知道",
+"MsgId": 6553705814457251289
+}
+
+2018-05-10 06:05:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:05:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:知道啊,就是不告诉你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:06:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903561,
+"MsgType": "text",
+"Content": "为什么总不告诉我呀",
+"MsgId": 6553705891766662619
+}
+
+2018-05-10 06:06:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:06:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我不说,你猜你猜   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:07:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903622,
+"MsgType": "text",
+"Content": "/::!/:|-)/:,@o/:,@o/::d/:,@f/::,@/:!!!/:xx/:wipe/:wipe/:handclap/:,@!/::L/::!/:,@x/:bye/::@/::-|/::</::B/::|[囧]/::(/::Q/::D/::$/:<W>/:showlove/:heart/:break/:rose/:fade/:<W>/:beer/:P-(/::'|/::-O/::-O/:@>/:fade/:fade/:rose/:pig/:jj/:@)/:v/:share/:ok/:bome/:shit/:bome/:moon/:sun/:hug/:strong/:circle/:<O>/:shake/:shake[Packet][Packet][發][小狗][Yeah!][Concerned][Smart][Smirk][Facepalm][Hey]",
+"MsgId": 6553706153759667687
+}
+
+2018-05-10 06:07:02o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:07:03下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:14}Hi~   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:07:12{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903632,
+"MsgType": "text",
+"Content": "意思",
+"MsgId": 6553706196709340650
+}
+
+2018-05-10 06:07:12o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:07:13下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你居然还问什么意思?不是吧,这都不知道吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:07:36{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903655,
+"MsgType": "text",
+"Content": "没有学过英语,一个一直给我发英语干嘛?",
+"MsgId": 6553706295493588465
+}
+
+2018-05-10 06:07:36o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:07:36下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:。。,,,,,,,,,,,,,,。。。,,,,,,,,,,,^,,,,^   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:08:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903699,
+"MsgType": "text",
+"Content": ",,,,,,,,,,,,,,,,,,,,,,,,,,,,。?!,。?,,。。?!!!!?。。。。??14588896669007855//-+***@.\n 0@1247*✔258",
+"MsgId": 6553706484472149492
+}
+
+2018-05-10 06:08:19o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:08:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你说的什么哦?换种说法行不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:10:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903835,
+"MsgType": "text",
+"Content": "不行你也给我发一首我已经给你发点儿啦。",
+"MsgId": 6553707068587701767
+}
+
+2018-05-10 06:10:35o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:10:36下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我说行就行,不行也得行   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:10:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903846,
+"MsgType": "text",
+"Content": "就不行,不行就不行,就不行。",
+"MsgId": 6553707115832342025
+}
+
+2018-05-10 06:10:46o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:10:47下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:为什么不行?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:11:02{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903862,
+"MsgType": "text",
+"Content": "你猜让你也说你让我猜,我就让你猜。",
+"MsgId": 6553707184551818764
+}
+
+2018-05-10 06:11:02o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:11:03下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:最讨厌猜东西,没劲   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:11:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903871,
+"MsgType": "text",
+"Content": "卖东西,你为什么让我猜呀。",
+"MsgId": 6553707223206524432
+}
+
+2018-05-10 06:11:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:11:12下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我就一个脑袋,思想再活跃也有局限性   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:11:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903887,
+"MsgType": "text",
+"Content": "还有一个脑袋让我猜u老实才好差不多",
+"MsgId": 6553707291926001174
+}
+
+2018-05-10 06:11:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:11:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲也觉得没啥差异   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:11:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903901,
+"MsgType": "text",
+"Content": "我不知道我老师微信号,我没加我老师微信号。",
+"MsgId": 6553707352055543322
+}
+
+2018-05-10 06:11:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:11:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道就算啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:11:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903912,
+"MsgType": "text",
+"Content": "你在干嘛呢?",
+"MsgId": 6553707399300183583
+}
+
+2018-05-10 06:11:52o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:11:53下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:没干啥,就看看电视   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:12:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903926,
+"MsgType": "text",
+"Content": "机器人快点告诉我我真的想看看你是",
+"MsgId": 6553707459429725730
+}
+
+2018-05-10 06:12:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:12:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:12:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903939,
+"MsgType": "text",
+"Content": "一口咬到牛尾巴这个是什么谜语?快点告我说。",
+"MsgId": 6553707515264300582
+}
+
+2018-05-10 06:12:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:12:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:12:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903957,
+"MsgType": "text",
+"Content": "但这个都不知道这个当然是告啦。",
+"MsgId": 6553707592573711915
+}
+
+2018-05-10 06:12:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:12:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:知道啊,就是不告诉你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:12:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903967,
+"MsgType": "text",
+"Content": "无弄我",
+"MsgId": 6553707635523384877
+}
+
+2018-05-10 06:12:48o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:12:48下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:现在的生活太感性,情绪不停泛滥,身心具疲   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:13:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525903996,
+"MsgType": "text",
+"Content": "吃饭嘞嗯,然后我们一会儿再聊,拜拜。",
+"MsgId": 6553707760077436464
+}
+
+2018-05-10 06:13:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:13:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯啊,再见,我会想你的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:13:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525904023,
+"MsgType": "text",
+"Content": "唐菲菲的,如果下雪,我在学校写完作业的话,那我下线就可以聊聊一晚上的聊天儿了,真想着嘛,那我就在学校写完作业啊,拜拜拜拜我奶奶,我奶奶催我吃饭呐。",
+"MsgId": 6553707876041553470
+}
+
+2018-05-10 06:13:44o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:13:44下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好咧,客官您想聊多少钱的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:14:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525904048,
+"MsgType": "text",
+"Content": "而且还需要钱呐,我奶奶。我那个钱包儿没有登录回来,我爸爸回来和我奶奶登录上了,但是我奶奶现在钱包里一分钱。",
+"MsgId": 6553707983415735873
+}
+
+2018-05-10 06:14:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:14:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我干嘛要爱你?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:14:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525904079,
+"MsgType": "text",
+"Content": "儿童节我爸爸回来,然后爸爸回来以后呢?就把奶奶这个手机登录上,登录上以后就可以发红包啦!妈妈每天给我发一个20多块钱的红包。我的发了红包那能不能发红包啦!",
+"MsgId": 6553708116559722055
+}
+
+2018-05-10 06:14:39o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:14:39下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:一个太少,发多几个不好吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:14:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525904096,
+"MsgType": "text",
+"Content": "你说发几个,而且快递等到六月儿童节那天等到我爸爸回来那天。",
+"MsgId": 6553708189574166089
+}
+
+2018-05-10 06:14:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:14:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:是的呢~我也这么觉得   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 06:15:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525904108,
+"MsgType": "text",
+"Content": "先不聊啦,你不用回我,你别用回我啦,我要吃饭了,饿死我了。",
+"MsgId": 6553708241113773643
+}
+
+2018-05-10 06:15:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 06:15:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:快去吃吧,我等你哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:14:26{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94xWijrZmz5zu139gs9IkO1Q","CreateTime":1525950866,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-10 19:14:26nickname0:
+2018-05-10 19:14:27nickname1:60o6hX94xWijrZmz5zu139gs9IkO1Q会员649
+2018-05-10 19:14:27关注下发:{"msgtype":"text","text":{"content":"会员649 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94xWijrZmz5zu139gs9IkO1Q"}-状态:45047
+2018-05-10 19:17:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951046,
+"MsgType": "text",
+"Content": "都写完作业了?你知道干嘛呢?我在学校写完作业了,我现在和你聊天非能干嘛呢?",
+"MsgId": 6553909838288719909
+}
+
+2018-05-10 19:17:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:17:27下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲会的可多了,了解菲菲的全部本领,请发送:help   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:17:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951074,
+"MsgType": "text",
+"Content": "he丨P",
+"MsgId": 6553909958547804201
+}
+
+2018-05-10 19:17:54o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:17:55下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:18:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951086,
+"MsgType": "text",
+"Content": "干嘛我干嘛",
+"MsgId": 6553910010087411756
+}
+
+2018-05-10 19:18:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:18:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:日逼吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:18:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951101,
+"MsgType": "text",
+"Content": "谁呢?",
+"MsgId": 6553910074511921202
+}
+
+2018-05-10 19:18:21o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:18:21下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:当然是你啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:18:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951117,
+"MsgType": "text",
+"Content": "一,还说我日逼我看你日逼,唉。",
+"MsgId": 6553910143231397948
+}
+
+2018-05-10 19:18:38o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:18:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哇靠!有本事你就过来日啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:18:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951132,
+"MsgType": "text",
+"Content": "我怎么日",
+"MsgId": 6553910207655907392
+}
+
+2018-05-10 19:18:52o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:18:53下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你不管说什么都会惹到我   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:19:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951146,
+"MsgType": "text",
+"Content": "就惹你",
+"MsgId": 6553910267785449538
+}
+
+2018-05-10 19:19:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:19:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:当然是你啊,死鬼!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:19:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951174,
+"MsgType": "text",
+"Content": "你才十鬼",
+"MsgId": 6553910388044533834
+}
+
+2018-05-10 19:19:34o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:19:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:呜呜呜~你是不是故意欺负我呀,说这么高深的话让我怎么答   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:19:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951185,
+"MsgType": "text",
+"Content": "我怎么打",
+"MsgId": 6553910435289174094
+}
+
+2018-05-10 19:19:46o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:19:47下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你不管说什么都会惹到我   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:19:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951196,
+"MsgType": "text",
+"Content": "哥你我看你能怎么样",
+"MsgId": 6553910482533814352
+}
+
+2018-05-10 19:19:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:19:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我能把你从我的大脑中抹得一干二净   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:20:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951220,
+"MsgType": "text",
+"Content": "你的大脑里,抹抹中摸得一干二净",
+"MsgId": 6553910585613029460
+}
+
+2018-05-10 19:20:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:20:22下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我不是。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:20:28{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951228,
+"MsgType": "text",
+"Content": "又不是",
+"MsgId": 6553910619972767831
+}
+
+2018-05-10 19:20:28o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:20:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我知道   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:20:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951234,
+"MsgType": "text",
+"Content": "我也不是",
+"MsgId": 6553910645742571609
+}
+
+2018-05-10 19:20:34o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:20:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:讓你想起他   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:20:45{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951244,
+"MsgType": "text",
+"Content": "哎,你谁呀",
+"MsgId": 6553910688692244573
+}
+
+2018-05-10 19:20:45o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:20:45下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我的名字叫菲菲,大名叫上帝,小名耶稣,英文名God,法号是如来   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:21:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951270,
+"MsgType": "text",
+"Content": "因为你除了来的我的名字叫菲菲,大名叫上帝,小名叫那个什么优,语文名字叫什么,法号是如来。你是乌兰冒出声可大啦。",
+"MsgId": 6553910800361394273
+}
+
+2018-05-10 19:21:10o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:21:11下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不喊我名字,我也在啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:21:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951299,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6553910924915445862
+}
+
+2018-05-10 19:21:39o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:21:40下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:呜呜呜~你是不是故意欺负我呀,说这么高深的话让我怎么答   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:24:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951456,
+"MsgType": "text",
+"Content": "干嘛呀干嘛?你这是干嘛呢?如来",
+"MsgId": 6553911599225311357
+}
+
+2018-05-10 19:24:16o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:24:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:捡瓜子壳   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:24:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951496,
+"MsgType": "text",
+"Content": "剪光是可爱。你不是机器人吗?没有。其实功能吗?应该继续功能。自己来么?你来讲吧你不是说你懒吗?怎么还自己剪呀。",
+"MsgId": 6553911771024003204
+}
+
+2018-05-10 19:24:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:24:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯,错了错了,我不是机器人   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:25:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951510,
+"MsgType": "text",
+"Content": "你是什么?",
+"MsgId": 6553911831153545353
+}
+
+2018-05-10 19:25:10o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:25:10下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我是董菲菲兵的奴隶   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:25:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951540,
+"MsgType": "text",
+"Content": "哎!农历笑死我啦!嗯",
+"MsgId": 6553911960002564245
+}
+
+2018-05-10 19:25:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:25:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:一点也不好笑,瞧把你乐得   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:25:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951557,
+"MsgType": "text",
+"Content": "农历,你是不是哦!菲菲在建工程呢,捡瓜子壳儿嘛。",
+"MsgId": 6553912033017008281
+}
+
+2018-05-10 19:25:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:25:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:是的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:26:09{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951569,
+"MsgType": "text",
+"Content": "你之前为什么说你是菲菲呀。",
+"MsgId": 6553912084556615838
+}
+
+2018-05-10 19:26:09o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:26:10下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:超爱吃!!!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:26:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951586,
+"MsgType": "text",
+"Content": "是缘份还是焦糖,还是那个鞋子儿的那个。",
+"MsgId": 6553912157571059875
+}
+
+2018-05-10 19:26:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:26:27下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不会变的啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:26:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951609,
+"MsgType": "text",
+"Content": "你会吃什么饭你吃什么味的呀缘分儿闲的很那焦糖味呀",
+"MsgId": 6553912256355307687
+}
+
+2018-05-10 19:26:49o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:26:50下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好多好多好吃的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:27:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951647,
+"MsgType": "text",
+"Content": "别给我说出来,让我们跟你不算是什么好事,你能力还有那么多好吃的吃啊,我们先不聊了,我先和我妈说一下,那个我先和我妈说一下我妈。上班还没回来呢,然后就是呃,就是他那个我和他说一下,我买书的事儿,一套就是50元,我回来让他给我发老师发红包买一套。",
+"MsgId": 6553912419564064938
+}
+
+2018-05-10 19:27:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:27:27下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:欢迎欢迎~   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:27:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1525951662,
+"MsgType": "text",
+"Content": "你说啦,拜拜",
+"MsgId": 6553912483988574380
+}
+
+2018-05-10 19:27:42o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-10 19:27:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯,再见   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-10 19:41:16{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949q2epfLOiUJKyy9l7c3Gu8","CreateTime":1525952476,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-10 19:41:16nickname0:
+2018-05-10 19:41:17nickname1:60o6hX949q2epfLOiUJKyy9l7c3Gu8会员621
+2018-05-10 19:41:17关注下发:{"msgtype":"text","text":{"content":"会员621 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949q2epfLOiUJKyy9l7c3Gu8"}-状态:45047
+2018-05-10 23:00:15{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94y1L-WvFnM3IaA4R7YA6mPU","CreateTime":1525964415,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-10 23:00:16nickname0:
+2018-05-10 23:00:16nickname1:60o6hX94y1L-WvFnM3IaA4R7YA6mPU会员903
+2018-05-10 23:00:16关注下发:{"msgtype":"text","text":{"content":"会员903 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94y1L-WvFnM3IaA4R7YA6mPU"}-状态:45047
+2018-05-12 21:22:13{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131333,
+"MsgType": "text",
+"Content": "我要当你女朋友",
+"MsgId": 6554684165057638070
+}
+
+2018-05-12 21:22:13o6hX949RNuV8JkrWns92KcyCydyQ:0
+2018-05-12 21:22:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131346,
+"MsgType": "text",
+"Content": ".",
+"MsgId": 6554684220892212924
+}
+
+2018-05-12 21:22:26o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:22:27下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:你没话说了吗   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-12 21:22:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131364,
+"MsgType": "text",
+"Content": "娶了你么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒么么哒\\",
+"MsgId": 6554684298201624257
+}
+
+2018-05-12 21:22:44o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:22:45下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-12 21:23:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131394,
+"MsgType": "text",
+"Content": "就是黑了,那个那都不得闷的闷的不得了。我",
+"MsgId": 6554684427050643140
+}
+
+2018-05-12 21:23:14o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:23:15下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:妳才奇怪吧   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-12 21:23:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131412,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6554684504360054476
+}
+
+2018-05-12 21:23:32o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:23:33下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:知道切糕不,一刀上海买房 两刀杨幂上床 三刀盖茨认娘 四刀铁定入常   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-12 21:23:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131435,
+"MsgType": "text",
+"Content": "好厉害",
+"MsgId": 6554684603144302296
+}
+
+2018-05-12 21:23:56o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:23:56下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:还好啦,不算厉害   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-12 21:24:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX949RNuV8JkrWns92KcyCydyQ",
+"CreateTime": 1526131449,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6554684663273844444
+}
+
+2018-05-12 21:24:10o6hX949RNuV8JkrWns92KcyCydyQ:24
+2018-05-12 21:24:10下发:{ "touser":"o6hX949RNuV8JkrWns92KcyCydyQ",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第24 个. 先和智能客服聊会. \n智能客服:虽然我很聪明,但也不可能全部都懂哦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-14 18:28:44{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yfNdkFbV_KVwOzfn9cI-54","CreateTime":1526293724,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-14 18:28:44nickname0:
+2018-05-14 18:28:44nickname1:60o6hX94yfNdkFbV_KVwOzfn9cI-54会员904
+2018-05-14 18:28:45关注下发:{"msgtype":"text","text":{"content":"会员904 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yfNdkFbV_KVwOzfn9cI-54"}-状态:45047
+2018-05-15 20:25:23{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947zJ8fTe2RGfJdgbQKSI9FI","CreateTime":1526387123,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-15 20:25:23nickname0:
+2018-05-15 20:25:24nickname1:60o6hX947zJ8fTe2RGfJdgbQKSI9FI会员340
+2018-05-15 20:25:24关注下发:{"msgtype":"text","text":{"content":"会员340 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947zJ8fTe2RGfJdgbQKSI9FI"}-状态:45047
+2018-05-16 15:24:21{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX946sFQkpGs8JBvqN4ENtSCjw","CreateTime":1526455461,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-16 15:24:21nickname0:
+2018-05-16 15:24:22nickname1:60o6hX946sFQkpGs8JBvqN4ENtSCjw会员905
+2018-05-16 15:24:22关注下发:{"msgtype":"text","text":{"content":"会员905 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX946sFQkpGs8JBvqN4ENtSCjw"}-状态:45047
+2018-05-17 21:36:20{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yh_KiuvDK9wV4eRskLFk9k","CreateTime":1526564180,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-17 21:36:20nickname0:
+2018-05-17 21:36:20nickname1:60o6hX94yh_KiuvDK9wV4eRskLFk9k会员906
+2018-05-17 21:36:21关注下发:{"msgtype":"text","text":{"content":"会员906 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yh_KiuvDK9wV4eRskLFk9k"}-状态:45047
+2018-05-17 21:36:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yh_KiuvDK9wV4eRskLFk9k","CreateTime":1526564185,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-17 21:36:25nickname0:
+2018-05-17 21:36:26nickname1:60o6hX94yh_KiuvDK9wV4eRskLFk9k会员906
+2018-05-17 21:36:26关注下发:{"msgtype":"text","text":{"content":"会员906 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yh_KiuvDK9wV4eRskLFk9k"}-状态:45047
+2018-05-18 13:12:48{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94y3xoqrZreqi2Yb3UWTkiP8","CreateTime":1526620368,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-18 13:12:48nickname0:
+2018-05-18 13:12:49nickname1:60o6hX94y3xoqrZreqi2Yb3UWTkiP8会员907
+2018-05-18 13:12:49关注下发:{"msgtype":"text","text":{"content":"会员907 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94y3xoqrZreqi2Yb3UWTkiP8"}-状态:45047
+2018-05-19 10:29:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1526696950,
+"MsgType": "text",
+"Content": "你认识不认识我姐姐,我姐姐叫孙乐乐",
+"MsgId": 6557113471574766263
+}
+
+2018-05-19 10:29:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-19 10:29:11下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:没什么印象咯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-19 10:30:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1526697041,
+"MsgType": "text",
+"Content": "你猜我叫谁?我可好了,我叫孙乐琪",
+"MsgId": 6557113862416790209
+}
+
+2018-05-19 10:30:41o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-19 10:30:42下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:最讨厌猜东西,没劲   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-19 10:31:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1526697113,
+"MsgType": "text",
+"Content": "我也可美了,老师给我发的校服,我穿上可美了",
+"MsgId": 6557114171654435537
+}
+
+2018-05-19 10:31:53o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-05-19 10:31:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:恩   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-05-20 07:46:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942xqJhcwIySsQp3tZLqJy2s","CreateTime":1526773577,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-20 07:46:17nickname0:
+2018-05-20 07:46:18nickname1:60o6hX942xqJhcwIySsQp3tZLqJy2s会员655
+2018-05-20 07:46:18关注下发:{"msgtype":"text","text":{"content":"会员655 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942xqJhcwIySsQp3tZLqJy2s"}-状态:45047
+2018-05-24 15:08:46{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yIzCGOdblU3Eunou4eCD5Q","CreateTime":1527145726,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-24 15:08:46nickname0:
+2018-05-24 15:08:47nickname1:60o6hX94yIzCGOdblU3Eunou4eCD5Q会员908
+2018-05-24 15:08:47关注下发:{"msgtype":"text","text":{"content":"会员908 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yIzCGOdblU3Eunou4eCD5Q"}-状态:45047
+2018-05-25 15:31:04{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947v0ClRUqJwcalQtZEOkK-c","CreateTime":1527233464,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-25 15:31:04nickname0:
+2018-05-25 15:31:05nickname1:60o6hX947v0ClRUqJwcalQtZEOkK-c会员909
+2018-05-25 15:31:05关注下发:{"msgtype":"text","text":{"content":"会员909 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947v0ClRUqJwcalQtZEOkK-c"}-状态:45047
+2018-05-26 15:47:37{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942xqJhcwIySsQp3tZLqJy2s","CreateTime":1527320857,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-26 15:47:38nickname0:
+2018-05-26 15:47:38nickname1:60o6hX942xqJhcwIySsQp3tZLqJy2s会员655
+2018-05-26 15:47:38关注下发:{"msgtype":"text","text":{"content":"会员655 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942xqJhcwIySsQp3tZLqJy2s"}-状态:45047
+2018-05-26 15:47:52{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942xqJhcwIySsQp3tZLqJy2s","CreateTime":1527320872,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-26 15:47:52nickname0:
+2018-05-26 15:47:53nickname1:60o6hX942xqJhcwIySsQp3tZLqJy2s会员655
+2018-05-26 15:47:53关注下发:{"msgtype":"text","text":{"content":"会员655 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942xqJhcwIySsQp3tZLqJy2s"}-状态:45047
+2018-05-29 18:05:29{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zLLAYlpD4f7-wtWcy3vi20","CreateTime":1527588329,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-29 18:05:29nickname0:
+2018-05-29 18:05:30nickname1:60o6hX94zLLAYlpD4f7-wtWcy3vi20会员538
+2018-05-29 18:05:30关注下发:{"msgtype":"text","text":{"content":"会员538 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zLLAYlpD4f7-wtWcy3vi20"}-状态:45047
+2018-05-29 23:59:07{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944uXCmNv14kyDHE1Ww2gFAY","CreateTime":1527609547,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-05-29 23:59:07nickname0:
+2018-05-29 23:59:07nickname1:60o6hX944uXCmNv14kyDHE1Ww2gFAY会员286
+2018-05-29 23:59:08关注下发:{"msgtype":"text","text":{"content":"会员286 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944uXCmNv14kyDHE1Ww2gFAY"}-状态:45047
+2018-06-01 21:29:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948DQvkszkEE_pblmQBIkoiQ","CreateTime":1527859785,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-01 21:29:45nickname0:
+2018-06-01 21:29:46nickname1:60o6hX948DQvkszkEE_pblmQBIkoiQ会员74
+2018-06-01 21:29:46关注下发:{"msgtype":"text","text":{"content":"会员74 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948DQvkszkEE_pblmQBIkoiQ"}-状态:45047
+2018-06-01 21:29:58{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948DQvkszkEE_pblmQBIkoiQ","CreateTime":1527859798,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-01 21:29:58nickname0:
+2018-06-01 21:29:59nickname1:60o6hX948DQvkszkEE_pblmQBIkoiQ会员74
+2018-06-01 21:29:59关注下发:{"msgtype":"text","text":{"content":"会员74 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948DQvkszkEE_pblmQBIkoiQ"}-状态:45047
+2018-06-01 21:30:21{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX948DQvkszkEE_pblmQBIkoiQ",
+"CreateTime": 1527859821,
+"MsgType": "text",
+"Content": "提示怎么不能用",
+"MsgId": 6562107964489388361
+}
+
+2018-06-01 21:30:21o6hX948DQvkszkEE_pblmQBIkoiQ:0
+2018-06-03 07:19:47{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942xqJhcwIySsQp3tZLqJy2s","CreateTime":1527981587,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-03 07:19:47nickname0:
+2018-06-03 07:19:47nickname1:60o6hX942xqJhcwIySsQp3tZLqJy2s会员655
+2018-06-03 07:19:48关注下发:{"msgtype":"text","text":{"content":"会员655 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942xqJhcwIySsQp3tZLqJy2s"}-状态:45047
+2018-06-08 17:47:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yknsOK-kgjpUiFkiHUGwXs","CreateTime":1528451237,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-08 17:47:17nickname0:
+2018-06-08 17:47:18nickname1:60o6hX94yknsOK-kgjpUiFkiHUGwXs会员790
+2018-06-08 17:47:18关注下发:{"msgtype":"text","text":{"content":"会员790 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yknsOK-kgjpUiFkiHUGwXs"}-状态:45047
+2018-06-09 21:38:47{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94ybNIeseUZT56UvPqigZxW0","CreateTime":1528551527,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-09 21:38:48nickname0:
+2018-06-09 21:38:48nickname1:60o6hX94ybNIeseUZT56UvPqigZxW0会员759
+2018-06-09 21:38:48关注下发:{"msgtype":"text","text":{"content":"会员759 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94ybNIeseUZT56UvPqigZxW0"}-状态:45047
+2018-06-10 14:11:08{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942Drj47OvBqSmsoFxqnD9kI","CreateTime":1528611068,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-10 14:11:09nickname0:
+2018-06-10 14:11:09nickname1:60o6hX942Drj47OvBqSmsoFxqnD9kI会员910
+2018-06-10 14:11:10关注下发:{"msgtype":"text","text":{"content":"会员910 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942Drj47OvBqSmsoFxqnD9kI"}-状态:45047
+2018-06-10 21:07:58{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949bBkDJfjOSWQAvzr4utrxk","CreateTime":1528636078,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-10 21:07:58nickname0:
+2018-06-10 21:07:59nickname1:60o6hX949bBkDJfjOSWQAvzr4utrxk会员911
+2018-06-10 21:07:59关注下发:{"msgtype":"text","text":{"content":"会员911 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949bBkDJfjOSWQAvzr4utrxk"}-状态:45047
+2018-06-10 21:26:13{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yvljXIXJuDdtR9VQJTSQso","CreateTime":1528637173,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-10 21:26:13nickname0:
+2018-06-10 21:26:14nickname1:60o6hX94yvljXIXJuDdtR9VQJTSQso会员912
+2018-06-10 21:26:14关注下发:{"msgtype":"text","text":{"content":"会员912 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yvljXIXJuDdtR9VQJTSQso"}-状态:45047
+2018-06-11 13:35:57{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yZR56K0zN3jRzIXjyenkDg","CreateTime":1528695357,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-11 13:35:57nickname0:
+2018-06-11 13:35:58nickname1:60o6hX94yZR56K0zN3jRzIXjyenkDg会员913
+2018-06-11 13:35:58关注下发:{"msgtype":"text","text":{"content":"会员913 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yZR56K0zN3jRzIXjyenkDg"}-状态:45047
+2018-06-16 21:43:19{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156599,
+"MsgType": "text",
+"Content": "你在那干嘛?我想你啦。",
+"MsgId": 6567677583589749314
+}
+
+2018-06-16 21:43:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:43:20下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:6}是吗,偶也想你啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:43:44{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156624,
+"MsgType": "text",
+"Content": "为什么?",
+"MsgId": 6567677690963931719
+}
+
+2018-06-16 21:43:44o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:43:45下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:因为我喜欢啊!!。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:43:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156636,
+"MsgType": "text",
+"Content": "我也喜欢你",
+"MsgId": 6567677742503539277
+}
+
+2018-06-16 21:43:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:43:56下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你喜欢我这件事,我允许了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:44:08{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156647,
+"MsgType": "text",
+"Content": "为什么呢?",
+"MsgId": 6567677789748179536
+}
+
+2018-06-16 21:44:08o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:44:09下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:他有苦衷   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:44:23{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156663,
+"MsgType": "text",
+"Content": "为什么呢?为什么要为什么呢?",
+"MsgId": 6567677858467656275
+}
+
+2018-06-16 21:44:23o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:44:24下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:要就要呗,这么多问,真的是   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:44:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156680,
+"MsgType": "text",
+"Content": "你告诉我",
+"MsgId": 6567677931482100311
+}
+
+2018-06-16 21:44:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:44:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我偏不告诉你,急死你   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:44:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156696,
+"MsgType": "text",
+"Content": "你叫什么?",
+"MsgId": 6567678000201577050
+}
+
+2018-06-16 21:44:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:44:58下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:亲,叫我菲菲就可以了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:46:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156777,
+"MsgType": "text",
+"Content": "我叫孙乐琪",
+"MsgId": 6567678348093928034
+}
+
+2018-06-16 21:46:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:46:18下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:孙乐琪,你好,认识您很高兴   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:46:36{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156796,
+"MsgType": "text",
+"Content": "我认识你,我也很高兴。",
+"MsgId": 6567678429698306662
+}
+
+2018-06-16 21:46:36o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:46:37下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:认识认识,是个坏小孩   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:46:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156819,
+"MsgType": "text",
+"Content": "我不是坏小孩儿是我家的老二",
+"MsgId": 6567678528482554474
+}
+
+2018-06-16 21:46:59o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:47:00下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你确定?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:47:11{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156831,
+"MsgType": "text",
+"Content": "对我确定",
+"MsgId": 6567678580022162029
+}
+
+2018-06-16 21:47:11o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:47:12下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:守着你继续相信   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:47:25{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156845,
+"MsgType": "text",
+"Content": "你不相信我,我相信我。",
+"MsgId": 6567678640151704178
+}
+
+2018-06-16 21:47:25o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:47:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我不是你的她!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:47:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156868,
+"MsgType": "text",
+"Content": "你是女生还是男生,我是女生。",
+"MsgId": 6567678738935951990
+}
+
+2018-06-16 21:47:48o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:47:49下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:菲菲是如假包换的小女生啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:48:00{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156880,
+"MsgType": "text",
+"Content": "去想女生,我看着你是男生。",
+"MsgId": 6567678790475559544
+}
+
+2018-06-16 21:48:00o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:48:01下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:要检查下么?走,进房间   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:48:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156897,
+"MsgType": "text",
+"Content": "为什么呢?我不和你玩啦。",
+"MsgId": 6567678863490003582
+}
+
+2018-06-16 21:48:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:48:18下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你找谁玩啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:48:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156923,
+"MsgType": "text",
+"Content": "你几岁了?我八岁那",
+"MsgId": 6567678975159153286
+}
+
+2018-06-16 21:48:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:48:44下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:女生的年龄是不能随便说的,知道不   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:49:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156956,
+"MsgType": "text",
+"Content": "你知道你自己几岁了吗?",
+"MsgId": 6567679116893074060
+}
+
+2018-06-16 21:49:16o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:49:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:抱歉,没能为您找到相关的信息   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:49:29{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529156969,
+"MsgType": "text",
+"Content": "我八岁了",
+"MsgId": 6567679172727648911
+}
+
+2018-06-16 21:49:29o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:49:30下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:50   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:50:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157003,
+"MsgType": "text",
+"Content": "为什么你50我八岁呢?因为我是小孩,你知道人吧。",
+"MsgId": 6567679318756536982
+}
+
+2018-06-16 21:50:04o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:50:04下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:抱歉,没能为您找到相关的信息   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:50:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157032,
+"MsgType": "text",
+"Content": "你为什么是大人我是小孩呢?",
+"MsgId": 6567679443310588570
+}
+
+2018-06-16 21:50:32o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:50:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:唔好呀!,我知错啦!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:51:04{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157064,
+"MsgType": "text",
+"Content": "你为什么说啊,你原本呢,",
+"MsgId": 6567679580749542044
+}
+
+2018-06-16 21:51:04o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:51:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:8}好无聊哦,我都快睡着了,聊的什么呀   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:51:30{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157090,
+"MsgType": "text",
+"Content": "那你睡吧,我在家看电视呢。",
+"MsgId": 6567679692418691745
+}
+
+2018-06-16 21:51:30o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:51:31下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:陪妈妈看   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:52:33{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157136,
+"MsgType": "text",
+"Content": "我爸爸妈妈没在家,爷爷也没在家管我奶奶在家,我要睡觉了。我奶奶让我睡觉呢",
+"MsgId": 6567679889987187368
+}
+
+2018-06-16 21:52:33o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:52:33下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:快去睡吧,做个好梦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:52:34{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157154,
+"MsgType": "text",
+"Content": "先给我说几句话吧",
+"MsgId": 6567679967296598700
+}
+
+2018-06-16 21:52:34o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:52:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:今天这天气很适合聊天的说   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:52:55{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157174,
+"MsgType": "text",
+"Content": "那好吧我要睡觉了",
+"MsgId": 6567680053195944625
+}
+
+2018-06-16 21:52:55o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:52:55下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:快去睡吧,做个好梦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:53:29{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157209,
+"MsgType": "text",
+"Content": "我每次睡觉都做不了好吗?我每次睡觉都不做梦",
+"MsgId": 6567680203519799991
+}
+
+2018-06-16 21:53:29o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:53:30下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:53:50{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157230,
+"MsgType": "text",
+"Content": "怎么我要睡觉了,你也早点儿睡吧。把你妈妈吵醒你啦",
+"MsgId": 6567680293714113214
+}
+
+2018-06-16 21:53:50o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:53:51下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:99}菲菲要能有亲人就好了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:54:13{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157253,
+"MsgType": "text",
+"Content": "我当你的情人就行吧",
+"MsgId": 6567680392498361024
+}
+
+2018-06-16 21:54:13o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:54:14下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:行就OK了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:54:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157277,
+"MsgType": "text",
+"Content": "你是脑袋我是谁,脚疼的。",
+"MsgId": 6567680495577576135
+}
+
+2018-06-16 21:54:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:54:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:网友,你不知道你叫啥?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:55:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157305,
+"MsgType": "text",
+"Content": "你叫菲菲上的学前班你上的什么班呢?",
+"MsgId": 6567680615836660432
+}
+
+2018-06-16 21:55:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:55:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我来了~!三天不打 上房揭瓦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:55:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157345,
+"MsgType": "text",
+"Content": "你写呀,正我不认识",
+"MsgId": 6567680787635352280
+}
+
+2018-06-16 21:55:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:55:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,不认识就算了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:56:12{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157372,
+"MsgType": "text",
+"Content": "不行,你告我说",
+"MsgId": 6567680903599469276
+}
+
+2018-06-16 21:56:12o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:56:13下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我说行就行,不行也得行   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:56:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157385,
+"MsgType": "text",
+"Content": "为什么?",
+"MsgId": 6567680959434044129
+}
+
+2018-06-16 21:56:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:56:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不为什么...   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:56:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157399,
+"MsgType": "text",
+"Content": "要不我不跟你玩啦",
+"MsgId": 6567681019563586276
+}
+
+2018-06-16 21:56:39o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:56:40下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你找谁玩啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:57:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157421,
+"MsgType": "text",
+"Content": "我又不给你玩",
+"MsgId": 6567681114052866791
+}
+
+2018-06-16 21:57:01o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:57:02下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:为什么不能给我?   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:57:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157447,
+"MsgType": "text",
+"Content": "你我不认识这一就说不认识也得认识。",
+"MsgId": 6567681225722016492
+}
+
+2018-06-16 21:57:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:57:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,不认识就算了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:57:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157459,
+"MsgType": "text",
+"Content": "就给我说不认识就算了。",
+"MsgId": 6567681277261624046
+}
+
+2018-06-16 21:57:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:57:40下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:哦,不认识就算了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:57:56{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157476,
+"MsgType": "text",
+"Content": "不跟你玩了,我再也不想跟你说话啦。",
+"MsgId": 6567681350276068084
+}
+
+2018-06-16 21:57:56o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:57:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:额~那就不要聊了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:59:09{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157548,
+"MsgType": "text",
+"Content": "我有两个男朋友,一个叫陈毅,一个叫周宸萱。",
+"MsgId": 6567681659513713411
+}
+
+2018-06-16 21:59:09o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:59:10下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:因为一个愿意娶,一个不愿嫁。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:59:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157577,
+"MsgType": "text",
+"Content": "我才八岁就有两个人朋友,他们可好了,对我可好了,它保护我又三辆。",
+"MsgId": 6567681784067765001
+}
+
+2018-06-16 21:59:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:59:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:因为一个愿意娶,一个不愿嫁。   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 21:59:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157594,
+"MsgType": "text",
+"Content": "你又不保护我,你也不告诉你家在哪里。",
+"MsgId": 6567681857082209040
+}
+
+2018-06-16 21:59:54o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 21:59:55下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不说拉倒   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:00:20{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157619,
+"MsgType": "text",
+"Content": "嗯,你才不说拉倒",
+"MsgId": 6567681964456391450
+}
+
+2018-06-16 22:00:20o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:00:21下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:切个屁!哼!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:00:36{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157636,
+"MsgType": "text",
+"Content": "我不跟你玩了,哼你哦",
+"MsgId": 6567682037470835486
+}
+
+2018-06-16 22:00:36o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:00:37下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你找谁玩啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:01:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157655,
+"MsgType": "text",
+"Content": "我家里有很多小孩儿,我不跟你玩了,我给我姐也给那些娃娃。",
+"MsgId": 6567682119075214113
+}
+
+2018-06-16 22:01:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:01:05下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那你找谁玩啊   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:01:35{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157695,
+"MsgType": "text",
+"Content": "已经管了,我这已经下雨了,我不能找他玩了。",
+"MsgId": 6567682290873905956
+}
+
+2018-06-16 22:01:35o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:01:35下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:小心别淋到了哦,会着凉的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:02:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157729,
+"MsgType": "text",
+"Content": "我不图一我就在家睡觉",
+"MsgId": 6567682436902794025
+}
+
+2018-06-16 22:02:10o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:02:10下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:8}好无聊哦,我都快睡着了,聊的什么呀   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:02:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157747,
+"MsgType": "text",
+"Content": "诶,我奶奶让我睡觉,我奶奶照顾我科辛苦了。",
+"MsgId": 6567682514212205357
+}
+
+2018-06-16 22:02:27o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:02:28下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:那么大个人还需要别人照顾么,笑话   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:02:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157773,
+"MsgType": "text",
+"Content": "还笑我呀,我奶奶自己一个人不饿。周腾,韩佳真勒呀",
+"MsgId": 6567682625881355058
+}
+
+2018-06-16 22:02:53o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:02:54下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好吧,我一个人去玩   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:03:16{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157796,
+"MsgType": "text",
+"Content": "为什么一个人去玩了我也想给你玩,但是我不知道你家在哪,我想给你玩。",
+"MsgId": 6567682724665602872
+}
+
+2018-06-16 22:03:16o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:03:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不知道就算啦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:03:37{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157817,
+"MsgType": "text",
+"Content": "为什么要告你时候我家在哪儿?你往我家来吧,我家是孙小屯。",
+"MsgId": 6567682814859916096
+}
+
+2018-06-16 22:03:37o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:03:38下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:要就要呗,这么多问,真的是   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:04:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157845,
+"MsgType": "text",
+"Content": "这个问题是什么呀?",
+"MsgId": 6567682935119000393
+}
+
+2018-06-16 22:04:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:04:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有菲菲在,没有什么问题解决不了的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:04:58{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157898,
+"MsgType": "text",
+"Content": "学校可好了,孙美佛儿学校那里有足球,滑冰。美术一个新的书星期二他就生日啦,我得给他买个好吃的好玩儿的给她。帮我买吗?我奶奶也快没钱了。",
+"MsgId": 6567683162752267093
+}
+
+2018-06-16 22:04:58o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:04:59下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:去偷去抢!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:05:14{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157914,
+"MsgType": "text",
+"Content": "不能偷人家的东西,要不他会报警的。",
+"MsgId": 6567683231471743833
+}
+
+2018-06-16 22:05:14o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:05:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:,   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:05:40{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157940,
+"MsgType": "text",
+"Content": "你也不行呀!",
+"MsgId": 6567683343140893534
+}
+
+2018-06-16 22:05:40o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:05:41下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:行就OK了   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:06:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157965,
+"MsgType": "text",
+"Content": "那你去骨头啊",
+"MsgId": 6567683450515075939
+}
+
+2018-06-16 22:06:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:06:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好丫   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:06:31{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529157991,
+"MsgType": "text",
+"Content": "我家真的玩你还狗偷偷的天天偷偷",
+"MsgId": 6567683562184225642
+}
+
+2018-06-16 22:06:31o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:06:32下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不,這不算是姦情,因為我和他都是男的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:07:07{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158027,
+"MsgType": "text",
+"Content": "你那你敢偷吗?",
+"MsgId": 6567683716803048302
+}
+
+2018-06-16 22:07:07o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:07:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:别吵,伦家正在梅州行网站上逛论坛呢   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:07:26{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158045,
+"MsgType": "text",
+"Content": "武咱们语音吧",
+"MsgId": 6567683794112459634
+}
+
+2018-06-16 22:07:26o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:07:26下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:现在的生活太感性,情绪不停泛滥,身心具疲   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:07:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158062,
+"MsgType": "text",
+"Content": "你把你自己栓起来吧,打死你挤挤。",
+"MsgId": 6567683867126903672
+}
+
+2018-06-16 22:07:43o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:07:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不要对我这么残忍的好不好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:08:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158082,
+"MsgType": "text",
+"Content": "干嘛拍一张照片给我好吗?",
+"MsgId": 6567683953026249597
+}
+
+2018-06-16 22:08:06o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:08:07下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:好的   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:08:17{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158096,
+"MsgType": "text",
+"Content": "三秋",
+"MsgId": 6567684013155791744
+}
+
+2018-06-16 22:08:17o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:08:17下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:{face:81}太深奥了吧,我真心没弄明白您的话   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:08:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158118,
+"MsgType": "text",
+"Content": "我听懂你的话,你是中国人还是日本人呐,只是本人我就打死你啦。",
+"MsgId": 6567684107645072259
+}
+
+2018-06-16 22:08:38o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:08:39下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:不要对我这么残忍的好不好   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:08:59{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158138,
+"MsgType": "text",
+"Content": "中国人还是日本人?",
+"MsgId": 6567684193544418181
+}
+
+2018-06-16 22:08:59o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:08:59下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:现在,执著追求的事,将来必定有一天变成不重要   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:09:24{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158164,
+"MsgType": "text",
+"Content": "我家有雪糕",
+"MsgId": 6567684305213567880
+}
+
+2018-06-16 22:09:24o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:09:25下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:小猪(钟)!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:09:38{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158178,
+"MsgType": "text",
+"Content": "钱棍呐",
+"MsgId": 6567684365343110027
+}
+
+2018-06-16 22:09:38o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:09:39下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:你不觉得这个话题没什么意思么   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:10:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158205,
+"MsgType": "text",
+"Content": "不觉得呀!",
+"MsgId": 6567684481307227025
+}
+
+2018-06-16 22:10:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:10:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:真不觉得?好吧我认同你的观点   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:10:54{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158254,
+"MsgType": "text",
+"Content": "闲呀",
+"MsgId": 6567684691760624537
+}
+
+2018-06-16 22:10:54o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:10:55下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:看电视咯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:11:12{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158271,
+"MsgType": "text",
+"Content": "关看到你是个要写的是看电视哦",
+"MsgId": 6567684764775068573
+}
+
+2018-06-16 22:11:12o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:11:13下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:陪妈妈看   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:11:57{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158316,
+"MsgType": "text",
+"Content": "我爸爸我妈妈我爷爷没在家,只光我奶奶在家。",
+"MsgId": 6567684958048596899
+}
+
+2018-06-16 22:11:57o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:11:57下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有呀!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:12:31{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158351,
+"MsgType": "text",
+"Content": "我爷爷出过了,我爸爸妈妈在北京。",
+"MsgId": 6567685108372452264
+}
+
+2018-06-16 22:12:31o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:12:32下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:有呀!   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:12:42{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158362,
+"MsgType": "text",
+"Content": "她一直说这个了,我头蒙。",
+"MsgId": 6567685155617092524
+}
+
+2018-06-16 22:12:42o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:12:43下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:我有点不懂   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:13:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158385,
+"MsgType": "text",
+"Content": "我就说我有点儿热,我快要抑郁啦。",
+"MsgId": 6567685254401340337
+}
+
+2018-06-16 22:13:05o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:13:06下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:表酱紫讲话好不,伦家听不习惯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:14:15{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158454,
+"MsgType": "text",
+"Content": "你是女生",
+"MsgId": 6567685550754083766
+}
+
+2018-06-16 22:14:15o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:14:15下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:才可與我同在   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:14:51{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158491,
+"MsgType": "text",
+"Content": "我想睡觉,快要睡着了。",
+"MsgId": 6567685709667873727
+}
+
+2018-06-16 22:14:51o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:14:52下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:快去睡吧,做个好梦   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-16 22:15:03{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529158503,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6567685761207481281
+}
+
+2018-06-16 22:15:03o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-16 22:15:04下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:今天这天气很适合聊天的说   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-17 15:40:22{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945J1zp1K58l7bZ0KyShlZtc","CreateTime":1529221222,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-17 15:40:22nickname0:
+2018-06-17 15:40:23nickname1:60o6hX945J1zp1K58l7bZ0KyShlZtc会员314
+2018-06-17 15:40:23关注下发:{"msgtype":"text","text":{"content":"会员314 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945J1zp1K58l7bZ0KyShlZtc"}-状态:45047
+2018-06-17 22:00:05{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944uXCmNv14kyDHE1Ww2gFAY","CreateTime":1529244005,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-17 22:00:05nickname0:
+2018-06-17 22:00:05nickname1:60o6hX944uXCmNv14kyDHE1Ww2gFAY会员286
+2018-06-17 22:00:06关注下发:{"msgtype":"text","text":{"content":"会员286 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944uXCmNv14kyDHE1Ww2gFAY"}-状态:45047
+2018-06-18 10:42:50{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wmUN-tVNbKv46zTfUArw7U",
+"CreateTime": 1529289770,
+"MsgType": "text",
+"Content": "我妹妹我去上学的时候我妹妹星期六我不是就不和我妹妹是不是星期六就和你偷掉 这都是写那是呀,每天作业都要写到90页。卫生院几点下雪?然后呢就是,小小都走语文年级班得早。嗯,我还翻了翻手机,说他是还告你这个还有两个男朋友,陈艾河那个周晨轩就是轩是我们借的陈毅是那个牵强的。",
+"MsgId": 6568249548679541344
+}
+
+2018-06-18 10:42:50o6hX94wmUN-tVNbKv46zTfUArw7U:23
+2018-06-18 10:42:51下发:{ "touser":"o6hX94wmUN-tVNbKv46zTfUArw7U",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第23 个. 先和智能客服聊会. \n智能客服:嗯   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-06-19 13:09:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947l2ohB5pR_TqS1sqkeeG6M","CreateTime":1529384985,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-19 13:09:45nickname0:
+2018-06-19 13:09:46nickname1:60o6hX947l2ohB5pR_TqS1sqkeeG6M会员914
+2018-06-19 13:09:46关注下发:{"msgtype":"text","text":{"content":"会员914 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947l2ohB5pR_TqS1sqkeeG6M"}-状态:45047
+2018-06-24 00:08:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX944D3shkrtIDLHIR8D1WxeeE","CreateTime":1529770105,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-24 00:08:25nickname0:
+2018-06-24 00:08:26nickname1:60o6hX944D3shkrtIDLHIR8D1WxeeE会员915
+2018-06-24 00:08:26关注下发:{"msgtype":"text","text":{"content":"会员915 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX944D3shkrtIDLHIR8D1WxeeE"}-状态:45047
+2018-06-25 21:10:08{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1529932207,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-25 21:10:08nickname0:
+2018-06-25 21:10:08nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-06-25 21:10:08关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-06-25 21:11:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1529932310,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-25 21:11:50nickname0:
+2018-06-25 21:11:50nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-06-25 21:11:50关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-06-28 19:06:43{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941DLeE_THgayv43LQs0YQks","CreateTime":1530184003,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-28 19:06:43nickname0:
+2018-06-28 19:06:44nickname1:60o6hX941DLeE_THgayv43LQs0YQks会员917
+2018-06-28 19:06:44关注下发:{"msgtype":"text","text":{"content":"会员917 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941DLeE_THgayv43LQs0YQks"}-状态:45047
+2018-06-28 19:16:44{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941DLeE_THgayv43LQs0YQks","CreateTime":1530184603,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-06-28 19:16:44nickname0:
+2018-06-28 19:16:44nickname1:60o6hX941DLeE_THgayv43LQs0YQks会员917
+2018-06-28 19:16:44关注下发:{"msgtype":"text","text":{"content":"会员917 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941DLeE_THgayv43LQs0YQks"}-状态:45047
+2018-07-01 07:41:26{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yAYcFOr3C0GJJ-idgoniSU","CreateTime":1530402085,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-01 07:41:26nickname0:
+2018-07-01 07:41:26nickname1:60o6hX94yAYcFOr3C0GJJ-idgoniSU会员918
+2018-07-01 07:41:26关注下发:{"msgtype":"text","text":{"content":"会员918 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yAYcFOr3C0GJJ-idgoniSU"}-状态:45047
+2018-07-01 20:38:22{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943AxqhwBfg4q3r7LIKGBbeA",
+"CreateTime": 1530448702,
+"MsgType": "text",
+"Content": "有",
+"MsgId": 6573227123717990003
+}
+
+2018-07-01 20:38:22o6hX943AxqhwBfg4q3r7LIKGBbeA:0
+2018-07-01 20:38:39{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943AxqhwBfg4q3r7LIKGBbeA",
+"CreateTime": 1530448718,
+"MsgType": "text",
+"Content": "【收到不支持的消息类型,暂无法显示】",
+"MsgId": 6573227192437466742
+}
+
+2018-07-01 20:38:39o6hX943AxqhwBfg4q3r7LIKGBbeA:26
+2018-07-01 20:38:40下发:{ "touser":"o6hX943AxqhwBfg4q3r7LIKGBbeA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第26 个. 先和智能客服聊会. \n智能客服:今天是个好日子,怎么不出去玩玩   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-07-01 20:39:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943AxqhwBfg4q3r7LIKGBbeA",
+"CreateTime": 1530448787,
+"MsgType": "text",
+"Content": "天气太热了,不出去玩",
+"MsgId": 6573227488790210177
+}
+
+2018-07-01 20:39:47o6hX943AxqhwBfg4q3r7LIKGBbeA:26
+2018-07-01 20:39:48下发:{ "touser":"o6hX943AxqhwBfg4q3r7LIKGBbeA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第26 个. 先和智能客服聊会. \n智能客服:朱戴博   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-07-01 20:41:09{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943AxqhwBfg4q3r7LIKGBbeA",
+"CreateTime": 1530448869,
+"MsgType": "text",
+"Content": "你是谁呀",
+"MsgId": 6573227840977528471
+}
+
+2018-07-01 20:41:09o6hX943AxqhwBfg4q3r7LIKGBbeA:26
+2018-07-01 20:41:10下发:{ "touser":"o6hX943AxqhwBfg4q3r7LIKGBbeA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第26 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-07-01 20:41:27{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943AxqhwBfg4q3r7LIKGBbeA",
+"CreateTime": 1530448887,
+"MsgType": "text",
+"Content": "l?",
+"MsgId": 6573227918286939802
+}
+
+2018-07-01 20:41:27o6hX943AxqhwBfg4q3r7LIKGBbeA:26
+2018-07-01 20:41:28下发:{ "touser":"o6hX943AxqhwBfg4q3r7LIKGBbeA",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第26 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-07-06 19:23:06{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949QeQWLI0-Bb1oubMjIKByU","CreateTime":1530876186,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-06 19:23:06nickname0:
+2018-07-06 19:23:07nickname1:60o6hX949QeQWLI0-Bb1oubMjIKByU会员796
+2018-07-06 19:23:07关注下发:{"msgtype":"text","text":{"content":"会员796 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949QeQWLI0-Bb1oubMjIKByU"}-状态:45047
+2018-07-06 19:30:13{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940WMo5vByXDIJDPQ1ECVDTM","CreateTime":1530876613,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-06 19:30:13nickname0:
+2018-07-06 19:30:13nickname1:60o6hX940WMo5vByXDIJDPQ1ECVDTM会员919
+2018-07-06 19:30:13关注下发:{"msgtype":"text","text":{"content":"会员919 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940WMo5vByXDIJDPQ1ECVDTM"}-状态:45047
+2018-07-07 20:51:47{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943e3jYG0UnQUglFo_8rgHyo","CreateTime":1530967906,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-07 20:51:47nickname0:
+2018-07-07 20:51:47nickname1:60o6hX943e3jYG0UnQUglFo_8rgHyo会员920
+2018-07-07 20:51:48关注下发:{"msgtype":"text","text":{"content":"会员920 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943e3jYG0UnQUglFo_8rgHyo"}-状态:45047
+2018-07-07 20:51:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943e3jYG0UnQUglFo_8rgHyo","CreateTime":1530967915,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-07 20:51:55nickname0:
+2018-07-07 20:51:55nickname1:60o6hX943e3jYG0UnQUglFo_8rgHyo会员920
+2018-07-07 20:51:55关注下发:{"msgtype":"text","text":{"content":"会员920 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943e3jYG0UnQUglFo_8rgHyo"}-状态:45047
+2018-07-07 20:52:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX943e3jYG0UnQUglFo_8rgHyo",
+"CreateTime": 1530967972,
+"MsgType": "text",
+"Content": "/:sun/:shit/:v/:@)/:jj/:@@/:shit/:sun/:@)/:@)/:jj/:jj/:@)/:v/:share/:share/:v/:jj/:@@/:@@/:@@/:@@/:jj/:jj/:jj/:@@/:jj/:jj/:v/:<O>/:jj/:jj/:jj/:sun/:sun/:v/:shake/:<W>/:<W>/:<W>/:<W>/:beer/:<W>/:<W>/:beer/:beer/:beer/:beer/:coffee/:beer/:P-(",
+"MsgId": 6575457371385885221
+}
+
+2018-07-07 20:52:52o6hX943e3jYG0UnQUglFo_8rgHyo:0
+2018-07-19 14:54:54{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1531983294,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-19 14:54:55nickname0:
+2018-07-19 14:54:55nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-07-19 14:54:56关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-07-19 15:08:19{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1531984099,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-19 15:08:19nickname0:
+2018-07-19 15:08:20nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-07-19 15:08:20关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-07-19 15:08:25{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1531984105,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-19 15:08:25nickname0:
+2018-07-19 15:08:25nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-07-19 15:08:25关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-07-20 17:51:10{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94_70nt2X6Nyigx0Y7VEv7aw","CreateTime":1532080269,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-20 17:51:10nickname0:
+2018-07-20 17:51:11nickname1:60o6hX94_70nt2X6Nyigx0Y7VEv7aw会员921
+2018-07-20 17:51:11关注下发:{"msgtype":"text","text":{"content":"会员921 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_70nt2X6Nyigx0Y7VEv7aw"}-状态:45047
+2018-07-21 14:46:12{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94_70nt2X6Nyigx0Y7VEv7aw","CreateTime":1532155572,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-21 14:46:13nickname0:
+2018-07-21 14:46:13nickname1:60o6hX94_70nt2X6Nyigx0Y7VEv7aw会员921
+2018-07-21 14:46:13关注下发:{"msgtype":"text","text":{"content":"会员921 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_70nt2X6Nyigx0Y7VEv7aw"}-状态:45047
+2018-07-22 15:08:32{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX947eTB4en7g9SfnN_E0FLs-E","CreateTime":1532243312,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-22 15:08:32nickname0:
+2018-07-22 15:08:33nickname1:60o6hX947eTB4en7g9SfnN_E0FLs-E会员916
+2018-07-22 15:08:33关注下发:{"msgtype":"text","text":{"content":"会员916 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX947eTB4en7g9SfnN_E0FLs-E"}-状态:45047
+2018-07-26 07:00:43{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX942JfYT-5zG7Fj9C8UtXa9aA","CreateTime":1532559643,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-07-26 07:00:43nickname0:
+2018-07-26 07:00:44nickname1:60o6hX942JfYT-5zG7Fj9C8UtXa9aA会员922
+2018-07-26 07:00:44关注下发:{"msgtype":"text","text":{"content":"会员922 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX942JfYT-5zG7Fj9C8UtXa9aA"}-状态:45047
+2018-08-02 22:20:45{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX941zU3CM0QbKZMMOZqjfb29I","CreateTime":1533219644,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-02 22:20:45nickname0:
+2018-08-02 22:20:46nickname1:60o6hX941zU3CM0QbKZMMOZqjfb29I会员828
+2018-08-02 22:20:46关注下发:{"msgtype":"text","text":{"content":"会员828 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX941zU3CM0QbKZMMOZqjfb29I"}-状态:45047
+2018-08-04 14:03:43{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX946J0XIq8KPg_V1gviCqNWXs",
+"CreateTime": 1533362623,
+"MsgType": "text",
+"Content": "你好",
+"MsgId": 6585742319116605252
+}
+
+2018-08-04 14:03:43o6hX946J0XIq8KPg_V1gviCqNWXs:0
+2018-08-06 07:20:00{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94w5fV1e4kn0P4HtW5Q12bBo","CreateTime":1533511200,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-06 07:20:00nickname0:
+2018-08-06 07:20:01nickname1:60o6hX94w5fV1e4kn0P4HtW5Q12bBo会员923
+2018-08-06 07:20:01关注下发:{"msgtype":"text","text":{"content":"会员923 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94w5fV1e4kn0P4HtW5Q12bBo"}-状态:45047
+2018-08-06 13:37:22{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94yurcTO1BLso6xYFMPRnFjk","CreateTime":1533533842,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-06 13:37:23nickname0:
+2018-08-06 13:37:23nickname1:60o6hX94yurcTO1BLso6xYFMPRnFjk会员924
+2018-08-06 13:37:23关注下发:{"msgtype":"text","text":{"content":"会员924 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94yurcTO1BLso6xYFMPRnFjk"}-状态:45047
+2018-08-12 20:11:17{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534075877,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-12 20:11:17nickname0:
+2018-08-12 20:11:18nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-12 20:11:18关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:45047
+2018-08-13 09:05:09{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534122309,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:05:09nickname0:
+2018-08-13 09:05:09nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:05:10关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:45047
+2018-08-13 09:06:53{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534122413,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:06:53nickname0:
+2018-08-13 09:06:53nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:06:53关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:45047
+2018-08-13 09:07:05{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534122422,
+"MsgType": "image",
+"PicUrl": "http://mmbiz.qpic.cn/mmbiz_jpg/fuEVa3QIS7NMrr63cnGHHZs6wFG5CQbu0hgNuVuYLfpaSaxmsOut9GO3onJWaG8LNtjiag50DqSoJJja9RSYXnQ/0",
+"MsgId": 6589005630973261820,
+"MediaId": "ynxqYrYuO9PQofytFmDFTi1Ja80bFQKxxINlkb28WL7ZRyp7ce0z31THOqBnS8D_"
+}
+
+2018-08-13 09:07:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534122469,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:07:50nickname0:
+2018-08-13 09:07:50nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:07:50关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:07:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534122474,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:07:55nickname0:
+2018-08-13 09:07:55nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:07:55关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:23:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534123435,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:23:55nickname0:
+2018-08-13 09:23:55nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:23:56关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:24:23{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534123463,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:24:23nickname0:
+2018-08-13 09:24:23nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:24:24关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:24:32{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123471,
+"MsgType": "image",
+"PicUrl": "http://mmbiz.qpic.cn/mmbiz_jpg/fuEVa3QIS7NMrr63cnGHHZs6wFG5CQbuL4dia5zEewdC7g4gKGiaUI9LDD5vcgNtzARIr1XXwribRPphlKXwcdUww/0",
+"MsgId": 6589010136393955542,
+"MediaId": "u1Q-1NW5gqyIvBCwn7NWJBKgvOvMJHXM1R7D29uSI_Dj4WGILshQCwrW8U_W3byj"
+}
+
+2018-08-13 09:24:50{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123489,
+"MsgType": "text",
+"Content": "这是什么成语?",
+"MsgId": 6589010213703366878
+}
+
+2018-08-13 09:24:50o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:24:50下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:不知道   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:25:18{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123517,
+"MsgType": "text",
+"Content": "快",
+"MsgId": 6589010333962451172
+}
+
+2018-08-13 09:25:18o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:25:19下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:赫!(拿出狼牙棒   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:25:48{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534123548,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:25:48nickname0:
+2018-08-13 09:25:48nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:25:49关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:26:23{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123582,
+"MsgType": "text",
+"Content": "快",
+"MsgId": 6589010613135325427
+}
+
+2018-08-13 09:26:23o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:26:24下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:26:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123608,
+"MsgType": "text",
+"Content": "快点",
+"MsgId": 6589010724804475129
+}
+
+2018-08-13 09:26:49o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:26:49下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:等等嘛,这么急   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:27:13{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123633,
+"MsgType": "text",
+"Content": "快点",
+"MsgId": 6589010832178657539
+}
+
+2018-08-13 09:27:13o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:27:14下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:29:42{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534123782,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:29:42nickname0:
+2018-08-13 09:29:42nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:29:43关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-13 09:30:10{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX945MOSRwFIUFp9YQYbn8O6Po",
+"CreateTime": 1534123809,
+"MsgType": "text",
+"Content": "快点",
+"MsgId": 6589011588092901669
+}
+
+2018-08-13 09:30:10o6hX945MOSRwFIUFp9YQYbn8O6Po:12
+2018-08-13 09:30:10下发:{ "touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第12 个. 先和智能客服聊会. \n智能客服:等等嘛,这么急   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-08-13 09:38:58{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX945MOSRwFIUFp9YQYbn8O6Po","CreateTime":1534124337,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-13 09:38:58nickname0:
+2018-08-13 09:38:58nickname1:60o6hX945MOSRwFIUFp9YQYbn8O6Po会员304
+2018-08-13 09:38:58关注下发:{"msgtype":"text","text":{"content":"会员304 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX945MOSRwFIUFp9YQYbn8O6Po"}-状态:0
+2018-08-14 17:02:42{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX940QSzcpOOY33qFs_P6OYoJ4","CreateTime":1534237362,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-14 17:02:42nickname0:
+2018-08-14 17:02:43nickname1:60o6hX940QSzcpOOY33qFs_P6OYoJ4会员925
+2018-08-14 17:02:43关注下发:{"msgtype":"text","text":{"content":"会员925 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX940QSzcpOOY33qFs_P6OYoJ4"}-状态:45047
+2018-08-16 06:29:27{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948p1JE6Qz_udO3ntojLB9Z4","CreateTime":1534372167,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-16 06:29:28nickname0:
+2018-08-16 06:29:28nickname1:60o6hX948p1JE6Qz_udO3ntojLB9Z4会员490
+2018-08-16 06:29:28关注下发:{"msgtype":"text","text":{"content":"会员490 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948p1JE6Qz_udO3ntojLB9Z4"}-状态:45047
+2018-08-21 15:46:53{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_gJ4x0yd75TchVcHrsm33U",
+"CreateTime": 1534837613,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6592077352928762595
+}
+
+2018-08-21 15:46:54关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_gJ4x0yd75TchVcHrsm33U"}-状态:0
+2018-08-21 15:47:01{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_gJ4x0yd75TchVcHrsm33U",
+"CreateTime": 1534837621,
+"MsgType": "text",
+"Content": "1",
+"MsgId": 6592077387288500969
+}
+
+2018-08-21 15:47:01关注下发:{"msgtype":"text","text":{"content":"会员 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94_gJ4x0yd75TchVcHrsm33U"}-状态:0
+2018-08-21 15:47:06{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94_gJ4x0yd75TchVcHrsm33U",
+"CreateTime": 1534837625,
+"MsgType": "text",
+"Content": "2",
+"MsgId": 6592077404468370155
+}
+
+2018-08-21 15:47:06o6hX94_gJ4x0yd75TchVcHrsm33U:0
+2018-08-22 10:29:51{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943l3ougJu796lC-BkHQLrhE","CreateTime":1534904991,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-22 10:29:51nickname0:
+2018-08-22 10:29:52nickname1:60o6hX943l3ougJu796lC-BkHQLrhE会员926
+2018-08-22 10:29:52关注下发:{"msgtype":"text","text":{"content":"会员926 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943l3ougJu796lC-BkHQLrhE"}-状态:45047
+2018-08-22 10:29:55{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX943l3ougJu796lC-BkHQLrhE","CreateTime":1534904995,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-22 10:29:55nickname0:
+2018-08-22 10:29:56nickname1:60o6hX943l3ougJu796lC-BkHQLrhE会员926
+2018-08-22 10:29:56关注下发:{"msgtype":"text","text":{"content":"会员926 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX943l3ougJu796lC-BkHQLrhE"}-状态:45047
+2018-08-24 11:54:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9427Ddv5owxScfy8JCXnxkEs","CreateTime":1535082889,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-24 11:54:50nickname0:
+2018-08-24 11:54:51nickname1:60o6hX9427Ddv5owxScfy8JCXnxkEs会员927
+2018-08-24 11:54:51关注下发:{"msgtype":"text","text":{"content":"会员927 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9427Ddv5owxScfy8JCXnxkEs"}-状态:45047
+2018-08-24 11:54:53{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9427Ddv5owxScfy8JCXnxkEs","CreateTime":1535082893,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-24 11:54:53nickname0:
+2018-08-24 11:54:53nickname1:60o6hX9427Ddv5owxScfy8JCXnxkEs会员927
+2018-08-24 11:54:54关注下发:{"msgtype":"text","text":{"content":"会员927 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9427Ddv5owxScfy8JCXnxkEs"}-状态:45047
+2018-08-31 18:05:49{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX9411pOfVTsMjjThms2n8C80w","CreateTime":1535709949,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-08-31 18:05:50nickname0:
+2018-08-31 18:05:50nickname1:60o6hX9411pOfVTsMjjThms2n8C80w会员928
+2018-08-31 18:05:50关注下发:{"msgtype":"text","text":{"content":"会员928 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX9411pOfVTsMjjThms2n8C80w"}-状态:45047
+2018-09-08 12:05:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX94zO6AGsxhHiuglO-y7DIovY","CreateTime":1536379550,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-09-08 12:05:50nickname0:
+2018-09-08 12:05:50nickname1:60o6hX94zO6AGsxhHiuglO-y7DIovY会员929
+2018-09-08 12:05:51关注下发:{"msgtype":"text","text":{"content":"会员929 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX94zO6AGsxhHiuglO-y7DIovY"}-状态:45047
+2018-09-09 11:46:50{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX949uN9jFk9TBplL6NHY16X6E","CreateTime":1536464800,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-09-09 11:46:51nickname0:
+2018-09-09 11:46:51nickname1:60o6hX949uN9jFk9TBplL6NHY16X6E会员930
+2018-09-09 11:46:51关注下发:{"msgtype":"text","text":{"content":"会员930 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX949uN9jFk9TBplL6NHY16X6E"}-状态:45047
+2018-09-17 17:00:03{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537174802,
+"MsgType": "text",
+"Content": "为什么不发货也不退款",
+"MsgId": 6602115503248645792
+}
+
+2018-09-17 17:00:06o6hX94wzkipqAD_wM-9iY3sL7LOw:0
+2018-09-17 22:23:41{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194203,
+"MsgType": "text",
+"Content": "尽快退款",
+"MsgId": 6602198829909158075
+}
+
+2018-09-17 22:23:41o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:23:42下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-17 22:23:46{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194203,
+"MsgType": "text",
+"Content": "尽快退款",
+"MsgId": 6602198829909158075
+}
+
+2018-09-17 22:23:46o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:23:47下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-17 22:23:49{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194203,
+"MsgType": "text",
+"Content": "尽快退款",
+"MsgId": 6602198829909158075
+}
+
+2018-09-17 22:23:49o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:23:50下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-17 22:25:47{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194330,
+"MsgType": "text",
+"Content": "什么鬼",
+"MsgId": 6602199375370004688
+}
+
+2018-09-17 22:25:47o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:25:48{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194330,
+"MsgType": "text",
+"Content": "什么鬼",
+"MsgId": 6602199375370004688
+}
+
+2018-09-17 22:25:48o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:25:49下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-17 22:25:52{
+"ToUserName": "gh_95e4896afe4a",
+"FromUserName": "o6hX94wzkipqAD_wM-9iY3sL7LOw",
+"CreateTime": 1537194330,
+"MsgType": "text",
+"Content": "什么鬼",
+"MsgId": 6602199375370004688
+}
+
+2018-09-17 22:25:52o6hX94wzkipqAD_wM-9iY3sL7LOw:30
+2018-09-17 22:25:53下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-17 22:25:54下发:{ "touser":"o6hX94wzkipqAD_wM-9iY3sL7LOw",    "msgtype":"text",
+                                  "text":    {         "content":"排队中,您是第30 个. 先和智能客服聊会. \n智能客服:不明飞行物体   "   }  }{"errcode":0,"errmsg":"ok"}
+2018-09-22 21:32:42{"ToUserName":"gh_95e4896afe4a","FromUserName":"o6hX948hMQsIj-nChmG3_GKXgC7s","CreateTime":1537623162,"MsgType":"event","Event":"user_enter_tempsession","SessionFrom":"wxapp"}
+2018-09-22 21:32:43nickname0:
+2018-09-22 21:32:43nickname1:60o6hX948hMQsIj-nChmG3_GKXgC7s会员931
+2018-09-22 21:32:44关注下发:{"msgtype":"text","text":{"content":"会员931 欢迎你,发送菜单【1】关注公众号 【2】"},"touser":"o6hX948hMQsIj-nChmG3_GKXgC7s"}-状态:45047

+ 9 - 0
log1.xml

xqd
@@ -0,0 +1,9 @@
+2018-03-08 18:31:341520505094{
+"ToUserName": "gh_1af395b50761",
+"FromUserName": "owW565XxqKd6PYVRKdfNIs6Kx2A4",
+"CreateTime": 1520505095,
+"MsgType": "text",
+"Content": "擦干净",
+"MsgId": 6530519656869544322
+}
+


+ 403 - 0
manifest.xml

xqd
@@ -0,0 +1,403 @@
+<?xml version="1.0" encoding="utf-8"?>
+<manifest xmlns="http://www.9026.com" versionCode="0.8,1.0">
+	<application setting="false">
+		<name><![CDATA[凡云客服平台]]></name>
+		<identifie><![CDATA[qidong_app]]></identifie>
+		<version><![CDATA[5.1.7]]></version>
+		<type><![CDATA[business]]></type>
+		<ability><![CDATA[用手机管理你的客户咨询]]></ability>
+		<description><![CDATA[比较好用的手机客服咨询软件]]></description>
+		<author><![CDATA[凡云小程序]]></author>
+		<url><![CDATA[http://www.9026.com/]]></url>
+	</application>
+
+	<platform>
+		<subscribes>
+		</subscribes>
+
+		<handles>
+		</handles>
+
+		<rule embed="false" />
+		<card embed="false" />
+		
+		<supports>
+			<item type="wxapp" />
+			<item type="app" />
+			<item type="android" />
+			<item type="ios" />
+		</supports>
+	</platform>
+
+	<bindings>
+		<menu>
+			<entry title="知识库" do="sucailist" state="" direct="false"/>
+			<entry title="用户列表" do="Getuserlist" state="" direct="false"/>
+			<entry title="客服设置" do="kefuset" state="" direct="false"/>
+		</menu>
+		<page>
+			<entry title="首页" do="/qidong_app/pages/index/index" state="" direct="false"/>
+		</page>
+	</bindings>
+
+	<permissions>
+	</permissions>
+
+	<install><![CDATA[
+CREATE TABLE IF NOT EXISTS `ims_qidong_feetype` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) NOT NULL,
+  `type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `jiage` float(11,2) NOT NULL,
+  `jifen` int(11) DEFAULT NULL,
+  `beizhu` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `time` int(11) DEFAULT NULL,
+  `kfopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add1` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add2` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add3` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `detail` longtext COLLATE utf8mb4_bin NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidong_kehu` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `ToUserName` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `name` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `uniacid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `head_img` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `addtime` int(11) DEFAULT NULL,
+  `etime` int(11) DEFAULT NULL,
+  `maxnum` int(11) DEFAULT NULL,
+  `tgID` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `callnum` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `beizhu` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `bak4` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `bak3` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `bak2` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `bak1` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `gopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `mopenid` varchar(255) COLLATE utf8mb4_bin NOT NULL,
+  `kfname` varchar(255) COLLATE utf8mb4_bin NOT NULL,
+  `smscount` int(11) NOT NULL,
+  `kefuid` varchar(255) COLLATE utf8mb4_bin NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidong_kehu_lishi` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `ToUserName` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `laiyuan` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `uniacid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `updatetime` int(11) DEFAULT NULL,
+  `etime` int(11) DEFAULT NULL,
+  `beizhu` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=8 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidong_pay_lishi` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `ToUserName` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `laiyuan` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `uniacid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `tid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `updatetime` int(11) DEFAULT NULL,
+  `fromopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `toopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `fromname` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `beizhu` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `jine` float(11,2) NOT NULL,
+  `add1` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add2` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add3` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidong_shoptype` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `jiage` float(11,2) NOT NULL,
+  `days` int(11) DEFAULT NULL,
+  `beizhu` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add1` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add2` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add3` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `store_id` varchar(255) DEFAULT NULL,
+  `store_logo` varchar(255) DEFAULT NULL,
+  `store_name` varchar(255) DEFAULT 'APP',
+  `uniacid` int(11) NOT NULL,
+  `wxweb` varchar(255) DEFAULT '1',
+  `shareContent` varchar(255) DEFAULT NULL,
+  `Androidurl` varchar(255) DEFAULT NULL,
+  `iosdownweb` varchar(255) DEFAULT NULL,
+  `baidu_ad_ard` varchar(255) DEFAULT '',
+  `baidu_ad_ios` varchar(255) DEFAULT NULL,
+  `qidongimg` varchar(255) DEFAULT NULL,
+  `qidongurl` varchar(255) DEFAULT NULL,
+  `zjcolor` varchar(255) DEFAULT '#245612',
+  `hytxt` varchar(255) DEFAULT '#fff',
+  `bbcolor` varchar(255) DEFAULT '#12562a',
+  `ttcolor` varchar(255) DEFAULT '#fff',
+  `whcolor` varchar(255) DEFAULT '#fff',
+  `leftBackgroundImage` varchar(255) DEFAULT NULL,
+  `navBackgroundImage` varchar(255) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_admin` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) NOT NULL,
+  `openid` varchar(255) NOT NULL,
+  `jsonid` varchar(255) DEFAULT NULL,
+  `nickname` varchar(255) NOT NULL,
+  `avartar` varchar(355) NOT NULL,
+  `lasttime` int(11) DEFAULT NULL,
+  `cishu` int(11) DEFAULT '0',
+  `lastliao` varchar(255) DEFAULT NULL,
+  `zhuangtai` varchar(255) DEFAULT NULL,
+  `diqu` varchar(255) DEFAULT NULL,
+  `carnumber` varchar(255) DEFAULT NULL,
+  `beizhu` varchar(255) DEFAULT NULL,
+  `kf_account` varchar(255) NOT NULL,
+  `fenzu` varchar(255) NOT NULL,
+  `gopenid` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_bangzhu` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `detail` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `fenlei` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `addtime` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_help` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `website` varchar(255) DEFAULT NULL,
+  `uniacid` int(11) NOT NULL,
+  `stype` varchar(255) DEFAULT NULL,
+  `keywords` varchar(255) DEFAULT NULL,
+  `detail` longtext,
+  `url` varchar(255) DEFAULT NULL,
+  `adder` varchar(255) DEFAULT NULL,
+  `addtime` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_helptype` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `sid` int(11) DEFAULT NULL,
+  `website` varchar(255) DEFAULT NULL,
+  `uniacid` int(11) NOT NULL,
+  `stype` varchar(255) DEFAULT NULL,
+  `slogo` varchar(255) DEFAULT NULL,
+  `kefu` varchar(255) DEFAULT NULL,
+  `jsonid` varchar(255) NOT NULL,
+  `kfopenid` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_history` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `ToUserName` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `uniacid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `kfopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `kfname` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `khopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `khname` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `type` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `keyword` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `updatetime` int(11) DEFAULT NULL,
+  `zhuangtai` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add1` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add2` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `add3` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=14 DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_kefu` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `jsonid` varchar(255) DEFAULT NULL,
+  `uniacid` int(11) NOT NULL,
+  `appid` varchar(255) NOT NULL,
+  `appsecret` varchar(255) DEFAULT NULL,
+  `moren` varchar(255) DEFAULT NULL,
+  `qita` varchar(255) DEFAULT NULL,
+  `caidan` varchar(255) DEFAULT '',
+  `guanzhu_title` varchar(255) DEFAULT NULL,
+  `guanzhu_des` varchar(255) DEFAULT NULL,
+  `guanzhu_url` varchar(255) DEFAULT NULL,
+  `guanzhu_logo` varchar(255) DEFAULT NULL,
+  `qq_title` varchar(255) DEFAULT NULL,
+  `qq_des` varchar(255) DEFAULT NULL,
+  `qq_url` varchar(255) DEFAULT NULL,
+  `qq_logo` varchar(255) DEFAULT NULL,
+  `call` varchar(255) DEFAULT NULL,
+  `openid` varchar(255) DEFAULT NULL,
+  `updatetime` int(11) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_kefuuser` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) NOT NULL,
+  `openid` varchar(255) NOT NULL,
+  `gopenid` varchar(255) NOT NULL,
+  `nickname` varchar(255) NOT NULL,
+  `zhuangtai` varchar(255) NOT NULL,
+  `lasttime` int(11) DEFAULT NULL,
+  `cishu` int(11) DEFAULT '0',
+  `mobile` varchar(255) NOT NULL,
+  `pwd` varchar(255) NOT NULL,
+  `avartar` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_liaotian` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) DEFAULT NULL,
+  `khopenid` varchar(255) DEFAULT NULL,
+  `khid` varchar(255) DEFAULT NULL,
+  `khname` varchar(255) NOT NULL,
+  `kfopenid` varchar(255) DEFAULT NULL,
+  `jsonid` varchar(255) DEFAULT NULL,
+  `nickname` varchar(255) DEFAULT NULL,
+  `avartar` varchar(355) DEFAULT NULL,
+  `lasttime` int(11) DEFAULT NULL,
+  `lastword` varchar(255) DEFAULT NULL,
+  `yyname` varchar(255) NOT NULL,
+  `yylogo` varchar(255) NOT NULL,
+  `ifread` int(11) NOT NULL,
+  `stype` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_msg` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `user_id` varchar(255) DEFAULT NULL,
+  `uniacid` int(11) NOT NULL,
+  `name` varchar(255) NOT NULL,
+  `likes` varchar(255) DEFAULT NULL,
+  `wlogo` varchar(255) DEFAULT NULL,
+  `zjcolor` varchar(255) DEFAULT NULL,
+  `bbcolor` varchar(255) DEFAULT NULL,
+  `ttcolor` varchar(255) DEFAULT NULL,
+  `linktype` varchar(255) DEFAULT NULL,
+  `ordid` int(11) DEFAULT NULL,
+  `wecha_id` varchar(255) DEFAULT '0',
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_pingjia` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) DEFAULT NULL,
+  `jsonid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `kfopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `kfname` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `khopenid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `khname` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `content` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `pingtype` int(11) DEFAULT NULL,
+  `addtime` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_pingjiatype` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) DEFAULT NULL,
+  `jsonid` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `logo` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `title` varchar(255) COLLATE utf8mb4_bin DEFAULT NULL,
+  `pingfen` int(11) DEFAULT NULL,
+  `sid` int(11) DEFAULT NULL,
+  `addtime` int(11) DEFAULT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE=utf8mb4_bin;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_sucai` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` varchar(255) NOT NULL,
+  `sid` int(11) DEFAULT NULL,
+  `keywords` varchar(255) DEFAULT NULL,
+  `stype` varchar(255) DEFAULT NULL,
+  `title` varchar(255) DEFAULT NULL,
+  `description` varchar(355) DEFAULT NULL,
+  `url` varchar(255) DEFAULT NULL,
+  `thumb_url` varchar(255) DEFAULT NULL,
+  `zhuangtai` varchar(255) DEFAULT NULL,
+  `appid` varchar(255) DEFAULT NULL,
+  `beizhu` longtext,
+  `edittime` int(11) DEFAULT NULL,
+  `jsonid` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=3 DEFAULT CHARSET=utf8mb4;
+
+
+CREATE TABLE IF NOT EXISTS `ims_qidongapp_user` (
+  `id` int(11) NOT NULL AUTO_INCREMENT,
+  `uniacid` int(11) NOT NULL,
+  `openid` varchar(255) NOT NULL,
+  `jsonid` varchar(255) DEFAULT NULL,
+  `nickname` varchar(255) NOT NULL,
+  `avartar` varchar(355) NOT NULL,
+  `lasttime` int(11) DEFAULT NULL,
+  `lastliao` varchar(255) DEFAULT NULL,
+  `cishu` int(11) NOT NULL,
+  `isadmin` int(11) NOT NULL,
+  `zhuangtai` varchar(255) NOT NULL,
+  `isvip` int(11) NOT NULL,
+  `fromopenid` varchar(255) NOT NULL,
+  PRIMARY KEY (`id`)
+) ENGINE=InnoDB AUTO_INCREMENT=932 DEFAULT CHARSET=utf8mb4;
+
+]]></install>
+	<uninstall><![CDATA[DROP TABLE IF EXISTS `ims_qidong_feetype`;
+DROP TABLE IF EXISTS `ims_qidong_kehu`;
+DROP TABLE IF EXISTS `ims_qidong_kehu_lishi`;
+DROP TABLE IF EXISTS `ims_qidong_pay_lishi`;
+DROP TABLE IF EXISTS `ims_qidong_shoptype`;
+DROP TABLE IF EXISTS `ims_qidongapp`;
+DROP TABLE IF EXISTS `ims_qidongapp_admin`;
+DROP TABLE IF EXISTS `ims_qidongapp_bangzhu`;
+DROP TABLE IF EXISTS `ims_qidongapp_help`;
+DROP TABLE IF EXISTS `ims_qidongapp_helptype`;
+DROP TABLE IF EXISTS `ims_qidongapp_history`;
+DROP TABLE IF EXISTS `ims_qidongapp_kefu`;
+DROP TABLE IF EXISTS `ims_qidongapp_kefuuser`;
+DROP TABLE IF EXISTS `ims_qidongapp_liaotian`;
+DROP TABLE IF EXISTS `ims_qidongapp_msg`;
+DROP TABLE IF EXISTS `ims_qidongapp_pingjia`;
+DROP TABLE IF EXISTS `ims_qidongapp_pingjiatype`;
+DROP TABLE IF EXISTS `ims_qidongapp_sucai`;
+DROP TABLE IF EXISTS `ims_qidongapp_user`;
+]]></uninstall>
+	<upgrade><![CDATA[]]></upgrade>
+
+</manifest>

+ 1 - 0
map.json

xqd
@@ -0,0 +1 @@
+//阿莫源码社区www.0516city.com

+ 14 - 0
module.php

xqd
@@ -0,0 +1,14 @@
+<?php
+/**
+ * 易企程全网通模块定义
+ *
+ * @author zhufagang
+ * @url 
+ */
+defined('IN_IA') or exit('Access Denied');
+
+class Qicheng_webModule extends WeModule {
+
+
+
+}

+ 1260 - 0
open.php

xqd
@@ -0,0 +1,1260 @@
+<?php
+/*
+    易企程客服. http://www.17cheng.cn
+    CopyRight 2018 All Rights Reserved
+*/
+//traceHttp();
+ $datas = file_get_contents('json/config.json');
+ $datas	= json_decode($datas,true);
+define("TOKEN", "eqcxcx");
+define("AppID", $datas['AppID']);//Appsecret
+define("Appsecret", $datas['Appsecret']);
+define("bakuniacid", $datas['bakuniacid']);
+define("shangyong", $datas['shangyong']);
+
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+require_once('php/wxBizMsgCrypt.php');
+
+$wechatObj = new wechatCallbackapiTest();
+if (!isset($_GET['echostr'])) {
+	if(shangyong=="0"){
+		$wechatObj->responseMsg();// 这里区分下是测试还是商用 .
+	}else{
+		$wechatObj->responseMsgsq();// 这里区分下是测试还是商用 .
+
+	}
+}else{
+    $wechatObj->valid();
+}
+
+class wechatCallbackapiTest
+{
+    //验证签名
+    public function valid()
+    {
+        $echoStr = $_GET["echostr"];
+        $signature = $_GET["signature"];
+        $timestamp = $_GET["timestamp"];
+        $nonce = $_GET["nonce"];
+        $tmpArr = array(TOKEN, $timestamp, $nonce);
+        sort($tmpArr);
+        $tmpStr = implode($tmpArr);
+        $tmpStr = sha1($tmpStr);
+        if($tmpStr == $signature){
+            echo $echoStr;
+            exit;
+        }
+    }
+    //响应消息 审核
+    public function responseMsgsq()
+    {
+        $timestamp  = $_GET['timestamp'];
+        $nonce = $_GET["nonce"];
+        $msg_signature  = $_GET['msg_signature'];
+        $encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == 'aes')) ? "aes" : "raw";
+        $this->logger('APPID:'.$_GET['APPID']);
+        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
+        if (!empty($postStr)){
+            //解密
+            if ($encrypt_type == 'aes'){
+                $pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);                
+                $this->logger(" D \r\n".$postStr);
+                $decryptMsg = "";  //解密后的明文
+                $errCode = $pc->DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
+                $postStr = $decryptMsg;
+            }
+            $this->logger(" R \r\n".$postStr);
+            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+            $RX_TYPE = trim($postObj->MsgType);
+			$ComponentVerifyTicket = trim($postObj->ComponentVerifyTicket);
+			$this->logger(" T: \r\n".$ComponentVerifyTicket);
+			if($ComponentVerifyTicket<>''){//保存即可.
+				$res=file_put_contents("json/VerifyTicket.json", $ComponentVerifyTicket);
+				$data_string='{
+"component_appid":"'.AppID.'" ,
+"component_appsecret": "'.Appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+		//	$bbb =  http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+				 $this->logger(" B \r\n".$bbb);
+				//echo "success";
+			//	exit;
+				//echo "sucsess";
+			}
+            //消息类型分离
+            switch ($RX_TYPE)
+            {	
+				case "location":
+					 $result = $this->receiveEvent($RX_TYPE,$postObj);
+                    break;
+                case "event":
+                    $result = $this->receiveEvent($RX_TYPE,$postObj);
+                    break;
+                case "text":
+                    $result = $this->receiveText($postObj);
+                    break;
+				default:
+				    $result = $this->receiveEvent($RX_TYPE,$postObj);
+                    break;
+            }
+            $this->logger(" Re: \r\n".$RX_TYPE.$result);
+            //加密
+            if ($encrypt_type == 'aes'){
+                $encryptMsg = ''; //加密后的密文
+                $errCode = $pc->encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
+                $result = $encryptMsg;
+                $this->logger(" E \r\n".$result);
+            }
+            echo $result;
+        }else {
+            echo "";
+            exit;
+        }
+    }
+    //正式响应消息
+    public function responseMsg()
+    {
+        $timestamp  = $_GET['timestamp'];
+        $nonce = $_GET["nonce"];
+        $msg_signature  = $_GET['msg_signature'];
+        $encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == 'aes')) ? "aes" : "raw";
+        $this->logger('APPID:'.$_GET['APPID']);
+        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
+        if (!empty($postStr)){
+           
+            if ($encrypt_type == 'aes'){ //解密
+                $pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);                
+                $this->logger(" D \r\n".$postStr); //发来的加密文件
+                $decryptMsg = ""; 
+                $errCode = $pc->DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
+                $postStr = $decryptMsg;
+            }
+				$this->logger(" R \r\n".$postStr);
+				$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+				$RX_TYPE = trim($postObj->MsgType);
+			
+				$ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');//yaoshi
+				$Mtoken=  $this-> getMToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');//拿到自己的密钥
+				$this->logger(" M \r\n".$ComponentVerifyTicket);
+				$this->logger(" M \r\n".$Mtoken);
+				$ToUserName=$postObj->ToUserName;	//  获取当前公众号的name 
+				
+				$info = json_decode(file_get_contents("jsonX/info_".$ToUserName.".json"),true);//读取设置文件.
+				$mini=$info['authorizer_info']['MiniProgramInfo'];
+				if  (is_array($mini))  {	   $xcx= true;	      }else{	   $xcx= false;   }
+				$name=$info['authorizer_info']['nick_name'];//公众号名称
+				$signature=$info['authorizer_info']['signature'];//公众号名称 signature
+				$Cappid=$info['authorization_info']['authorizer_appid'];
+				$refresh_token=$info['authorization_info']['authorizer_refresh_token'];
+			
+				$Atoken=$this->getCToken(AppID,$Cappid,$refresh_token,$Mtoken);
+				$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken;
+			// 	$aaa=sendmsg($FromUserName,$RX_TYPE,"测试:".$Content,$postObj,$url);
+			//////////////////////////////////以上是获取token部分//////////////////////////////////////////////////////
+			 
+				//$Content=trim($postObj->Content);
+				$fromUsername	 = trim($postObj->FromUserName);  //openid
+				$toUsername  	 = trim($postObj->ToUserName);
+				$tousernamebak	 = $toUsername;
+				$keyword 		 = trim($postObj->Content);
+				$sessionFrom	 = trim($postObj->SessionFrom);
+				$MsgType		 = trim($postObj->MsgType);//消息类型 text event
+				$Event  		 = trim($postObj->Event);
+				$json 			 = file_get_contents('json/'.$toUsername.'.json');
+				$arr 			 = json_decode($json,true);
+				$uniacid		 = $arr['uniacid'];//bakuniacid
+				$bakuniacid		 = bakuniacid;//bakuniacid
+				$website		 = $arr['website'];
+				 
+				$fromuserid 	 = $fromUsername;//
+				$myopenid		 = trim($arr['openids']);//管理员id
+				if ($keyword=='openid'){
+					if ($xcx){
+					sendmsg($fromuserid,$MsgType,$fromuserid,'',$url);//给用户发消息.
+					exit;}
+					else{
+						$encrypt_type = 'aes11';
+						$keyword=$fromuserid;
+						$result = $this->transmitText($postObj, $keyword.$aaa);
+						$encryptMsg = ''; //加密后的密文
+						$errCode = $pc->encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
+						$result = $encryptMsg;
+						echo $result;
+						exit;
+					}
+				}
+				$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+				$kefuarr 		 = json_decode($json,true);	//客服列表
+			////////////////////////////////////////////////////////动作提示//////////////////////////////
+	 if ($MsgType == "event") {
+		$event = $postObj->Event;
+		$this->logger(" R \r\n 进入动作处理:".$MsgType);
+	    if(array_key_exists($fromuserid,$kefuarr)){ //判断是不是客服.
+			
+			$paiduinumber=count(file('json/'.$uniacid.'_paidui.json'));
+			$liuyannumber=count(file('json/'.$toUsername.'_lishi.json'));
+			$kehuopenid= $kefuarr[$fromuserid];
+ 	                 //当前聊天的是?
+			if (substr($kehuopenid,0,1)=='o'){
+				if(!is_numeric($uniacid)){$uniacid=$bakuniacid;};
+				$users=getuser($uniacid,$kehuopenid,$nickname,$website);
+				$zhuangtai='当前聊天:['.$users['id'].']'.$users['nickname'];
+					 }else{
+						   $zhuangtai='休息中';
+						   if ($kehuopenid=='空闲') { $zhuangtai='当前空闲,有客户会立即进入聊天.';}
+						   if ($kehuopenid=='隐身') { $zhuangtai='当前隐身,客户可主动指定聊天.';}
+
+					 }
+					 
+					$tongzhi='排队人数:'. $paiduinumber.'\n'.'留言条数:\n'. $liuyannumber.' \n'.$zhuangtai;
+					$data1='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+								"text":    {         "content":"[客服上线工作提醒]\n  '.$tongzhi.'  "    }  }';
+		            $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+
+					exit;
+				}			  
+		      //在线客服代码
+			 $this->logger(" R \r\n 是客户:".$MsgType); 
+			  //继续上一次的对话
+			    $Kefuopenid=array_search($fromuserid,$kefuarr,true);
+				if($Kefuopenid<>''){
+		          sendmsg($fromuserid,'text','客服还在,直接回复继续上次的对话,或者回复再见 结束对话','',$url);//给用户发消息.
+
+					exit;
+					
+				}
+			
+		         
+			   if($xcx){
+				    $this->logger(" R \r\n 是小程序:".$MsgType); 
+				   $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);
+						}
+						$unid=$uniacid;
+				   if(!is_numeric($uniacid)){$unid=$bakuniacid;};
+				   $userinfo	= getuser($unid,$fromUsername,$nickname,$website);
+				    $this->logger(" R \r\n 客户信息:".json_encode($userinfo)); 
+			   }   else{
+				   $user		=  getwxinfo($Atoken,$fromUsername);//微信公众号代码 
+				   $unid=$uniacid;
+				    if(!is_numeric($uniacid)){$unid=$bakuniacid;};
+				   $userinfo	= getuser($unid,$fromUsername,$user['nickname'],$website);//微信公众号代码 
+		
+			   }
+		 
+			   if ($arr['Gappid']<>''){ //网页授权
+				   // if((substr($userinfo['nickname'],0,6)=='会员')){
+					$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid'];
+					$sqstr="\n<a href='".$sqstr1."'>点链接快速接通客服</a>";
+                   // }
+				}
+				if (trim(trim($arr['默认']))<>''){
+					$this->logger(" R \r\n 默认有:".$arr['默认']); 
+					zhishiku($fromuserid,trim($arr['默认']),$uniacid,$url,$zxkefu,$userinfo)	;			
+			    }else{
+					$this->logger(" R \r\n 默认无:".$name.trim($arr['默认'])); 
+					sendmsg($fromuserid,'text','你好!欢迎访问'.$name.'.'.$signature,'',$url);//给用户发消息.
+				}
+				
+				$zxkefu="\n在线客服:回复名字接通\n".zxkefu($uniacid,$kefuarr,$sqstr1);
+				if($userinfo['lastliao']<>null){$zxkefu.="\n上次接待客服是:".$userinfo['lastliao'];}
+				
+				$zxkefu.=$sqstr; 
+			
+				$caidan=trim($arr['Gjsonid']);//进入通知:
+				if ($caidan<>''){//暂时屏蔽这里.3.15
+				   	 // $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":"[小程序'.$uniacid.'进入提醒]\n  '.$userinfo['nickname'].'  "    }  }';
+					 // $aaa = http_post_data($url1, $data1); // 	 //通知到公共号 
+				 
+				 }
+				 $this->logger(" R \r\n 完成.:" ); 
+ 
+					exit;
+		} 
+ 
+			
+////////////////////////////////////////////////结束动作///////////////////////////////
+			
+				//print_r($kefuarr);
+	//$arr= array_keys($arr1);//openid 
+	//处理客服消息模块开始
+	if(array_key_exists($fromuserid,$kefuarr)){//客服消息处理
+          if (substr($keyword,0,10)=='@所有人'){//@所有人 
+			 atsuoyouren($uniacid,$website,$keyword,$fromuserid,$url,$toUsername);
+			exit;
+	      }		
+ 		//处理@----某人命令
+		 if(substr($keyword,0,1)=='@'){//@某人 
+			  $kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+		      $kefuname = $kefulist[$fromuserid];
+		      atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname);
+			exit;
+	      }
+		if($keyword=='p'){$keyword='下一个'; }
+		if($keyword=='m'){$keyword='排队'; }
+		if($keyword=='0'){$keyword='清零'; }
+		//客服来的消息处理
+	      	$kehuopenid= $kefuarr[$fromuserid];//
+		//	echo '找到客户:'.$kehuopenid;
+			//判断是不是有客户
+			if (substr($kehuopenid,0,1)=='o'){
+				//有客户 ,直接发消息过去:  判断消息是不是@ 
+				
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername)){//是管理员命令
+				//	echo '命令!';
+				}else{
+					//查找客服信息.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+					$bbb=sendmsg($kehuopenid,$MsgType,$kefuname.':'.$keyword,$postObj,$url);//给用户发消息.
+					//增加判断.消息失败提示.
+					  if (json_decode($bbb, true)['errcode']<>0){
+					 // $data2='{ "touser":"'.$fromUsername.'",    "msgtype":"text",
+           // "text":    {         "content":" 客服离开... 消息已存入信箱.'.json_decode($bbb, true)['errcode'].'"    }  }'; //当没有约定好的回复时,这么回复。
+                  
+				 	sendmsg($fromUsername,'text','客户可能已经离开了.','',$url);//给用户发消息.
+				   // savejson('json/'.$toUsername.'_lishi.json', '@'.$paidui['id'].'_'.$content.''.$keyword );
+					  }
+					//sendmsg($openid,$msgtype,$keyword,$postObj,$url)
+				}
+				
+			}else{
+				//没客户接待时,可能发的命令:下一个.
+				if (glymingling($uniacid,$fromuserid,$kehuopenid,$keyword,$arr['结束语'],$kefuarr,$url,$toUsername,$website)){
+					//echo '是命令!';zaij
+				}else{
+				//	echo '给:'.$kefuarr[$fromuserid].'发内容'.$keyword;
+				//  空闲时 可以玩玩素材库 .
+				    if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+						sendmsg($fromuserid,'text','暂无接待客户,可发送命令下一个接通.','',$url,$toUsername,$website);//给用户发消息.
+					}
+				}
+				
+				//客服状态. kong  mang 判断是不是要上班?或者其他命令 比如 下一个 等.
+				
+			}
+			
+		}else{
+		    //	echo "not found kefu--";//不是客服 则看谁空闲? 规则 先找老客服 .
+			//反查是否在队列 
+			//先看客户是不是...选了指定的客服. 客服小李 正在咨询的时候 是不能调出的.除非.
+			
+			$Kefuopenid=array_search($fromuserid,$kefuarr,true);
+			if($Kefuopenid<>'')
+			{
+				//	echo "这是用户,正在咨询的客服是:";
+				//	用户发 再见 主动离线 . 更新客服列表 . 告诉客服 告诉客户
+				
+				if (substr($keyword,0,6)=='再见'){
+					//	sendmsg($fromuserid,'text',$arr['结束语'],'',$url);//说再见.
+						jieshuyu($arr['结束语'],$uniacid,$fromuserid,$website,$url);
+					    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+						$kefulist = json_decode($json,true);	
+						$kefuname = $kefulist[$Kefuopenid];
+						edituser($uniacid,$fromuserid,'',$website,$avartar,$zhuangtai,$kefuname);
+
+						$json = file_get_contents("json/".$uniacid."_paidui.json");
+						$paiduinum = count(json_decode($json,true));	
+						sendmsg($Kefuopenid,'text','当前客户已经离开,发下一个接通.当前有'.$paiduinum.'人排队.','',$url);//说再见.
+						$kefuarr[$Kefuopenid]='空闲';
+						//建立对接 同时通知双方. 发两次消息.
+						exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+					}else{
+							 
+				   if(!is_numeric($uniacid)){$uniacid=$bakuniacid;}
+					$users=getuser($uniacid,$fromuserid,$nickname,$website);
+					$bbb=sendmsg($Kefuopenid,$MsgType,'['.$users['id'].']'.$users['nickname'].':'.$keyword,$postObj,$url);
+					    if (json_decode($bbb, true)['errcode']<>0){
+			         		sendmsg($fromUsername,'text','客服忙..已经存入留言板...\n 回复 再见 结束会话.','',$url);//给用户发消息.
+						//	savejson('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword );
+							   file_put_contents('json/'.$toUsername.'_lishi.json', '@'.$users['id'].'_'.$users['nickname'].''.$keyword .PHP_EOL, FILE_APPEND);
+						}
+				
+				}	
+			}else{//没在咨询,检查是否有空闲客服
+				   
+				if ( strpos($arr['kefustr'],$keyword)>0){//客户发张三 
+				 	$kongkefu='';
+					$zhiding=1;
+					}else{
+					$kongkefu=array_search('空闲',$kefuarr,true);
+				}	
+					if($kongkefu<>''){
+						//echo '当前有空的客服:';	
+						//echo $kongkefu;
+						$kefuarr[$kongkefu]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+						exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+						$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+						
+						$unid=$uniacid;
+						if(!is_numeric($uniacid)){$unid=$bakuniacid;};
+						$users=getuser($unid,$fromuserid,$nickname,$website);
+						
+					    sendmsg($kongkefu,'text',$users['id'].$users['nickname'].':'.$keyword,'',$url);//通知客服
+						$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+						$kefuname = $kefulist[$kongkefu];
+					    sendmsg($fromuserid,'text',$kefuname.':你好,有什么可以帮到你的?','',$url);//通知客服
+						$tongzhiadmin=$kefuname.' 接入了新客户.['.$users['id'].']'.$users['nickname'];
+					}else
+					{	//echo '当前客服都忙:/或者客户指定了客服.';	
+						//检查关键词回复 如果有则回复关键词 
+						if($MsgType=='text'){
+							if (!zhishiku($fromuserid,$keyword,$uniacid,$url,'',$userinfo)){
+								//当客服发送 指定客服的指令时 .如发 客服1 
+								if ($zhiding==1){//客户主动选择客服.
+									$zd=zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website);
+						           if($zd){ $tongzhiadmin=$keyword.' 被客户点名. ';}
+
+								}else{
+									$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+									sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+									if($paidui<>'排队中,请耐心等待.'){
+										$tongzhiadmin='有用户来:'.$keyword.'\n排队中:'.$paidui;
+									}
+								}
+							}
+						}else{//用户发送其他信息怎么办? 通知他排队.
+								$paidui=paidui($uniacid,$fromuserid,$website);//排队语自己组织.
+								sendmsg($fromuserid,'text',$paidui,'',$url);//下发排队情况给用户.
+								sendmsg($myopenid,$MsgType,'其他类型文件',$postObj,$url);//其他文件 直接通知管理员..
+						}
+						
+						// 是否在排队? 用数组键值查询, 没有.插入排队表 .有 返回排队顺序?  
+ 						
+					}
+							
+		}  //下发给总管理员通知;
+		if ($tongzhiadmin<>''){
+		  $data1='{ "touser":"'.$myopenid.'",    "msgtype":"text",
+						"text":    {         "content":"[管理员提醒:]\n'.$tongzhiadmin.'"    }  }';
+		  $aaa = http_post_data($url, $data1); //减少骚扰 不通知 
+		}
+		
+	}
+	//处理客服消息模块结束.
+			
+			
+///////////////////////////////////////////////结束分配/////////////////////////////////
+			
+      
+            //如果是公众号,可以自动回复:
+            if ($encrypt_type == 'aes11'){
+				$result = $this->transmitText($postObj, $keyword.$aaa);
+                $encryptMsg = ''; //加密后的密文
+                $errCode = $pc->encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
+                $result = $encryptMsg;
+                $this->logger(" E \r\n".$result);
+            }
+            echo $result;
+        }else {
+            echo "";
+            exit;
+        }
+    }
+
+    //接收事件消息
+    private function receiveEvent($RX_TYPE,$object)
+    {
+        $content = "";
+       // switch ($object->Event)
+       // {
+       //     case "subscribe":
+            //    $content = "欢迎关注,系统正在升级. ";
+            //    break;
+       // }
+		$content= $RX_TYPE."from_callback";
+        $result = $this->transmitText($object, $content);
+        return $result;
+    }
+
+    //接收文本消息
+     private function receiveText($object)
+    {
+      //  $keyword = trim($object->Content);
+        
+ 			
+			$needle ='QUERY_AUTH_CODE:';
+            $tmparray = explode($needle,$object['Content']);
+            if(count($tmparray)>1){
+                // trace($response,"解密后: " );
+                //3、模拟粉丝发送文本消息给专用测试公众号,第三方平台方需在5秒内返回空串
+                //表明暂时不回复,然后再立即使用客服消息接口发送消息回复粉丝
+                $contentx = str_replace ($needle,'',$object['Content']);//将$query_auth_code$的值赋值给API所需的参数authorization_code
+                $this->authorization_code = $contentx;//authorization_code
+               // trace($contentx,'authorization_code');
+ 
+ 
+                //使用授权码换取公众号或小程序的接口调用凭据和授权信息
+                $postdata = array(
+                    "component_appid"=>$this->appid,
+                    "authorization_code"=>$this->authorization_code,
+                );
+				 $ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');
+				$token= getToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');
+ 
+				$url="https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=$token";
+				$authorization=http_post_data($url,$data);
+				$auth=json_decode($authorization,true);
+				//authorizer_access_token
+				 $authorizer_access_token=$auth['authorization_info']['authorizer_access_token'];
+				 $content_re = $contentx."_from_api";
+                 echo '';
+				 $data = array(
+                    "touser"=>$object['FromUserName'],
+                    "msgtype"=>"text",
+                    "text" => array(
+                                "content" =>$content_re
+                    )
+                );
+                $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$authorizer_access_token;
+                $ret = http_post_data($url, $data);
+				
+				
+				
+				
+			}else{
+				
+		$content="TESTCOMPONENT_MSG_TYPE_TEXT_callback";
+     
+        $result = $this->transmitText($object, $content);
+       
+			return $result;}
+    }
+	
+
+    //回复文本消息
+    private function transmitText($object, $content)
+    {
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[text]]></MsgType>
+    <Content><![CDATA[%s]]></Content>
+</xml>";
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);
+        return $result;
+    }
+
+    //回复图文消息
+    private function transmitNews($object, $newsArray)
+    {
+        if(!is_array($newsArray)){
+            return;
+        }
+        $itemTpl = "        <item>
+            <Title><![CDATA[%s]]></Title>
+            <Description><![CDATA[%s]]></Description>
+            <PicUrl><![CDATA[%s]]></PicUrl>
+            <Url><![CDATA[%s]]></Url>
+        </item>
+";
+        $item_str = "";
+        foreach ($newsArray as $item){
+            $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
+        }
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[news]]></MsgType>
+    <ArticleCount>%s</ArticleCount>
+    <Articles>
+$item_str    </Articles>
+</xml>";
+
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));
+        return $result;
+    }
+
+    //回复音乐消息
+    private function transmitMusic($object, $musicArray)
+    {
+        $itemTpl = "<Music>
+        <Title><![CDATA[%s]]></Title>
+        <Description><![CDATA[%s]]></Description>
+        <MusicUrl><![CDATA[%s]]></MusicUrl>
+        <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
+    </Music>";
+
+        $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);
+
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[music]]></MsgType>
+    $item_str
+</xml>";
+
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
+        return $result;
+    }
+
+    //日志记录
+    public 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 if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
+            $max_size = 500000;
+            $log_filename = "log_wx_open.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);
+        }
+    }
+
+	
+
+public	function getNewCToken($Mappid,$Cappid,$refresh_token,$Mtoken){
+		$data_string='{
+"component_appid":"'.$Mappid.'",
+"authorizer_appid":"'.$Cappid.'",
+"authorizer_refresh_token":"'.$refresh_token.'",
+}';
+    $access_token_Arr = http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=$Mtoken", $data_string);
+	 
+	
+	//$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr;
+}
+
+public	 function getCToken($Mappid,$Cappid,$refresh_token,$Mtoken){
+     
+    $file = file_get_contents("jsonX/{$Cappid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+       // $data = array();
+        $jsonStr  = $this->getNewCToken($Mappid,$Cappid,$refresh_token,$Mtoken);
+        
+      //  $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$Cappid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+		$data=json_decode($jsonStr,true);
+        return $data['authorizer_access_token'];
+    }else{
+        return $result['authorizer_access_token'];
+    }
+}
+	
+	
+	
+	
+	
+	
+	
+	public 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);
+}
+   
+	public 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"]);
+}
+public	 function getMToken($appid,$appsecret,$ComponentVerifyTicket,$jsonid){
+     
+    $file = file_get_contents("jsonX/{$appid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+        $data = array();
+        $data['component_access_token'] =$this->getNewToken($appid,$appsecret,$ComponentVerifyTicket);
+        $data['expires']=time()+6200;
+        $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$appid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+        return $data['component_access_token'];
+    }else{
+        return $result['component_access_token'];
+    }
+}
+
+public	function getNewToken($appid,$appsecret,$ComponentVerifyTicket){
+		$data_string='{
+"component_appid":"'.$appid.'" ,
+"component_appsecret": "'.$appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+    $access_token_Arr = http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+	//echo "<br>---";
+	
+	$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr['component_access_token'];
+}
+
+}
+
+
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "    }  }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			default:
+			     $data1='';
+		}
+		
+	 	$aaa = http_post_data($url, $data1);
+		//echo '发送消息:'.$data1.$aaa;
+	//	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+    
+   function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+	function getuser($ucid,$openid,$nickname,$website)
+{
+   ///先判断缓存文件是否存在 
+  
+	    $json = file_get_contents("json/".$ucid."_user.json");
+	    $userinfos = json_decode($json,true);
+	  //  $userid=$userinfos[$openid]['id'];
+	//	echo '找到缓存表:'.$userid;
+   
+	 
+	   if (!array_key_exists($openid,$userinfos)){
+		
+		   $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=getuser&m=qidong_app&openid=".$openid."&nickname=".$nickname;
+        loggers($token_access_url)  ;     
+	   //  echo 	  $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'];
+		   $lastliao= $result['data']['wxapp'][0]['lastliao'];
+		   if (trim($nickname)==null) {
+			 $nickname='会员'.$result['data']['wxapp'][0]['id'];
+			 $isid=1;
+			 }
+		   $userid=$result['data']['wxapp'][0]['id'];
+		     $data = array(
+	                'nickname' =>   $nickname,
+                    'id' =>  $userid,
+					'beizhu' =>  $beizhu,
+					'lastliao'=> $lastliao
+	              );
+		return $data ;
+	   
+	}else
+	   {     
+         // echo '找到缓存 直接返回;';
+          return $userinfos[$openid];
+        
+	   }
+ 
+}
+
+
+function zxkefu($uniacid,$kefuarr,$sqstr1){//读取在线客服列表//下次升级点击接通??
+	$json 	   = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+	$kefulist  = json_decode($json,true);	
+	$kefuopenid= array_keys($kefulist);//kfuopenid 
+	$kefuall='';
+	$i=0;
+	foreach ($kefuopenid as $kefuopenid){ //群发--
+		//$kfopenid=$arr;
+	
+		if(substr($kefuarr[$kefuopenid],0,1)=="o"){
+			$zt='忙碌';
+		}else{
+			$zt=$kefuarr[$kefuopenid];
+		}
+		if ($zt<>'隐身'){
+				$i++;
+			//$sqstr=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			//$sqstr="\n<a href='".$sqstr."'>点此快速接通客服</a>";
+			//$sqstr1=$website."addons/qidong_app/intenet.php?zfopenid=".$fromUsername."&toUsername=".$toUsername."&appid=".$arr['Gappid']."&kfname=".$kfname;
+			if(($sqstr1=='') or ($zt=='忙碌')){
+				$kefuall=$kefuall." ".$kefulist[$kefuopenid]."[".$zt."]";
+			}else{
+				$sqstr="\n<a href='".$sqstr1."&kfname=".$kefulist[$kefuopenid]."&kfopenid=".$kefuopenid."'>".$kefulist[$kefuopenid]."</a>";
+				$kefuall=$kefuall." ".$sqstr."[".$zt."]";	
+			
+			}
+			if(($i % 2)==0){ $kefuall.="\n";}
+				//		$kefuall=$kefuall.' <a href="#">'.$kefulist[$kefuopenid].'</a>['.$zt.']';
+
+		}
+		
+	}
+	//logger($kefuall);
+	return $kefuall;
+	
+}
+
+
+	
+function zhishiku($fromuserid,$keyword,$uniacid,$url,$addstr,$userinfo){
+	//知识库处理模块 
+	        //echo '<br>知识库模块<br>'.$keyword.$uniacid;
+			$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);
+			if(is_numeric($keyword)){
+				$send=$keys[$numkeys[$keyword]]; 
+		    }else {
+				$send=$keys[$keyword];  //$keys['关于我们'];	 	 
+			}	
+				if ( $send<>'' ) {   //判断是否是知识库设置字段
+					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'].=$addstr;
+					}
+					$send['touser']=$fromuserid;
+					$data=json_encode($send,JSON_UNESCAPED_UNICODE);
+					$aaa = http_post_data($url, $data); 
+					$zt=json_decode($aaa, true)['errcode'];
+					if ($zt!=0){//下发未成功
+						$data='{ "touser":"'.$fromuserid.'",    "msgtype":"text",
+						"text":    {         "content":" 系统忙 错误代码: ' .  $zt . ' "    }  }'; 
+					 $aaa = http_post_data($url, $data); 
+				 }
+				return true;
+		  }else{
+			    return false;//不是知识.
+		}
+}
+
+function zhaokefumingling($fromuserid,$uniacid,$keyword,$url,$kefuarr,$website){
+	$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+	//$kefuname=substr($keyword,7);
+	$Kefuopenid=array_search($keyword,$kefulist,true);//找到客服id
+	if (substr($kefuarr[$Kefuopenid],0,1)=='o')//看客服状态 客服状态over
+	{
+		sendmsg($fromuserid,'text','客服忙,请稍后.','',$url);//下发排队情况给用户.
+		return false;
+	}else{//客服接入//
+		if($Kefuopenid==''){
+			sendmsg($fromuserid,'text','客服休息了.请稍后再试.','',$url);//下发排队情况给用户.
+			return false;
+		}else{//客服在,对接开始.  如果是排队发的 则删除排队.如果是没排队发的.则不排队.
+	
+			$kefuarr[$Kefuopenid]=$fromuserid;
+						//建立对接 同时通知双方. 发两次消息.
+			exec("rm -f ".'json/'.$uniacid.'_kefu.json');
+			$res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+						//增加获取用户信息功能. 没排队 直接进入 需要查客户信息.
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+	        $paiduiarr = json_decode($json,true);
+			if(array_key_exists($fromuserid,$paiduiarr)){//如果在排队则..
+				$uid=$paiduiarr[$fromuserid]['id'];
+				$nickname=$paiduiarr[$fromuserid]['nickname'];
+				unset($paiduiarr[$fromuserid]);//删除它
+				$res=file_put_contents("json/".$uniacid."_paidui.json",  json_encode($paiduiarr));
+
+			}else{//没排队 .就是上来就发的. 新用户就注册 老用户就获取.
+				$users=getuser($uniacid,$fromuserid,$nickname,$website);
+				$uid=$users['id'];
+				$nickname=$users['nickname'];
+			}			
+					    sendmsg($Kefuopenid,'text','['.$uid.']'.$nickname.':'.$keyword.' 你好','',$url);//通知客服
+ 					//	$kefuname = $kefulist[$Kefuopenid];
+					    sendmsg($fromuserid,'text',$keyword.':你好,有什么可以帮到你的?','',$url);//通知客服
+			return true;		
+		}
+	}
+	
+	
+}
+
+function atsuoyouren($uniacid,$website,$keyword,$myopenid,$url,$toUsername){
+    //@所有人	
+	$huncun= json_decode(alluser($uniacid,$website),true);
+	$gjz=substr($keyword,10,strlen(trim($keyword))-10);
+	if (substr ($keyword, -1)=='#'){
+    	 $gjz=str_replace('#','|',$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"
+    }';
+	 $data1='{ "touser":"'.$myopenid.'",    "msgtype":"link", "link":   '.$baogao.'    }';
+						  
+	 $aaa = http_post_data($url, $data1); //  
+						  
+	
+	
+	
+}
+
+
+
+function atmouren($keyword,$uniacid,$website,$fromuserid,$url,$kefuname){
+
+		$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=$kefuname.'@你 ,客服上线了,邀请你进入会话.';}
+		//判断say最后字符是# 则是关键词消息  991#
+		$liuuser=	hiuser($uniacid,$nid,$website);
+		$result = substr ($say, -1); //当是# 关键字图文时 .
+		if ($result=='#'){
+			$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);
+		    	$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('单发:'.$gjz.'-'.$data);
+		}else{
+			 
+			sendmsg($liuuser['openid'],'text','['.$kefuname.'@你]:'.$say,'',$url);
+		}
+		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'];  };
+			 
+		 	sendmsg($fromuserid,'text','[@'.$nid.'报告]:'.$zt,'',$url);
+			
+						//发送消息 
+	
+}
+
+
+function glymingling($uniacid,$openid,$kehuopenid,$keyword,$jsy,$kefuarr,$url,$toUsername,$website){
+	//处理管理员命令 @某人命令?
+	//echo '检查命令!';$
+	
+	
+	if (strpos(',清零,下一个,隐身,看留言,上班,排队,@所有人,',$keyword)>0){
+	    //此处增加管理员命令列表处理.
+		if($keyword=='看留言'){
+			$json = file_get_contents('json/'.$toUsername.'_lishi.json');
+			sendmsg($openid,'text','本次获取的内容,已清空留言板:\n'.$json,'',$url);
+			 
+			exec("rm -f ".'json/'.$toUsername.'_lishi.json');
+			break;
+		}
+		if($keyword=='排队'){
+			$json = file_get_contents("json/".$uniacid."_paidui.json");
+			$karr = json_decode($json,true);	
+			$pdrs=count($karr);
+			sendmsg($openid,'text','排队人数:'.$pdrs,'',$url);//发排队人数.后面再做详情.??
+		}
+		 
+		if($keyword=='隐身'){
+		   $kefuarr[$openid]='隐身';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置隐身成功. 可被点名进入聊天.不能自动进入聊天.','',$url); 
+			 
+		}
+		if($keyword=='清零'){
+		    exec("rm -f ".'json/'.$toUsername.'_paidui.json');
+			exec("rm -f ".'json/'.$toUsername.'_token.json');
+			exec("rm -f ".'log.xml');
+			if (!file_exists('json/'.$toUsername.'_token.json')){
+				$t="清零成功!"; 
+			   }else{
+				$t="清零失败,请检查目录权限是否设置为777!"; 
+			}
+		    sendmsg($openid,'text',$t,'',$url); 
+
+			 
+		}
+		
+	    if($keyword=='上班'){
+		   $kefuarr[$openid]='空闲';
+		   $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+		   sendmsg($openid,'text','设置上班成功. 可自动接入来访客户.','',$url); 
+			 
+		}
+		if($keyword=='下一个'){
+			//跟现在的说再见  ?再见语?
+			    $json 	  = file_get_contents("json/".$uniacid."_kefulist.json");//客服详情页
+				$kefulist = json_decode($json,true);	
+				$kefuname = $kefulist[$openid];
+				if (substr($kehuopenid,0,1)=='o'){
+					//回复图文消息.
+					 jieshuyu($jsy,$uniacid,$kehuopenid,$website,$url);
+				// sendmsg($kehuopenid,'text',$jsy,'',$url);//说再见.
+				// $a=edituser($uniacid,$delid['openid'],'',$website);
+				//$lastliao='';//最后聊天客服.
+				 edituser($uniacid,$kehuopenid,'',$website,$avartar,$zhuangtai,$kefuname);
+				}
+			//找到下一个客户?
+				$json = file_get_contents("json/".$uniacid."_paidui.json");
+	            $paiduiarr = json_decode($json,true);
+				$nextkh=array_shift($paiduiarr);//取出并从排队中删除第一个.
+				if  (substr($nextkh['openid'],0,1)=='o'){
+					
+					//print_r($nextkh);
+					//echo '<hr>';
+					
+					 
+					//print_r('nextkhoid:'.$nextkh['openid']);
+					sendmsg($nextkh['openid'],'text',$kefuname.':你好,久等了.','',$url);//新用户你好.
+					$userjson=json_encode($paiduiarr);
+					$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);//更新排队数据.
+					$kefuarr[$openid]=$nextkh['openid'];//保存新的用户进来.;
+					sendmsg($openid,'text','['.$nextkh['id'].']'.$nextkh['nickname'].'已经进入聊天.','',$url);//
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.
+					$kefulist = json_decode(file_get_contents("json/".$uniacid."_kefulist.json"),true);	
+					$kefuname = $kefulist[$fromuserid];
+					//sendmsg($nextkh['openid'],'text',$kefuname.':你好久等了.','',$url);//
+					
+				}else{//已无排队用户.修正客服表 保存.告诉客服.
+					$kefuarr[$openid]='空闲';
+					$res=file_put_contents("json/".$uniacid."_kefu.json",json_encode($kefuarr));//更新客服数据.					
+					sendmsg($openid,'text','已无排队用户.你的状态目前是空闲.\n常用命令: 上班 隐身 排队.','',$url);//新用户你好.
+				}
+				
+		}
+    	return true;
+	}else
+	{
+		return false;
+	}
+	
+}
+	
+	
+function paidui($uniacid,$openid,$website){
+	$json = file_get_contents("json/".$uniacid."_paidui.json");
+	$kefuarr = json_decode($json,true);	
+	if(array_key_exists($openid,$kefuarr)){
+		return '排队中,请耐心等待.';//排队中...
+	}else{
+		$user=getuser($uniacid,$openid,$nickname,$website);//获取用户信息
+		$userinfo=array('id'=>$user['id'],
+						'nickname'=>$user['nickname'],
+						'beizhu'=>$user['beizhu'],
+						'openid'=>$openid);
+		$kefuarr[$openid]=$userinfo;
+		$userjson=json_encode($kefuarr);
+		$res=file_put_contents("json/".$uniacid."_paidui.json",$userjson);
+		$qianmian=count($kefuarr)-1;
+		return '已接入客服中心,前面有'.$qianmian.'人';//排队数量 
+	}
+}	
+	
+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 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 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 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 edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai,$lastliao) //改名取号
+{
+ $token_access_url = "{$website}/app/index.php?i=".$ucid."&c=entry&a=wxapp&do=edituser&m=qidong_app&openid=".$openid."&nickname=".$nickname."&avartar=".$avartar."&lastliao=".$lastliao;  //zhuangtai
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 jieshuyu($bye,$uniacid,$openid,$website,$url){
+			if(is_numeric($bye)){
+				$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);
+				
+				 $delid=getuser($uniacid,$openid,'',$website);
+				$send=$keys[$numkeys[$bye]]; 
+			  	 
+				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($openid);
+					$data0=json_encode($send,JSON_UNESCAPED_UNICODE);
+			 }
+		     else {
+				$sends=$bye;  //$keys['关于我们'];	 
+			    $jieshuyu= str_replace('[name]',$delid['nickname'],$sends);
+				$jieshuyu=str_replace("{br}","\n",$jieshuyu);
+				$jieshuyu=changeurl($jieshuyu);
+				$data0='{ "touser":"'.trim($openid).'",    "msgtype":"text",
+					"text":    {    "content":" '.$jieshuyu.' "    }  }';
+				}
+ 	
+			$aaa = http_post_data($url, $data0); 
+		//	logger($data0);
+		
+		
+	}
+	
+	   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 loggers($log_content)
+    {
+        if(isset($_SERVER['HTTP_APPNAME'])){   //SAE
+            sae_set_display_errors(false);
+            sae_debug($log_content);
+            sae_set_display_errors(true);
+        }else if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
+            $max_size = 500000;
+            $log_filename = "log_wx_open.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);
+        }
+    }
+ 
+?>


+ 40 - 0
phoneapp.php

xqd
@@ -0,0 +1,40 @@
+<?php
+/**
+ * qidong_app模块APP接口定义
+ *
+ * @author zhufagang
+ * @url 
+ */
+defined('IN_IA') or exit('Access Denied');
+
+class Qidong_appModulePhoneapp extends WeModulePhoneapp {
+	public function doPageTest(){
+		global $_GPC, $_W;
+		$errno = 0;
+		$message = '返回消息';
+		$data = array();
+		return $this->result($errno, $message, $data);
+	}
+	
+	public function doPageGetid(){
+		global $_GPC, $_W;
+		$uniacid = $_W['uniacid'];
+		
+		$Tdatas = file_get_contents('../addons/qidong_app_plugin_wx/json/'.$uniacid.'_config.json');
+		$errno = 0;
+		$Tdatas=json_decode($Tdatas,true);
+		//print_r($Tdatas);
+		if(trim($Tdatas['shouquan'])=='2'){
+			$data =$Tdatas;
+		}else{
+			
+			$data=array('ucid'=>$uniacid);
+		}
+	 
+		
+		return json_encode($data);
+	}
+	
+	
+	
+}

+ 4 - 0
php/ReadMe.txt

xqd
@@ -0,0 +1,4 @@
+注意事项:
+1.WXBizMsgCrypt.php文件提供了WXBizMsgCrypt类的实现,是用户接入企业微信的接口类。Sample.php提供了示例以供开发者参考。errorCode.php, pkcs7Encoder.php, sha1.php, xmlparse.php文件是实现这个类的辅助类,开发者无须关心其具体实现。
+2.WXBizMsgCrypt类封装了 DecryptMsg, EncryptMsg两个接口,分别用于开发者解密以及开发者回复消息的加密。使用方法可以参考Sample.php文件。
+3.加解密协议请参考微信公众平台官方文档。

+ 2 - 0
php/VERSION

xqd
@@ -0,0 +1,2 @@
+1.1.4
+2010100721

+ 43 - 0
php/WxPayDataD.php

xqd
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
+<title>阿莫源码社区www.</title>
+</head>
+
+<body>
+
+
+#########   本源码由——————  【阿莫源码论坛阿莫】  ——————发布   #########
+
+// +----------------------------------------------------------------------
+// | Program Name: 欢迎加入阿莫源码论坛互相学习和分享
+// +----------------------------------------------------------------------
+// | Publisher:    阿莫——阿莫
+// +----------------------------------------------------------------------
+// | Developer:    阿莫源码论坛
+// +----------------------------------------------------------------------
+
+ * 加入阿莫源码网 免费下载本站所有资源! 
+
+ * 感谢支持!您的支持是我们最大的动力!
+
+ * 您下载的本源码来自阿莫源码论坛:www.
+
+ * 欢迎大家来访获得最新更新的优秀资源!更多VIP特色资源不容错过!!
+
+ * 永久域名:http://www./     
+
+
+##############################################################################
+
+━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━
+免责声明:
+   根据二○一三年一月三十日《计算机软件保护条例》2次修订第17条规定:
+  为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存
+  储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!
+  鉴于此,也希望大家按此说明研究软件!
+
+本站所有源码都来源于网络收集修改或者交换!如果侵犯了您的权益,请及时告知我们,我们即刻处理!
+</body>
+</html>

+ 40 - 0
php/demo.php

xqd
@@ -0,0 +1,40 @@
+<?php
+
+include_once "wxBizMsgCrypt.php";
+
+// 第三方发送消息给公众平台
+$encodingAesKey = "abcdefghijklmnopqrstuvwxyz0123456789ABCDEFG";
+$token = "pamtest";
+$timeStamp = "1409304348";
+$nonce = "xxxxxx";
+$appId = "wxd6972323f37bfdf0";
+$text = "<xml><ToUserName><![CDATA[oia2Tj我是中文jewbmiOUlr6X-1crbLOvLw]]></ToUserName><FromUserName><![CDATA[gh_7f083739789a]]></FromUserName><CreateTime>1407743423</CreateTime><MsgType><![CDATA[video]]></MsgType><Video><MediaId><![CDATA[eYJ1MbwPRJtOvIEabaxHs7TX2D-HV71s79GUxqdUkjm6Gs2Ed1KF3ulAOA9H1xG0]]></MediaId><Title><![CDATA[testCallBackReplyVideo]]></Title><Description><![CDATA[testCallBackReplyVideo]]></Description></Video></xml>";
+
+
+$pc = new WXBizMsgCrypt($token, $encodingAesKey, $appId);
+$encryptMsg = '';
+$errCode = $pc->encryptMsg($text, $timeStamp, $nonce, $encryptMsg);
+if ($errCode == 0) {
+	print("加密后: " . $encryptMsg . "\n");
+} else {
+	print($errCode . "\n");
+}
+
+$xml_tree = new DOMDocument();
+$xml_tree->loadXML($encryptMsg);
+$array_e = $xml_tree->getElementsByTagName('Encrypt');
+$array_s = $xml_tree->getElementsByTagName('MsgSignature');
+$encrypt = $array_e->item(0)->nodeValue;
+$msg_sign = $array_s->item(0)->nodeValue;
+
+$format = "<xml><ToUserName><![CDATA[toUser]]></ToUserName><Encrypt><![CDATA[%s]]></Encrypt></xml>";
+$from_xml = sprintf($format, $encrypt);
+
+// 第三方收到公众号平台发送的消息
+$msg = '';
+$errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $from_xml, $msg);
+if ($errCode == 0) {
+	print("解密后: " . $msg . "\n");
+} else {
+	print($errCode . "\n");
+}

+ 35 - 0
php/errorCode.php

xqd
@@ -0,0 +1,35 @@
+<?php
+
+/**
+ * error code 说明.
+ * <ul>
+ *    <li>-40001: 签名验证错误</li>
+ *    <li>-40002: xml解析失败</li>
+ *    <li>-40003: sha加密生成签名失败</li>
+ *    <li>-40004: encodingAesKey 非法</li>
+ *    <li>-40005: appid 校验错误</li>
+ *    <li>-40006: aes 加密失败</li>
+ *    <li>-40007: aes 解密失败</li>
+ *    <li>-40008: 解密后得到的buffer非法</li>
+ *    <li>-40009: base64加密失败</li>
+ *    <li>-40010: base64解密失败</li>
+ *    <li>-40011: 生成xml失败</li>
+ * </ul>
+ */
+class ErrorCode
+{
+	public static $OK = 0;
+	public static $ValidateSignatureError = -40001;
+	public static $ParseXmlError = -40002;
+	public static $ComputeSignatureError = -40003;
+	public static $IllegalAesKey = -40004;
+	public static $ValidateAppidError = -40005;
+	public static $EncryptAESError = -40006;
+	public static $DecryptAESError = -40007;
+	public static $IllegalBuffer = -40008;
+	public static $EncodeBase64Error = -40009;
+	public static $DecodeBase64Error = -40010;
+	public static $GenReturnXmlError = -40011;
+}
+
+?>

+ 3312 - 0
php/phpqrcode.php

xqd
@@ -0,0 +1,3312 @@
+<?php
+
+/*
+ * PHP QR Code encoder
+ *
+ * This file contains MERGED version of PHP QR Code library.
+ * It was auto-generated from full version for your convenience.
+ *
+ * This merged version was configured to not requre any external files,
+ * with disabled cache, error loging and weker but faster mask matching.
+ * If you need tune it up please use non-merged version.
+ *
+ * For full version, documentation, examples of use please visit:
+ *
+ *    http://phpqrcode.sourceforge.net/
+ *    https://sourceforge.net/projects/phpqrcode/
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+ 
+
+/*
+ * Version: 1.1.4
+ * Build: 2010100721
+ */
+
+
+
+//---- qrconst.php -----------------------------
+
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Common constants
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+	// Encoding modes
+	 
+	define('QR_MODE_NUL', -1);
+	define('QR_MODE_NUM', 0);
+	define('QR_MODE_AN', 1);
+	define('QR_MODE_8', 2);
+	define('QR_MODE_KANJI', 3);
+	define('QR_MODE_STRUCTURE', 4);
+
+	// Levels of error correction.
+
+	define('QR_ECLEVEL_L', 0);
+	define('QR_ECLEVEL_M', 1);
+	define('QR_ECLEVEL_Q', 2);
+	define('QR_ECLEVEL_H', 3);
+	
+	// Supported output formats
+	
+	define('QR_FORMAT_TEXT', 0);
+	define('QR_FORMAT_PNG',  1);
+	
+	class qrstr {
+		public static function set(&$srctab, $x, $y, $repl, $replLen = false) {
+			$srctab[$y] = substr_replace($srctab[$y], ($replLen !== false)?substr($repl,0,$replLen):$repl, $x, ($replLen !== false)?$replLen:strlen($repl));
+		}
+	}	
+
+
+
+//---- merged_config.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Config file, tuned-up for merged verion
+ */
+     
+    define('QR_CACHEABLE', false);       // use cache - more disk reads but less CPU power, masks and format templates are stored there
+    define('QR_CACHE_DIR', false);       // used when QR_CACHEABLE === true
+    define('QR_LOG_DIR', false);         // default error logs dir   
+    
+    define('QR_FIND_BEST_MASK', true);                                                          // if true, estimates best mask (spec. default, but extremally slow; set to false to significant performance boost but (propably) worst quality code
+    define('QR_FIND_FROM_RANDOM', 2);                                                       // if false, checks all masks available, otherwise value tells count of masks need to be checked, mask id are got randomly
+    define('QR_DEFAULT_MASK', 2);                                                               // when QR_FIND_BEST_MASK === false
+                                                  
+    define('QR_PNG_MAXIMUM_SIZE',  1024);                                                       // maximum allowed png image width (in pixels), tune to make sure GD and PHP can handle such big images
+                                                  
+
+
+
+//---- qrtools.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Toolset, handy and debug utilites.
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+    class QRtools {
+    
+        //----------------------------------------------------------------------
+        public static function binarize($frame)
+        {
+            $len = count($frame);
+            foreach ($frame as &$frameLine) {
+                
+                for($i=0; $i<$len; $i++) {
+                    $frameLine[$i] = (ord($frameLine[$i])&1)?'1':'0';
+                }
+            }
+            
+            return $frame;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function tcpdfBarcodeArray($code, $mode = 'QR,L', $tcPdfVersion = '4.5.037')
+        {
+            $barcode_array = array();
+            
+            if (!is_array($mode))
+                $mode = explode(',', $mode);
+                
+            $eccLevel = 'L';
+                
+            if (count($mode) > 1) {
+                $eccLevel = $mode[1];
+            }
+                
+            $qrTab = QRcode::text($code, false, $eccLevel);
+            $size = count($qrTab);
+                
+            $barcode_array['num_rows'] = $size;
+            $barcode_array['num_cols'] = $size;
+            $barcode_array['bcode'] = array();
+                
+            foreach ($qrTab as $line) {
+                $arrAdd = array();
+                foreach(str_split($line) as $char)
+                    $arrAdd[] = ($char=='1')?1:0;
+                $barcode_array['bcode'][] = $arrAdd;
+            }
+                    
+            return $barcode_array;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function clearCache()
+        {
+            self::$frames = array();
+        }
+        
+        //----------------------------------------------------------------------
+        public static function buildCache()
+        {
+			QRtools::markTime('before_build_cache');
+			
+			$mask = new QRmask();
+            for ($a=1; $a <= QRSPEC_VERSION_MAX; $a++) {
+                $frame = QRspec::newFrame($a);
+                if (QR_IMAGE) {
+                    $fileName = QR_CACHE_DIR.'frame_'.$a.'.png';
+                    QRimage::png(self::binarize($frame), $fileName, 1, 0);
+                }
+				
+				$width = count($frame);
+				$bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+				for ($maskNo=0; $maskNo<8; $maskNo++)
+					$mask->makeMaskNo($maskNo, $width, $frame, $bitMask, true);
+            }
+			
+			QRtools::markTime('after_build_cache');
+        }
+
+        //----------------------------------------------------------------------
+        public static function log($outfile, $err)
+        {
+            if (QR_LOG_DIR !== false) {
+                if ($err != '') {
+                    if ($outfile !== false) {
+                        file_put_contents(QR_LOG_DIR.basename($outfile).'-errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+                    } else {
+                        file_put_contents(QR_LOG_DIR.'errors.txt', date('Y-m-d H:i:s').': '.$err, FILE_APPEND);
+                    }
+                }    
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public static function dumpMask($frame) 
+        {
+            $width = count($frame);
+            for($y=0;$y<$width;$y++) {
+                for($x=0;$x<$width;$x++) {
+                    echo ord($frame[$y][$x]).',';
+                }
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public static function markTime($markerId)
+        {
+            list($usec, $sec) = explode(" ", microtime());
+            $time = ((float)$usec + (float)$sec);
+            
+            if (!isset($GLOBALS['qr_time_bench']))
+                $GLOBALS['qr_time_bench'] = array();
+            
+            $GLOBALS['qr_time_bench'][$markerId] = $time;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function timeBenchmark()
+        {
+            self::markTime('finish');
+        
+            $lastTime = 0;
+            $startTime = 0;
+            $p = 0;
+
+            echo '<table cellpadding="3" cellspacing="1">
+                    <thead><tr style="border-bottom:1px solid silver"><td colspan="2" style="text-align:center">BENCHMARK</td></tr></thead>
+                    <tbody>';
+
+            foreach($GLOBALS['qr_time_bench'] as $markerId=>$thisTime) {
+                if ($p > 0) {
+                    echo '<tr><th style="text-align:right">till '.$markerId.': </th><td>'.number_format($thisTime-$lastTime, 6).'s</td></tr>';
+                } else {
+                    $startTime = $thisTime;
+                }
+                
+                $p++;
+                $lastTime = $thisTime;
+            }
+            
+            echo '</tbody><tfoot>
+                <tr style="border-top:2px solid black"><th style="text-align:right">TOTAL: </th><td>'.number_format($lastTime-$startTime, 6).'s</td></tr>
+            </tfoot>
+            </table>';
+        }
+        
+    }
+    
+    //##########################################################################
+    
+    QRtools::markTime('start');
+    
+
+
+
+//---- qrspec.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * QR Code specifications
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ *  or
+ * "Automatic identification and data capture techniques -- 
+ *  QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+    define('QRSPEC_VERSION_MAX', 40);
+    define('QRSPEC_WIDTH_MAX',   177);
+
+    define('QRCAP_WIDTH',        0);
+    define('QRCAP_WORDS',        1);
+    define('QRCAP_REMINDER',     2);
+    define('QRCAP_EC',           3);
+
+    class QRspec {
+    
+        public static $capacity = array(
+            array(  0,    0, 0, array(   0,    0,    0,    0)),
+            array( 21,   26, 0, array(   7,   10,   13,   17)), // 1
+            array( 25,   44, 7, array(  10,   16,   22,   28)),
+            array( 29,   70, 7, array(  15,   26,   36,   44)),
+            array( 33,  100, 7, array(  20,   36,   52,   64)),
+            array( 37,  134, 7, array(  26,   48,   72,   88)), // 5
+            array( 41,  172, 7, array(  36,   64,   96,  112)),
+            array( 45,  196, 0, array(  40,   72,  108,  130)),
+            array( 49,  242, 0, array(  48,   88,  132,  156)),
+            array( 53,  292, 0, array(  60,  110,  160,  192)),
+            array( 57,  346, 0, array(  72,  130,  192,  224)), //10
+            array( 61,  404, 0, array(  80,  150,  224,  264)),
+            array( 65,  466, 0, array(  96,  176,  260,  308)),
+            array( 69,  532, 0, array( 104,  198,  288,  352)),
+            array( 73,  581, 3, array( 120,  216,  320,  384)),
+            array( 77,  655, 3, array( 132,  240,  360,  432)), //15
+            array( 81,  733, 3, array( 144,  280,  408,  480)),
+            array( 85,  815, 3, array( 168,  308,  448,  532)),
+            array( 89,  901, 3, array( 180,  338,  504,  588)),
+            array( 93,  991, 3, array( 196,  364,  546,  650)),
+            array( 97, 1085, 3, array( 224,  416,  600,  700)), //20
+            array(101, 1156, 4, array( 224,  442,  644,  750)),
+            array(105, 1258, 4, array( 252,  476,  690,  816)),
+            array(109, 1364, 4, array( 270,  504,  750,  900)),
+            array(113, 1474, 4, array( 300,  560,  810,  960)),
+            array(117, 1588, 4, array( 312,  588,  870, 1050)), //25
+            array(121, 1706, 4, array( 336,  644,  952, 1110)),
+            array(125, 1828, 4, array( 360,  700, 1020, 1200)),
+            array(129, 1921, 3, array( 390,  728, 1050, 1260)),
+            array(133, 2051, 3, array( 420,  784, 1140, 1350)),
+            array(137, 2185, 3, array( 450,  812, 1200, 1440)), //30
+            array(141, 2323, 3, array( 480,  868, 1290, 1530)),
+            array(145, 2465, 3, array( 510,  924, 1350, 1620)),
+            array(149, 2611, 3, array( 540,  980, 1440, 1710)),
+            array(153, 2761, 3, array( 570, 1036, 1530, 1800)),
+            array(157, 2876, 0, array( 570, 1064, 1590, 1890)), //35
+            array(161, 3034, 0, array( 600, 1120, 1680, 1980)),
+            array(165, 3196, 0, array( 630, 1204, 1770, 2100)),
+            array(169, 3362, 0, array( 660, 1260, 1860, 2220)),
+            array(173, 3532, 0, array( 720, 1316, 1950, 2310)),
+            array(177, 3706, 0, array( 750, 1372, 2040, 2430)) //40
+        );
+        
+        //----------------------------------------------------------------------
+        public static function getDataLength($version, $level)
+        {
+            return self::$capacity[$version][QRCAP_WORDS] - self::$capacity[$version][QRCAP_EC][$level];
+        }
+        
+        //----------------------------------------------------------------------
+        public static function getECCLength($version, $level)
+        {
+            return self::$capacity[$version][QRCAP_EC][$level];
+        }
+        
+        //----------------------------------------------------------------------
+        public static function getWidth($version)
+        {
+            return self::$capacity[$version][QRCAP_WIDTH];
+        }
+        
+        //----------------------------------------------------------------------
+        public static function getRemainder($version)
+        {
+            return self::$capacity[$version][QRCAP_REMINDER];
+        }
+        
+        //----------------------------------------------------------------------
+        public static function getMinimumVersion($size, $level)
+        {
+
+            for($i=1; $i<= QRSPEC_VERSION_MAX; $i++) {
+                $words  = self::$capacity[$i][QRCAP_WORDS] - self::$capacity[$i][QRCAP_EC][$level];
+                if($words >= $size) 
+                    return $i;
+            }
+
+            return -1;
+        }
+    
+        //######################################################################
+        
+        public static $lengthTableBits = array(
+            array(10, 12, 14),
+            array( 9, 11, 13),
+            array( 8, 16, 16),
+            array( 8, 10, 12)
+        );
+        
+        //----------------------------------------------------------------------
+        public static function lengthIndicator($mode, $version)
+        {
+            if ($mode == QR_MODE_STRUCTURE)
+                return 0;
+                
+            if ($version <= 9) {
+                $l = 0;
+            } else if ($version <= 26) {
+                $l = 1;
+            } else {
+                $l = 2;
+            }
+
+            return self::$lengthTableBits[$mode][$l];
+        }
+        
+        //----------------------------------------------------------------------
+        public static function maximumWords($mode, $version)
+        {
+            if($mode == QR_MODE_STRUCTURE) 
+                return 3;
+                
+            if($version <= 9) {
+                $l = 0;
+            } else if($version <= 26) {
+                $l = 1;
+            } else {
+                $l = 2;
+            }
+
+            $bits = self::$lengthTableBits[$mode][$l];
+            $words = (1 << $bits) - 1;
+            
+            if($mode == QR_MODE_KANJI) {
+                $words *= 2; // the number of bytes is required
+            }
+
+            return $words;
+        }
+
+        // Error correction code -----------------------------------------------
+        // Table of the error correction code (Reed-Solomon block)
+        // See Table 12-16 (pp.30-36), JIS X0510:2004.
+
+        public static $eccTable = array(
+            array(array( 0,  0), array( 0,  0), array( 0,  0), array( 0,  0)),
+            array(array( 1,  0), array( 1,  0), array( 1,  0), array( 1,  0)), // 1
+            array(array( 1,  0), array( 1,  0), array( 1,  0), array( 1,  0)),
+            array(array( 1,  0), array( 1,  0), array( 2,  0), array( 2,  0)),
+            array(array( 1,  0), array( 2,  0), array( 2,  0), array( 4,  0)),
+            array(array( 1,  0), array( 2,  0), array( 2,  2), array( 2,  2)), // 5
+            array(array( 2,  0), array( 4,  0), array( 4,  0), array( 4,  0)),
+            array(array( 2,  0), array( 4,  0), array( 2,  4), array( 4,  1)),
+            array(array( 2,  0), array( 2,  2), array( 4,  2), array( 4,  2)),
+            array(array( 2,  0), array( 3,  2), array( 4,  4), array( 4,  4)),
+            array(array( 2,  2), array( 4,  1), array( 6,  2), array( 6,  2)), //10
+            array(array( 4,  0), array( 1,  4), array( 4,  4), array( 3,  8)),
+            array(array( 2,  2), array( 6,  2), array( 4,  6), array( 7,  4)),
+            array(array( 4,  0), array( 8,  1), array( 8,  4), array(12,  4)),
+            array(array( 3,  1), array( 4,  5), array(11,  5), array(11,  5)),
+            array(array( 5,  1), array( 5,  5), array( 5,  7), array(11,  7)), //15
+            array(array( 5,  1), array( 7,  3), array(15,  2), array( 3, 13)),
+            array(array( 1,  5), array(10,  1), array( 1, 15), array( 2, 17)),
+            array(array( 5,  1), array( 9,  4), array(17,  1), array( 2, 19)),
+            array(array( 3,  4), array( 3, 11), array(17,  4), array( 9, 16)),
+            array(array( 3,  5), array( 3, 13), array(15,  5), array(15, 10)), //20
+            array(array( 4,  4), array(17,  0), array(17,  6), array(19,  6)),
+            array(array( 2,  7), array(17,  0), array( 7, 16), array(34,  0)),
+            array(array( 4,  5), array( 4, 14), array(11, 14), array(16, 14)),
+            array(array( 6,  4), array( 6, 14), array(11, 16), array(30,  2)),
+            array(array( 8,  4), array( 8, 13), array( 7, 22), array(22, 13)), //25
+            array(array(10,  2), array(19,  4), array(28,  6), array(33,  4)),
+            array(array( 8,  4), array(22,  3), array( 8, 26), array(12, 28)),
+            array(array( 3, 10), array( 3, 23), array( 4, 31), array(11, 31)),
+            array(array( 7,  7), array(21,  7), array( 1, 37), array(19, 26)),
+            array(array( 5, 10), array(19, 10), array(15, 25), array(23, 25)), //30
+            array(array(13,  3), array( 2, 29), array(42,  1), array(23, 28)),
+            array(array(17,  0), array(10, 23), array(10, 35), array(19, 35)),
+            array(array(17,  1), array(14, 21), array(29, 19), array(11, 46)),
+            array(array(13,  6), array(14, 23), array(44,  7), array(59,  1)),
+            array(array(12,  7), array(12, 26), array(39, 14), array(22, 41)), //35
+            array(array( 6, 14), array( 6, 34), array(46, 10), array( 2, 64)),
+            array(array(17,  4), array(29, 14), array(49, 10), array(24, 46)),
+            array(array( 4, 18), array(13, 32), array(48, 14), array(42, 32)),
+            array(array(20,  4), array(40,  7), array(43, 22), array(10, 67)),
+            array(array(19,  6), array(18, 31), array(34, 34), array(20, 61)),//40
+        );                                                                       
+
+        //----------------------------------------------------------------------
+        // CACHEABLE!!!
+        
+        public static function getEccSpec($version, $level, array &$spec)
+        {
+            if (count($spec) < 5) {
+                $spec = array(0,0,0,0,0);
+            }
+
+            $b1   = self::$eccTable[$version][$level][0];
+            $b2   = self::$eccTable[$version][$level][1];
+            $data = self::getDataLength($version, $level);
+            $ecc  = self::getECCLength($version, $level);
+
+            if($b2 == 0) {
+                $spec[0] = $b1;
+                $spec[1] = (int)($data / $b1);
+                $spec[2] = (int)($ecc / $b1);
+                $spec[3] = 0; 
+                $spec[4] = 0;
+            } else {
+                $spec[0] = $b1;
+                $spec[1] = (int)($data / ($b1 + $b2));
+                $spec[2] = (int)($ecc  / ($b1 + $b2));
+                $spec[3] = $b2;
+                $spec[4] = $spec[1] + 1;
+            }
+        }
+
+        // Alignment pattern ---------------------------------------------------
+
+        // Positions of alignment patterns.
+        // This array includes only the second and the third position of the 
+        // alignment patterns. Rest of them can be calculated from the distance 
+        // between them.
+         
+        // See Table 1 in Appendix E (pp.71) of JIS X0510:2004.
+         
+        public static $alignmentPattern = array(      
+            array( 0,  0),
+            array( 0,  0), array(18,  0), array(22,  0), array(26,  0), array(30,  0), // 1- 5
+            array(34,  0), array(22, 38), array(24, 42), array(26, 46), array(28, 50), // 6-10
+            array(30, 54), array(32, 58), array(34, 62), array(26, 46), array(26, 48), //11-15
+            array(26, 50), array(30, 54), array(30, 56), array(30, 58), array(34, 62), //16-20
+            array(28, 50), array(26, 50), array(30, 54), array(28, 54), array(32, 58), //21-25
+            array(30, 58), array(34, 62), array(26, 50), array(30, 54), array(26, 52), //26-30
+            array(30, 56), array(34, 60), array(30, 58), array(34, 62), array(30, 54), //31-35
+            array(24, 50), array(28, 54), array(32, 58), array(26, 54), array(30, 58), //35-40
+        );                                                                                  
+
+        
+        /** --------------------------------------------------------------------
+         * Put an alignment marker.
+         * @param frame
+         * @param width
+         * @param ox,oy center coordinate of the pattern
+         */
+        public static function putAlignmentMarker(array &$frame, $ox, $oy)
+        {
+            $finder = array(
+                "\xa1\xa1\xa1\xa1\xa1",
+                "\xa1\xa0\xa0\xa0\xa1",
+                "\xa1\xa0\xa1\xa0\xa1",
+                "\xa1\xa0\xa0\xa0\xa1",
+                "\xa1\xa1\xa1\xa1\xa1"
+            );                        
+            
+            $yStart = $oy-2;         
+            $xStart = $ox-2;
+            
+            for($y=0; $y<5; $y++) {
+                QRstr::set($frame, $xStart, $yStart+$y, $finder[$y]);
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public static function putAlignmentPattern($version, &$frame, $width)
+        {
+            if($version < 2)
+                return;
+
+            $d = self::$alignmentPattern[$version][1] - self::$alignmentPattern[$version][0];
+            if($d < 0) {
+                $w = 2;
+            } else {
+                $w = (int)(($width - self::$alignmentPattern[$version][0]) / $d + 2);
+            }
+
+            if($w * $w - 3 == 1) {
+                $x = self::$alignmentPattern[$version][0];
+                $y = self::$alignmentPattern[$version][0];
+                self::putAlignmentMarker($frame, $x, $y);
+                return;
+            }
+
+            $cx = self::$alignmentPattern[$version][0];
+            for($x=1; $x<$w - 1; $x++) {
+                self::putAlignmentMarker($frame, 6, $cx);
+                self::putAlignmentMarker($frame, $cx,  6);
+                $cx += $d;
+            }
+
+            $cy = self::$alignmentPattern[$version][0];
+            for($y=0; $y<$w-1; $y++) {
+                $cx = self::$alignmentPattern[$version][0];
+                for($x=0; $x<$w-1; $x++) {
+                    self::putAlignmentMarker($frame, $cx, $cy);
+                    $cx += $d;
+                }
+                $cy += $d;
+            }
+        }
+
+        // Version information pattern -----------------------------------------
+
+		// Version information pattern (BCH coded).
+        // See Table 1 in Appendix D (pp.68) of JIS X0510:2004.
+        
+		// size: [QRSPEC_VERSION_MAX - 6]
+		
+        public static $versionPattern = array(
+            0x07c94, 0x085bc, 0x09a99, 0x0a4d3, 0x0bbf6, 0x0c762, 0x0d847, 0x0e60d,
+            0x0f928, 0x10b78, 0x1145d, 0x12a17, 0x13532, 0x149a6, 0x15683, 0x168c9,
+            0x177ec, 0x18ec4, 0x191e1, 0x1afab, 0x1b08e, 0x1cc1a, 0x1d33f, 0x1ed75,
+            0x1f250, 0x209d5, 0x216f0, 0x228ba, 0x2379f, 0x24b0b, 0x2542e, 0x26a64,
+            0x27541, 0x28c69
+        );
+
+        //----------------------------------------------------------------------
+        public static function getVersionPattern($version)
+        {
+            if($version < 7 || $version > QRSPEC_VERSION_MAX)
+                return 0;
+
+            return self::$versionPattern[$version -7];
+        }
+
+        // Format information --------------------------------------------------
+        // See calcFormatInfo in tests/test_qrspec.c (orginal qrencode c lib)
+        
+        public static $formatInfo = array(
+            array(0x77c4, 0x72f3, 0x7daa, 0x789d, 0x662f, 0x6318, 0x6c41, 0x6976),
+            array(0x5412, 0x5125, 0x5e7c, 0x5b4b, 0x45f9, 0x40ce, 0x4f97, 0x4aa0),
+            array(0x355f, 0x3068, 0x3f31, 0x3a06, 0x24b4, 0x2183, 0x2eda, 0x2bed),
+            array(0x1689, 0x13be, 0x1ce7, 0x19d0, 0x0762, 0x0255, 0x0d0c, 0x083b)
+        );
+
+        public static function getFormatInfo($mask, $level)
+        {
+            if($mask < 0 || $mask > 7)
+                return 0;
+                
+            if($level < 0 || $level > 3)
+                return 0;                
+
+            return self::$formatInfo[$level][$mask];
+        }
+
+        // Frame ---------------------------------------------------------------
+        // Cache of initial frames.
+         
+        public static $frames = array();
+
+        /** --------------------------------------------------------------------
+         * Put a finder pattern.
+         * @param frame
+         * @param width
+         * @param ox,oy upper-left coordinate of the pattern
+         */
+        public static function putFinderPattern(&$frame, $ox, $oy)
+        {
+            $finder = array(
+                "\xc1\xc1\xc1\xc1\xc1\xc1\xc1",
+                "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+                "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+                "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+                "\xc1\xc0\xc1\xc1\xc1\xc0\xc1",
+                "\xc1\xc0\xc0\xc0\xc0\xc0\xc1",
+                "\xc1\xc1\xc1\xc1\xc1\xc1\xc1"
+            );                            
+            
+            for($y=0; $y<7; $y++) {
+                QRstr::set($frame, $ox, $oy+$y, $finder[$y]);
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public static function createFrame($version)
+        {
+            $width = self::$capacity[$version][QRCAP_WIDTH];
+            $frameLine = str_repeat ("\0", $width);
+            $frame = array_fill(0, $width, $frameLine);
+
+            // Finder pattern
+            self::putFinderPattern($frame, 0, 0);
+            self::putFinderPattern($frame, $width - 7, 0);
+            self::putFinderPattern($frame, 0, $width - 7);
+            
+            // Separator
+            $yOffset = $width - 7;
+            
+            for($y=0; $y<7; $y++) {
+                $frame[$y][7] = "\xc0";
+                $frame[$y][$width - 8] = "\xc0";
+                $frame[$yOffset][7] = "\xc0";
+                $yOffset++;
+            }
+            
+            $setPattern = str_repeat("\xc0", 8);
+            
+            QRstr::set($frame, 0, 7, $setPattern);
+            QRstr::set($frame, $width-8, 7, $setPattern);
+            QRstr::set($frame, 0, $width - 8, $setPattern);
+        
+            // Format info
+            $setPattern = str_repeat("\x84", 9);
+            QRstr::set($frame, 0, 8, $setPattern);
+            QRstr::set($frame, $width - 8, 8, $setPattern, 8);
+            
+            $yOffset = $width - 8;
+
+            for($y=0; $y<8; $y++,$yOffset++) {
+                $frame[$y][8] = "\x84";
+                $frame[$yOffset][8] = "\x84";
+            }
+
+            // Timing pattern  
+            
+            for($i=1; $i<$width-15; $i++) {
+                $frame[6][7+$i] = chr(0x90 | ($i & 1));
+                $frame[7+$i][6] = chr(0x90 | ($i & 1));
+            }
+            
+            // Alignment pattern  
+            self::putAlignmentPattern($version, $frame, $width);
+            
+            // Version information 
+            if($version >= 7) {
+                $vinf = self::getVersionPattern($version);
+
+                $v = $vinf;
+                
+                for($x=0; $x<6; $x++) {
+                    for($y=0; $y<3; $y++) {
+                        $frame[($width - 11)+$y][$x] = chr(0x88 | ($v & 1));
+                        $v = $v >> 1;
+                    }
+                }
+
+                $v = $vinf;
+                for($y=0; $y<6; $y++) {
+                    for($x=0; $x<3; $x++) {
+                        $frame[$y][$x+($width - 11)] = chr(0x88 | ($v & 1));
+                        $v = $v >> 1;
+                    }
+                }
+            }
+    
+            // and a little bit...  
+            $frame[$width - 8][8] = "\x81";
+            
+            return $frame;
+        }
+
+        //----------------------------------------------------------------------
+        public static function debug($frame, $binary_mode = false)
+        {
+            if ($binary_mode) {
+            
+                    foreach ($frame as &$frameLine) {
+                        $frameLine = join('<span class="m">&nbsp;&nbsp;</span>', explode('0', $frameLine));
+                        $frameLine = join('&#9608;&#9608;', explode('1', $frameLine));
+                    }
+                    
+                    ?>
+                <style>
+                    .m { background-color: white; }
+                </style>
+                <?php
+                    echo '<pre><tt><br/ ><br/ ><br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;';
+                    echo join("<br/ >&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;", $frame);
+                    echo '</tt></pre><br/ ><br/ ><br/ ><br/ ><br/ ><br/ >';
+            
+            } else {
+            
+                foreach ($frame as &$frameLine) {
+                    $frameLine = join('<span class="m">&nbsp;</span>',  explode("\xc0", $frameLine));
+                    $frameLine = join('<span class="m">&#9618;</span>', explode("\xc1", $frameLine));
+                    $frameLine = join('<span class="p">&nbsp;</span>',  explode("\xa0", $frameLine));
+                    $frameLine = join('<span class="p">&#9618;</span>', explode("\xa1", $frameLine));
+                    $frameLine = join('<span class="s">&#9671;</span>', explode("\x84", $frameLine)); //format 0
+                    $frameLine = join('<span class="s">&#9670;</span>', explode("\x85", $frameLine)); //format 1
+                    $frameLine = join('<span class="x">&#9762;</span>', explode("\x81", $frameLine)); //special bit
+                    $frameLine = join('<span class="c">&nbsp;</span>',  explode("\x90", $frameLine)); //clock 0
+                    $frameLine = join('<span class="c">&#9719;</span>', explode("\x91", $frameLine)); //clock 1
+                    $frameLine = join('<span class="f">&nbsp;</span>',  explode("\x88", $frameLine)); //version
+                    $frameLine = join('<span class="f">&#9618;</span>', explode("\x89", $frameLine)); //version
+                    $frameLine = join('&#9830;', explode("\x01", $frameLine));
+                    $frameLine = join('&#8901;', explode("\0", $frameLine));
+                }
+                
+                ?>
+                <style>
+                    .p { background-color: yellow; }
+                    .m { background-color: #00FF00; }
+                    .s { background-color: #FF0000; }
+                    .c { background-color: aqua; }
+                    .x { background-color: pink; }
+                    .f { background-color: gold; }
+                </style>
+                <?php
+                echo "<pre><tt>";
+                echo join("<br/ >", $frame);
+                echo "</tt></pre>";
+            
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public static function serial($frame)
+        {
+            return gzcompress(join("\n", $frame), 9);
+        }
+        
+        //----------------------------------------------------------------------
+        public static function unserial($code)
+        {
+            return explode("\n", gzuncompress($code));
+        }
+        
+        //----------------------------------------------------------------------
+        public static function newFrame($version)
+        {
+            if($version < 1 || $version > QRSPEC_VERSION_MAX) 
+                return null;
+
+            if(!isset(self::$frames[$version])) {
+                
+                $fileName = QR_CACHE_DIR.'frame_'.$version.'.dat';
+                
+                if (QR_CACHEABLE) {
+                    if (file_exists($fileName)) {
+                        self::$frames[$version] = self::unserial(file_get_contents($fileName));
+                    } else {
+                        self::$frames[$version] = self::createFrame($version);
+                        file_put_contents($fileName, self::serial(self::$frames[$version]));
+                    }
+                } else {
+                    self::$frames[$version] = self::createFrame($version);
+                }
+            }
+            
+            if(is_null(self::$frames[$version]))
+                return null;
+
+            return self::$frames[$version];
+        }
+
+        //----------------------------------------------------------------------
+        public static function rsBlockNum($spec)     { return $spec[0] + $spec[3]; }
+        public static function rsBlockNum1($spec)    { return $spec[0]; }
+        public static function rsDataCodes1($spec)   { return $spec[1]; }
+        public static function rsEccCodes1($spec)    { return $spec[2]; }
+        public static function rsBlockNum2($spec)    { return $spec[3]; }
+        public static function rsDataCodes2($spec)   { return $spec[4]; }
+        public static function rsEccCodes2($spec)    { return $spec[2]; }
+        public static function rsDataLength($spec)   { return ($spec[0] * $spec[1]) + ($spec[3] * $spec[4]);    }
+        public static function rsEccLength($spec)    { return ($spec[0] + $spec[3]) * $spec[2]; }
+        
+    }
+
+
+
+//---- qrimage.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Image output of code using GD2
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+    define('QR_IMAGE', true);
+
+    class QRimage {
+    
+        //----------------------------------------------------------------------
+        public static function png($frame, $filename = false, $pixelPerPoint = 4, $outerFrame = 4,$saveandprint=FALSE) 
+        {
+            $image = self::image($frame, $pixelPerPoint, $outerFrame);
+            
+            if ($filename === false) {
+                Header("Content-type: image/png");
+                ImagePng($image);
+            } else {
+                if($saveandprint===TRUE){
+                    ImagePng($image, $filename);
+                    header("Content-type: image/png");
+                    ImagePng($image);
+                }else{
+                    ImagePng($image, $filename);
+                }
+            }
+            
+            ImageDestroy($image);
+        }
+    
+        //----------------------------------------------------------------------
+        public static function jpg($frame, $filename = false, $pixelPerPoint = 8, $outerFrame = 4, $q = 85) 
+        {
+            $image = self::image($frame, $pixelPerPoint, $outerFrame);
+            
+            if ($filename === false) {
+                Header("Content-type: image/jpeg");
+                ImageJpeg($image, null, $q);
+            } else {
+                ImageJpeg($image, $filename, $q);            
+            }
+            
+            ImageDestroy($image);
+        }
+    
+        //----------------------------------------------------------------------
+        private static function image($frame, $pixelPerPoint = 4, $outerFrame = 4) 
+        {
+            $h = count($frame);
+            $w = strlen($frame[0]);
+            
+            $imgW = $w + 2*$outerFrame;
+            $imgH = $h + 2*$outerFrame;
+            
+            $base_image =ImageCreate($imgW, $imgH);
+            
+            $col[0] = ImageColorAllocate($base_image,255,255,255);
+            $col[1] = ImageColorAllocate($base_image,0,0,0);
+
+            imagefill($base_image, 0, 0, $col[0]);
+
+            for($y=0; $y<$h; $y++) {
+                for($x=0; $x<$w; $x++) {
+                    if ($frame[$y][$x] == '1') {
+                        ImageSetPixel($base_image,$x+$outerFrame,$y+$outerFrame,$col[1]); 
+                    }
+                }
+            }
+            
+            $target_image =ImageCreate($imgW * $pixelPerPoint, $imgH * $pixelPerPoint);
+            ImageCopyResized($target_image, $base_image, 0, 0, 0, 0, $imgW * $pixelPerPoint, $imgH * $pixelPerPoint, $imgW, $imgH);
+            ImageDestroy($base_image);
+            
+            return $target_image;
+        }
+    }
+
+
+
+//---- qrinput.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Input encoding class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+    define('STRUCTURE_HEADER_BITS',  20);
+    define('MAX_STRUCTURED_SYMBOLS', 16);
+
+    class QRinputItem {
+    
+        public $mode;
+        public $size;
+        public $data;
+        public $bstream;
+
+        public function __construct($mode, $size, $data, $bstream = null) 
+        {
+            $setData = array_slice($data, 0, $size);
+            
+            if (count($setData) < $size) {
+                $setData = array_merge($setData, array_fill(0,$size-count($setData),0));
+            }
+        
+            if(!QRinput::check($mode, $size, $setData)) {
+                throw new Exception('Error m:'.$mode.',s:'.$size.',d:'.join(',',$setData));
+                return null;
+            }
+            
+            $this->mode = $mode;
+            $this->size = $size;
+            $this->data = $setData;
+            $this->bstream = $bstream;
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeModeNum($version)
+        {
+            try {
+            
+                $words = (int)($this->size / 3);
+                $bs = new QRbitstream();
+                
+                $val = 0x1;
+                $bs->appendNum(4, $val);
+                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_NUM, $version), $this->size);
+
+                for($i=0; $i<$words; $i++) {
+                    $val  = (ord($this->data[$i*3  ]) - ord('0')) * 100;
+                    $val += (ord($this->data[$i*3+1]) - ord('0')) * 10;
+                    $val += (ord($this->data[$i*3+2]) - ord('0'));
+                    $bs->appendNum(10, $val);
+                }
+
+                if($this->size - $words * 3 == 1) {
+                    $val = ord($this->data[$words*3]) - ord('0');
+                    $bs->appendNum(4, $val);
+                } else if($this->size - $words * 3 == 2) {
+                    $val  = (ord($this->data[$words*3  ]) - ord('0')) * 10;
+                    $val += (ord($this->data[$words*3+1]) - ord('0'));
+                    $bs->appendNum(7, $val);
+                }
+
+                $this->bstream = $bs;
+                return 0;
+                
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeModeAn($version)
+        {
+            try {
+                $words = (int)($this->size / 2);
+                $bs = new QRbitstream();
+                
+                $bs->appendNum(4, 0x02);
+                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_AN, $version), $this->size);
+
+                for($i=0; $i<$words; $i++) {
+                    $val  = (int)QRinput::lookAnTable(ord($this->data[$i*2  ])) * 45;
+                    $val += (int)QRinput::lookAnTable(ord($this->data[$i*2+1]));
+
+                    $bs->appendNum(11, $val);
+                }
+
+                if($this->size & 1) {
+                    $val = QRinput::lookAnTable(ord($this->data[$words * 2]));
+                    $bs->appendNum(6, $val);
+                }
+        
+                $this->bstream = $bs;
+                return 0;
+            
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeMode8($version)
+        {
+            try {
+                $bs = new QRbitstream();
+
+                $bs->appendNum(4, 0x4);
+                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_8, $version), $this->size);
+
+                for($i=0; $i<$this->size; $i++) {
+                    $bs->appendNum(8, ord($this->data[$i]));
+                }
+
+                $this->bstream = $bs;
+                return 0;
+            
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeModeKanji($version)
+        {
+            try {
+
+                $bs = new QRbitrtream();
+                
+                $bs->appendNum(4, 0x8);
+                $bs->appendNum(QRspec::lengthIndicator(QR_MODE_KANJI, $version), (int)($this->size / 2));
+
+                for($i=0; $i<$this->size; $i+=2) {
+                    $val = (ord($this->data[$i]) << 8) | ord($this->data[$i+1]);
+                    if($val <= 0x9ffc) {
+                        $val -= 0x8140;
+                    } else {
+                        $val -= 0xc140;
+                    }
+                    
+                    $h = ($val >> 8) * 0xc0;
+                    $val = ($val & 0xff) + $h;
+
+                    $bs->appendNum(13, $val);
+                }
+
+                $this->bstream = $bs;
+                return 0;
+            
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public function encodeModeStructure()
+        {
+            try {
+                $bs =  new QRbitstream();
+                
+                $bs->appendNum(4, 0x03);
+                $bs->appendNum(4, ord($this->data[1]) - 1);
+                $bs->appendNum(4, ord($this->data[0]) - 1);
+                $bs->appendNum(8, ord($this->data[2]));
+
+                $this->bstream = $bs;
+                return 0;
+            
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public function estimateBitStreamSizeOfEntry($version)
+        {
+            $bits = 0;
+
+            if($version == 0) 
+                $version = 1;
+
+            switch($this->mode) {
+                case QR_MODE_NUM:        $bits = QRinput::estimateBitsModeNum($this->size);    break;
+                case QR_MODE_AN:        $bits = QRinput::estimateBitsModeAn($this->size);    break;
+                case QR_MODE_8:            $bits = QRinput::estimateBitsMode8($this->size);    break;
+                case QR_MODE_KANJI:        $bits = QRinput::estimateBitsModeKanji($this->size);break;
+                case QR_MODE_STRUCTURE:    return STRUCTURE_HEADER_BITS;            
+                default:
+                    return 0;
+            }
+
+            $l = QRspec::lengthIndicator($this->mode, $version);
+            $m = 1 << $l;
+            $num = (int)(($this->size + $m - 1) / $m);
+
+            $bits += $num * (4 + $l);
+
+            return $bits;
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeBitStream($version)
+        {
+            try {
+            
+                unset($this->bstream);
+                $words = QRspec::maximumWords($this->mode, $version);
+                
+                if($this->size > $words) {
+                
+                    $st1 = new QRinputItem($this->mode, $words, $this->data);
+                    $st2 = new QRinputItem($this->mode, $this->size - $words, array_slice($this->data, $words));
+
+                    $st1->encodeBitStream($version);
+                    $st2->encodeBitStream($version);
+                    
+                    $this->bstream = new QRbitstream();
+                    $this->bstream->append($st1->bstream);
+                    $this->bstream->append($st2->bstream);
+                    
+                    unset($st1);
+                    unset($st2);
+                    
+                } else {
+                    
+                    $ret = 0;
+                    
+                    switch($this->mode) {
+                        case QR_MODE_NUM:        $ret = $this->encodeModeNum($version);    break;
+                        case QR_MODE_AN:        $ret = $this->encodeModeAn($version);    break;
+                        case QR_MODE_8:            $ret = $this->encodeMode8($version);    break;
+                        case QR_MODE_KANJI:        $ret = $this->encodeModeKanji($version);break;
+                        case QR_MODE_STRUCTURE:    $ret = $this->encodeModeStructure();    break;
+                        
+                        default:
+                            break;
+                    }
+                    
+                    if($ret < 0)
+                        return -1;
+                }
+
+                return $this->bstream->size();
+            
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+    };
+    
+    //##########################################################################
+
+    class QRinput {
+
+        public $items;
+        
+        private $version;
+        private $level;
+        
+        //----------------------------------------------------------------------
+        public function __construct($version = 0, $level = QR_ECLEVEL_L)
+        {
+            if ($version < 0 || $version > QRSPEC_VERSION_MAX || $level > QR_ECLEVEL_H) {
+                throw new Exception('Invalid version no');
+                return NULL;
+            }
+            
+            $this->version = $version;
+            $this->level = $level;
+        }
+        
+        //----------------------------------------------------------------------
+        public function getVersion()
+        {
+            return $this->version;
+        }
+        
+        //----------------------------------------------------------------------
+        public function setVersion($version)
+        {
+            if($version < 0 || $version > QRSPEC_VERSION_MAX) {
+                throw new Exception('Invalid version no');
+                return -1;
+            }
+
+            $this->version = $version;
+
+            return 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function getErrorCorrectionLevel()
+        {
+            return $this->level;
+        }
+
+        //----------------------------------------------------------------------
+        public function setErrorCorrectionLevel($level)
+        {
+            if($level > QR_ECLEVEL_H) {
+                throw new Exception('Invalid ECLEVEL');
+                return -1;
+            }
+
+            $this->level = $level;
+
+            return 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function appendEntry(QRinputItem $entry)
+        {
+            $this->items[] = $entry;
+        }
+        
+        //----------------------------------------------------------------------
+        public function append($mode, $size, $data)
+        {
+            try {
+                $entry = new QRinputItem($mode, $size, $data);
+                $this->items[] = $entry;
+                return 0;
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        
+        public function insertStructuredAppendHeader($size, $index, $parity)
+        {
+            if( $size > MAX_STRUCTURED_SYMBOLS ) {
+                throw new Exception('insertStructuredAppendHeader wrong size');
+            }
+            
+            if( $index <= 0 || $index > MAX_STRUCTURED_SYMBOLS ) {
+                throw new Exception('insertStructuredAppendHeader wrong index');
+            }
+
+            $buf = array($size, $index, $parity);
+            
+            try {
+                $entry = new QRinputItem(QR_MODE_STRUCTURE, 3, buf);
+                array_unshift($this->items, $entry);
+                return 0;
+            } catch (Exception $e) {
+                return -1;
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public function calcParity()
+        {
+            $parity = 0;
+            
+            foreach($this->items as $item) {
+                if($item->mode != QR_MODE_STRUCTURE) {
+                    for($i=$item->size-1; $i>=0; $i--) {
+                        $parity ^= $item->data[$i];
+                    }
+                }
+            }
+
+            return $parity;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function checkModeNum($size, $data)
+        {
+            for($i=0; $i<$size; $i++) {
+                if((ord($data[$i]) < ord('0')) || (ord($data[$i]) > ord('9'))){
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        //----------------------------------------------------------------------
+        public static function estimateBitsModeNum($size)
+        {
+            $w = (int)$size / 3;
+            $bits = $w * 10;
+            
+            switch($size - $w * 3) {
+                case 1:
+                    $bits += 4;
+                    break;
+                case 2:
+                    $bits += 7;
+                    break;
+                default:
+                    break;
+            }
+
+            return $bits;
+        }
+        
+        //----------------------------------------------------------------------
+        public static $anTable = array(
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            36, -1, -1, -1, 37, 38, -1, -1, -1, -1, 39, 40, -1, 41, 42, 43,
+             0,  1,  2,  3,  4,  5,  6,  7,  8,  9, 44, -1, -1, -1, -1, -1,
+            -1, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 21, 22, 23, 24,
+            25, 26, 27, 28, 29, 30, 31, 32, 33, 34, 35, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1,
+            -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1, -1
+        );
+        
+        //----------------------------------------------------------------------
+        public static function lookAnTable($c)
+        {
+            return (($c > 127)?-1:self::$anTable[$c]);
+        }
+        
+        //----------------------------------------------------------------------
+        public static function checkModeAn($size, $data)
+        {
+            for($i=0; $i<$size; $i++) {
+                if (self::lookAnTable(ord($data[$i])) == -1) {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function estimateBitsModeAn($size)
+        {
+            $w = (int)($size / 2);
+            $bits = $w * 11;
+            
+            if($size & 1) {
+                $bits += 6;
+            }
+
+            return $bits;
+        }
+    
+        //----------------------------------------------------------------------
+        public static function estimateBitsMode8($size)
+        {
+            return $size * 8;
+        }
+        
+        //----------------------------------------------------------------------
+        public function estimateBitsModeKanji($size)
+        {
+            return (int)(($size / 2) * 13);
+        }
+        
+        //----------------------------------------------------------------------
+        public static function checkModeKanji($size, $data)
+        {
+            if($size & 1)
+                return false;
+
+            for($i=0; $i<$size; $i+=2) {
+                $val = (ord($data[$i]) << 8) | ord($data[$i+1]);
+                if( $val < 0x8140 
+                || ($val > 0x9ffc && $val < 0xe040) 
+                || $val > 0xebbf) {
+                    return false;
+                }
+            }
+
+            return true;
+        }
+
+        /***********************************************************************
+         * Validation
+         **********************************************************************/
+
+        public static function check($mode, $size, $data)
+        {
+            if($size <= 0) 
+                return false;
+
+            switch($mode) {
+                case QR_MODE_NUM:       return self::checkModeNum($size, $data);   break;
+                case QR_MODE_AN:        return self::checkModeAn($size, $data);    break;
+                case QR_MODE_KANJI:     return self::checkModeKanji($size, $data); break;
+                case QR_MODE_8:         return true; break;
+                case QR_MODE_STRUCTURE: return true; break;
+                
+                default:
+                    break;
+            }
+
+            return false;
+        }
+        
+        
+        //----------------------------------------------------------------------
+        public function estimateBitStreamSize($version)
+        {
+            $bits = 0;
+
+            foreach($this->items as $item) {
+                $bits += $item->estimateBitStreamSizeOfEntry($version);
+            }
+
+            return $bits;
+        }
+        
+        //----------------------------------------------------------------------
+        public function estimateVersion()
+        {
+            $version = 0;
+            $prev = 0;
+            do {
+                $prev = $version;
+                $bits = $this->estimateBitStreamSize($prev);
+                $version = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+                if ($version < 0) {
+                    return -1;
+                }
+            } while ($version > $prev);
+
+            return $version;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function lengthOfCode($mode, $version, $bits)
+        {
+            $payload = $bits - 4 - QRspec::lengthIndicator($mode, $version);
+            switch($mode) {
+                case QR_MODE_NUM:
+                    $chunks = (int)($payload / 10);
+                    $remain = $payload - $chunks * 10;
+                    $size = $chunks * 3;
+                    if($remain >= 7) {
+                        $size += 2;
+                    } else if($remain >= 4) {
+                        $size += 1;
+                    }
+                    break;
+                case QR_MODE_AN:
+                    $chunks = (int)($payload / 11);
+                    $remain = $payload - $chunks * 11;
+                    $size = $chunks * 2;
+                    if($remain >= 6) 
+                        $size++;
+                    break;
+                case QR_MODE_8:
+                    $size = (int)($payload / 8);
+                    break;
+                case QR_MODE_KANJI:
+                    $size = (int)(($payload / 13) * 2);
+                    break;
+                case QR_MODE_STRUCTURE:
+                    $size = (int)($payload / 8);
+                    break;
+                default:
+                    $size = 0;
+                    break;
+            }
+            
+            $maxsize = QRspec::maximumWords($mode, $version);
+            if($size < 0) $size = 0;
+            if($size > $maxsize) $size = $maxsize;
+
+            return $size;
+        }
+        
+        //----------------------------------------------------------------------
+        public function createBitStream()
+        {
+            $total = 0;
+
+            foreach($this->items as $item) {
+                $bits = $item->encodeBitStream($this->version);
+                
+                if($bits < 0) 
+                    return -1;
+                    
+                $total += $bits;
+            }
+
+            return $total;
+        }
+        
+        //----------------------------------------------------------------------
+        public function convertData()
+        {
+            $ver = $this->estimateVersion();
+            if($ver > $this->getVersion()) {
+                $this->setVersion($ver);
+            }
+
+            for(;;) {
+                $bits = $this->createBitStream();
+                
+                if($bits < 0) 
+                    return -1;
+                    
+                $ver = QRspec::getMinimumVersion((int)(($bits + 7) / 8), $this->level);
+                if($ver < 0) {
+                    throw new Exception('WRONG VERSION');
+                    return -1;
+                } else if($ver > $this->getVersion()) {
+                    $this->setVersion($ver);
+                } else {
+                    break;
+                }
+            }
+
+            return 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function appendPaddingBit(&$bstream)
+        {
+            $bits = $bstream->size();
+            $maxwords = QRspec::getDataLength($this->version, $this->level);
+            $maxbits = $maxwords * 8;
+
+            if ($maxbits == $bits) {
+                return 0;
+            }
+
+            if ($maxbits - $bits < 5) {
+                return $bstream->appendNum($maxbits - $bits, 0);
+            }
+
+            $bits += 4;
+            $words = (int)(($bits + 7) / 8);
+
+            $padding = new QRbitstream();
+            $ret = $padding->appendNum($words * 8 - $bits + 4, 0);
+            
+            if($ret < 0) 
+                return $ret;
+
+            $padlen = $maxwords - $words;
+            
+            if($padlen > 0) {
+                
+                $padbuf = array();
+                for($i=0; $i<$padlen; $i++) {
+                    $padbuf[$i] = ($i&1)?0x11:0xec;
+                }
+                
+                $ret = $padding->appendBytes($padlen, $padbuf);
+                
+                if($ret < 0)
+                    return $ret;
+                
+            }
+
+            $ret = $bstream->append($padding);
+            
+            return $ret;
+        }
+
+        //----------------------------------------------------------------------
+        public function mergeBitStream()
+        {
+            if($this->convertData() < 0) {
+                return null;
+            }
+
+            $bstream = new QRbitstream();
+            
+            foreach($this->items as $item) {
+                $ret = $bstream->append($item->bstream);
+                if($ret < 0) {
+                    return null;
+                }
+            }
+
+            return $bstream;
+        }
+
+        //----------------------------------------------------------------------
+        public function getBitStream()
+        {
+
+            $bstream = $this->mergeBitStream();
+            
+            if($bstream == null) {
+                return null;
+            }
+            
+            $ret = $this->appendPaddingBit($bstream);
+            if($ret < 0) {
+                return null;
+            }
+
+            return $bstream;
+        }
+        
+        //----------------------------------------------------------------------
+        public function getByteStream()
+        {
+            $bstream = $this->getBitStream();
+            if($bstream == null) {
+                return null;
+            }
+            
+            return $bstream->toByte();
+        }
+    }
+        
+        
+    
+
+
+
+//---- qrbitstream.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Bitstream class
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+     
+    class QRbitstream {
+    
+        public $data = array();
+        
+        //----------------------------------------------------------------------
+        public function size()
+        {
+            return count($this->data);
+        }
+        
+        //----------------------------------------------------------------------
+        public function allocate($setLength)
+        {
+            $this->data = array_fill(0, $setLength, 0);
+            return 0;
+        }
+    
+        //----------------------------------------------------------------------
+        public static function newFromNum($bits, $num)
+        {
+            $bstream = new QRbitstream();
+            $bstream->allocate($bits);
+            
+            $mask = 1 << ($bits - 1);
+            for($i=0; $i<$bits; $i++) {
+                if($num & $mask) {
+                    $bstream->data[$i] = 1;
+                } else {
+                    $bstream->data[$i] = 0;
+                }
+                $mask = $mask >> 1;
+            }
+
+            return $bstream;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function newFromBytes($size, $data)
+        {
+            $bstream = new QRbitstream();
+            $bstream->allocate($size * 8);
+            $p=0;
+
+            for($i=0; $i<$size; $i++) {
+                $mask = 0x80;
+                for($j=0; $j<8; $j++) {
+                    if($data[$i] & $mask) {
+                        $bstream->data[$p] = 1;
+                    } else {
+                        $bstream->data[$p] = 0;
+                    }
+                    $p++;
+                    $mask = $mask >> 1;
+                }
+            }
+
+            return $bstream;
+        }
+        
+        //----------------------------------------------------------------------
+        public function append(QRbitstream $arg)
+        {
+            if (is_null($arg)) {
+                return -1;
+            }
+            
+            if($arg->size() == 0) {
+                return 0;
+            }
+            
+            if($this->size() == 0) {
+                $this->data = $arg->data;
+                return 0;
+            }
+            
+            $this->data = array_values(array_merge($this->data, $arg->data));
+
+            return 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function appendNum($bits, $num)
+        {
+            if ($bits == 0) 
+                return 0;
+
+            $b = QRbitstream::newFromNum($bits, $num);
+            
+            if(is_null($b))
+                return -1;
+
+            $ret = $this->append($b);
+            unset($b);
+
+            return $ret;
+        }
+
+        //----------------------------------------------------------------------
+        public function appendBytes($size, $data)
+        {
+            if ($size == 0) 
+                return 0;
+
+            $b = QRbitstream::newFromBytes($size, $data);
+            
+            if(is_null($b))
+                return -1;
+
+            $ret = $this->append($b);
+            unset($b);
+
+            return $ret;
+        }
+        
+        //----------------------------------------------------------------------
+        public function toByte()
+        {
+        
+            $size = $this->size();
+
+            if($size == 0) {
+                return array();
+            }
+            
+            $data = array_fill(0, (int)(($size + 7) / 8), 0);
+            $bytes = (int)($size / 8);
+
+            $p = 0;
+            
+            for($i=0; $i<$bytes; $i++) {
+                $v = 0;
+                for($j=0; $j<8; $j++) {
+                    $v = $v << 1;
+                    $v |= $this->data[$p];
+                    $p++;
+                }
+                $data[$i] = $v;
+            }
+            
+            if($size & 7) {
+                $v = 0;
+                for($j=0; $j<($size & 7); $j++) {
+                    $v = $v << 1;
+                    $v |= $this->data[$p];
+                    $p++;
+                }
+                $data[$bytes] = $v;
+            }
+
+            return $data;
+        }
+
+    }
+
+
+
+
+//---- qrsplit.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Input splitting classes
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * The following data / specifications are taken from
+ * "Two dimensional symbol -- QR-code -- Basic Specification" (JIS X0510:2004)
+ *  or
+ * "Automatic identification and data capture techniques -- 
+ *  QR Code 2005 bar code symbology specification" (ISO/IEC 18004:2006)
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+    class QRsplit {
+
+        public $dataStr = '';
+        public $input;
+        public $modeHint;
+
+        //----------------------------------------------------------------------
+        public function __construct($dataStr, $input, $modeHint) 
+        {
+            $this->dataStr  = $dataStr;
+            $this->input    = $input;
+            $this->modeHint = $modeHint;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function isdigitat($str, $pos)
+        {    
+            if ($pos >= strlen($str))
+                return false;
+            
+            return ((ord($str[$pos]) >= ord('0'))&&(ord($str[$pos]) <= ord('9')));
+        }
+        
+        //----------------------------------------------------------------------
+        public static function isalnumat($str, $pos)
+        {
+            if ($pos >= strlen($str))
+                return false;
+                
+            return (QRinput::lookAnTable(ord($str[$pos])) >= 0);
+        }
+
+        //----------------------------------------------------------------------
+        public function identifyMode($pos)
+        {
+            if ($pos >= strlen($this->dataStr)) 
+                return QR_MODE_NUL;
+                
+            $c = $this->dataStr[$pos];
+            
+            if(self::isdigitat($this->dataStr, $pos)) {
+                return QR_MODE_NUM;
+            } else if(self::isalnumat($this->dataStr, $pos)) {
+                return QR_MODE_AN;
+            } else if($this->modeHint == QR_MODE_KANJI) {
+            
+                if ($pos+1 < strlen($this->dataStr)) 
+                {
+                    $d = $this->dataStr[$pos+1];
+                    $word = (ord($c) << 8) | ord($d);
+                    if(($word >= 0x8140 && $word <= 0x9ffc) || ($word >= 0xe040 && $word <= 0xebbf)) {
+                        return QR_MODE_KANJI;
+                    }
+                }
+            }
+
+            return QR_MODE_8;
+        } 
+        
+        //----------------------------------------------------------------------
+        public function eatNum()
+        {
+            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+            $p = 0;
+            while(self::isdigitat($this->dataStr, $p)) {
+                $p++;
+            }
+            
+            $run = $p;
+            $mode = $this->identifyMode($p);
+            
+            if($mode == QR_MODE_8) {
+                $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+                     + QRinput::estimateBitsMode8(1)         // + 4 + l8
+                     - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+                if($dif > 0) {
+                    return $this->eat8();
+                }
+            }
+            if($mode == QR_MODE_AN) {
+                $dif = QRinput::estimateBitsModeNum($run) + 4 + $ln
+                     + QRinput::estimateBitsModeAn(1)        // + 4 + la
+                     - QRinput::estimateBitsModeAn($run + 1);// - 4 - la
+                if($dif > 0) {
+                    return $this->eatAn();
+                }
+            }
+            
+            $ret = $this->input->append(QR_MODE_NUM, $run, str_split($this->dataStr));
+            if($ret < 0)
+                return -1;
+
+            return $run;
+        }
+        
+        //----------------------------------------------------------------------
+        public function eatAn()
+        {
+            $la = QRspec::lengthIndicator(QR_MODE_AN,  $this->input->getVersion());
+            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+            $p = 0;
+            
+            while(self::isalnumat($this->dataStr, $p)) {
+                if(self::isdigitat($this->dataStr, $p)) {
+                    $q = $p;
+                    while(self::isdigitat($this->dataStr, $q)) {
+                        $q++;
+                    }
+                    
+                    $dif = QRinput::estimateBitsModeAn($p) // + 4 + la
+                         + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+                         - QRinput::estimateBitsModeAn($q); // - 4 - la
+                         
+                    if($dif < 0) {
+                        break;
+                    } else {
+                        $p = $q;
+                    }
+                } else {
+                    $p++;
+                }
+            }
+
+            $run = $p;
+
+            if(!self::isalnumat($this->dataStr, $p)) {
+                $dif = QRinput::estimateBitsModeAn($run) + 4 + $la
+                     + QRinput::estimateBitsMode8(1) // + 4 + l8
+                      - QRinput::estimateBitsMode8($run + 1); // - 4 - l8
+                if($dif > 0) {
+                    return $this->eat8();
+                }
+            }
+
+            $ret = $this->input->append(QR_MODE_AN, $run, str_split($this->dataStr));
+            if($ret < 0)
+                return -1;
+
+            return $run;
+        }
+        
+        //----------------------------------------------------------------------
+        public function eatKanji()
+        {
+            $p = 0;
+            
+            while($this->identifyMode($p) == QR_MODE_KANJI) {
+                $p += 2;
+            }
+            
+            $ret = $this->input->append(QR_MODE_KANJI, $p, str_split($this->dataStr));
+            if($ret < 0)
+                return -1;
+
+            return $run;
+        }
+
+        //----------------------------------------------------------------------
+        public function eat8()
+        {
+            $la = QRspec::lengthIndicator(QR_MODE_AN, $this->input->getVersion());
+            $ln = QRspec::lengthIndicator(QR_MODE_NUM, $this->input->getVersion());
+
+            $p = 1;
+            $dataStrLen = strlen($this->dataStr);
+            
+            while($p < $dataStrLen) {
+                
+                $mode = $this->identifyMode($p);
+                if($mode == QR_MODE_KANJI) {
+                    break;
+                }
+                if($mode == QR_MODE_NUM) {
+                    $q = $p;
+                    while(self::isdigitat($this->dataStr, $q)) {
+                        $q++;
+                    }
+                    $dif = QRinput::estimateBitsMode8($p) // + 4 + l8
+                         + QRinput::estimateBitsModeNum($q - $p) + 4 + $ln
+                         - QRinput::estimateBitsMode8($q); // - 4 - l8
+                    if($dif < 0) {
+                        break;
+                    } else {
+                        $p = $q;
+                    }
+                } else if($mode == QR_MODE_AN) {
+                    $q = $p;
+                    while(self::isalnumat($this->dataStr, $q)) {
+                        $q++;
+                    }
+                    $dif = QRinput::estimateBitsMode8($p)  // + 4 + l8
+                         + QRinput::estimateBitsModeAn($q - $p) + 4 + $la
+                         - QRinput::estimateBitsMode8($q); // - 4 - l8
+                    if($dif < 0) {
+                        break;
+                    } else {
+                        $p = $q;
+                    }
+                } else {
+                    $p++;
+                }
+            }
+
+            $run = $p;
+            $ret = $this->input->append(QR_MODE_8, $run, str_split($this->dataStr));
+            
+            if($ret < 0)
+                return -1;
+
+            return $run;
+        }
+
+        //----------------------------------------------------------------------
+        public function splitString()
+        {
+            while (strlen($this->dataStr) > 0)
+            {
+                if($this->dataStr == '')
+                    return 0;
+
+                $mode = $this->identifyMode(0);
+                
+                switch ($mode) {
+                    case QR_MODE_NUM: $length = $this->eatNum(); break;
+                    case QR_MODE_AN:  $length = $this->eatAn(); break;
+                    case QR_MODE_KANJI:
+                        if ($hint == QR_MODE_KANJI)
+                                $length = $this->eatKanji();
+                        else    $length = $this->eat8();
+                        break;
+                    default: $length = $this->eat8(); break;
+                
+                }
+
+                if($length == 0) return 0;
+                if($length < 0)  return -1;
+                
+                $this->dataStr = substr($this->dataStr, $length);
+            }
+        }
+
+        //----------------------------------------------------------------------
+        public function toUpper()
+        {
+            $stringLen = strlen($this->dataStr);
+            $p = 0;
+            
+            while ($p<$stringLen) {
+                $mode = self::identifyMode(substr($this->dataStr, $p), $this->modeHint);
+                if($mode == QR_MODE_KANJI) {
+                    $p += 2;
+                } else {
+                    if (ord($this->dataStr[$p]) >= ord('a') && ord($this->dataStr[$p]) <= ord('z')) {
+                        $this->dataStr[$p] = chr(ord($this->dataStr[$p]) - 32);
+                    }
+                    $p++;
+                }
+            }
+
+            return $this->dataStr;
+        }
+
+        //----------------------------------------------------------------------
+        public static function splitStringToQRinput($string, QRinput $input, $modeHint, $casesensitive = true)
+        {
+            if(is_null($string) || $string == '\0' || $string == '') {
+                throw new Exception('empty string!!!');
+            }
+
+            $split = new QRsplit($string, $input, $modeHint);
+            
+            if(!$casesensitive)
+                $split->toUpper();
+                
+            return $split->splitString();
+        }
+    }
+
+
+
+//---- qrrscode.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Reed-Solomon error correction support
+ * 
+ * Copyright (C) 2002, 2003, 2004, 2006 Phil Karn, KA9Q
+ * (libfec is released under the GNU Lesser General Public License.)
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+    class QRrsItem {
+    
+        public $mm;                  // Bits per symbol 
+        public $nn;                  // Symbols per block (= (1<<mm)-1) 
+        public $alpha_to = array();  // log lookup table 
+        public $index_of = array();  // Antilog lookup table 
+        public $genpoly = array();   // Generator polynomial 
+        public $nroots;              // Number of generator roots = number of parity symbols 
+        public $fcr;                 // First consecutive root, index form 
+        public $prim;                // Primitive element, index form 
+        public $iprim;               // prim-th root of 1, index form 
+        public $pad;                 // Padding bytes in shortened block 
+        public $gfpoly;
+    
+        //----------------------------------------------------------------------
+        public function modnn($x)
+        {
+            while ($x >= $this->nn) {
+                $x -= $this->nn;
+                $x = ($x >> $this->mm) + ($x & $this->nn);
+            }
+            
+            return $x;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+        {
+            // Common code for intializing a Reed-Solomon control block (char or int symbols)
+            // Copyright 2004 Phil Karn, KA9Q
+            // May be used under the terms of the GNU Lesser General Public License (LGPL)
+
+            $rs = null;
+            
+            // Check parameter ranges
+            if($symsize < 0 || $symsize > 8)                     return $rs;
+            if($fcr < 0 || $fcr >= (1<<$symsize))                return $rs;
+            if($prim <= 0 || $prim >= (1<<$symsize))             return $rs;
+            if($nroots < 0 || $nroots >= (1<<$symsize))          return $rs; // Can't have more roots than symbol values!
+            if($pad < 0 || $pad >= ((1<<$symsize) -1 - $nroots)) return $rs; // Too much padding
+
+            $rs = new QRrsItem();
+            $rs->mm = $symsize;
+            $rs->nn = (1<<$symsize)-1;
+            $rs->pad = $pad;
+
+            $rs->alpha_to = array_fill(0, $rs->nn+1, 0);
+            $rs->index_of = array_fill(0, $rs->nn+1, 0);
+          
+            // PHP style macro replacement ;)
+            $NN =& $rs->nn;
+            $A0 =& $NN;
+            
+            // Generate Galois field lookup tables
+            $rs->index_of[0] = $A0; // log(zero) = -inf
+            $rs->alpha_to[$A0] = 0; // alpha**-inf = 0
+            $sr = 1;
+          
+            for($i=0; $i<$rs->nn; $i++) {
+                $rs->index_of[$sr] = $i;
+                $rs->alpha_to[$i] = $sr;
+                $sr <<= 1;
+                if($sr & (1<<$symsize)) {
+                    $sr ^= $gfpoly;
+                }
+                $sr &= $rs->nn;
+            }
+            
+            if($sr != 1){
+                // field generator polynomial is not primitive!
+                $rs = NULL;
+                return $rs;
+            }
+
+            /* Form RS code generator polynomial from its roots */
+            $rs->genpoly = array_fill(0, $nroots+1, 0);
+        
+            $rs->fcr = $fcr;
+            $rs->prim = $prim;
+            $rs->nroots = $nroots;
+            $rs->gfpoly = $gfpoly;
+
+            /* Find prim-th root of 1, used in decoding */
+            for($iprim=1;($iprim % $prim) != 0;$iprim += $rs->nn)
+            ; // intentional empty-body loop!
+            
+            $rs->iprim = (int)($iprim / $prim);
+            $rs->genpoly[0] = 1;
+            
+            for ($i = 0,$root=$fcr*$prim; $i < $nroots; $i++, $root += $prim) {
+                $rs->genpoly[$i+1] = 1;
+
+                // Multiply rs->genpoly[] by  @**(root + x)
+                for ($j = $i; $j > 0; $j--) {
+                    if ($rs->genpoly[$j] != 0) {
+                        $rs->genpoly[$j] = $rs->genpoly[$j-1] ^ $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[$j]] + $root)];
+                    } else {
+                        $rs->genpoly[$j] = $rs->genpoly[$j-1];
+                    }
+                }
+                // rs->genpoly[0] can never be zero
+                $rs->genpoly[0] = $rs->alpha_to[$rs->modnn($rs->index_of[$rs->genpoly[0]] + $root)];
+            }
+            
+            // convert rs->genpoly[] to index form for quicker encoding
+            for ($i = 0; $i <= $nroots; $i++)
+                $rs->genpoly[$i] = $rs->index_of[$rs->genpoly[$i]];
+
+            return $rs;
+        }
+        
+        //----------------------------------------------------------------------
+        public function encode_rs_char($data, &$parity)
+        {
+            $MM       =& $this->mm;
+            $NN       =& $this->nn;
+            $ALPHA_TO =& $this->alpha_to;
+            $INDEX_OF =& $this->index_of;
+            $GENPOLY  =& $this->genpoly;
+            $NROOTS   =& $this->nroots;
+            $FCR      =& $this->fcr;
+            $PRIM     =& $this->prim;
+            $IPRIM    =& $this->iprim;
+            $PAD      =& $this->pad;
+            $A0       =& $NN;
+
+            $parity = array_fill(0, $NROOTS, 0);
+
+            for($i=0; $i< ($NN-$NROOTS-$PAD); $i++) {
+                
+                $feedback = $INDEX_OF[$data[$i] ^ $parity[0]];
+                if($feedback != $A0) {      
+                    // feedback term is non-zero
+            
+                    // This line is unnecessary when GENPOLY[NROOTS] is unity, as it must
+                    // always be for the polynomials constructed by init_rs()
+                    $feedback = $this->modnn($NN - $GENPOLY[$NROOTS] + $feedback);
+            
+                    for($j=1;$j<$NROOTS;$j++) {
+                        $parity[$j] ^= $ALPHA_TO[$this->modnn($feedback + $GENPOLY[$NROOTS-$j])];
+                    }
+                }
+                
+                // Shift 
+                array_shift($parity);
+                if($feedback != $A0) {
+                    array_push($parity, $ALPHA_TO[$this->modnn($feedback + $GENPOLY[0])]);
+                } else {
+                    array_push($parity, 0);
+                }
+            }
+        }
+    }
+    
+    //##########################################################################
+    
+    class QRrs {
+    
+        public static $items = array();
+        
+        //----------------------------------------------------------------------
+        public static function init_rs($symsize, $gfpoly, $fcr, $prim, $nroots, $pad)
+        {
+            foreach(self::$items as $rs) {
+                if($rs->pad != $pad)       continue;
+                if($rs->nroots != $nroots) continue;
+                if($rs->mm != $symsize)    continue;
+                if($rs->gfpoly != $gfpoly) continue;
+                if($rs->fcr != $fcr)       continue;
+                if($rs->prim != $prim)     continue;
+
+                return $rs;
+            }
+
+            $rs = QRrsItem::init_rs_char($symsize, $gfpoly, $fcr, $prim, $nroots, $pad);
+            array_unshift(self::$items, $rs);
+
+            return $rs;
+        }
+    }
+
+
+
+//---- qrmask.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Masking
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+	define('N1', 3);
+	define('N2', 3);
+	define('N3', 40);
+	define('N4', 10);
+
+	class QRmask {
+	
+		public $runLength = array();
+		
+		//----------------------------------------------------------------------
+		public function __construct() 
+        {
+            $this->runLength = array_fill(0, QRSPEC_WIDTH_MAX + 1, 0);
+        }
+        
+        //----------------------------------------------------------------------
+        public function writeFormatInformation($width, &$frame, $mask, $level)
+        {
+            $blacks = 0;
+            $format =  QRspec::getFormatInfo($mask, $level);
+
+            for($i=0; $i<8; $i++) {
+                if($format & 1) {
+                    $blacks += 2;
+                    $v = 0x85;
+                } else {
+                    $v = 0x84;
+                }
+                
+                $frame[8][$width - 1 - $i] = chr($v);
+                if($i < 6) {
+                    $frame[$i][8] = chr($v);
+                } else {
+                    $frame[$i + 1][8] = chr($v);
+                }
+                $format = $format >> 1;
+            }
+            
+            for($i=0; $i<7; $i++) {
+                if($format & 1) {
+                    $blacks += 2;
+                    $v = 0x85;
+                } else {
+                    $v = 0x84;
+                }
+                
+                $frame[$width - 7 + $i][8] = chr($v);
+                if($i == 0) {
+                    $frame[8][7] = chr($v);
+                } else {
+                    $frame[8][6 - $i] = chr($v);
+                }
+                
+                $format = $format >> 1;
+            }
+
+            return $blacks;
+        }
+        
+        //----------------------------------------------------------------------
+        public function mask0($x, $y) { return ($x+$y)&1;                       }
+        public function mask1($x, $y) { return ($y&1);                          }
+        public function mask2($x, $y) { return ($x%3);                          }
+        public function mask3($x, $y) { return ($x+$y)%3;                       }
+        public function mask4($x, $y) { return (((int)($y/2))+((int)($x/3)))&1; }
+        public function mask5($x, $y) { return (($x*$y)&1)+($x*$y)%3;           }
+        public function mask6($x, $y) { return ((($x*$y)&1)+($x*$y)%3)&1;       }
+        public function mask7($x, $y) { return ((($x*$y)%3)+(($x+$y)&1))&1;     }
+        
+        //----------------------------------------------------------------------
+        private function generateMaskNo($maskNo, $width, $frame)
+        {
+            $bitMask = array_fill(0, $width, array_fill(0, $width, 0));
+            
+            for($y=0; $y<$width; $y++) {
+                for($x=0; $x<$width; $x++) {
+                    if(ord($frame[$y][$x]) & 0x80) {
+                        $bitMask[$y][$x] = 0;
+                    } else {
+                        $maskFunc = call_user_func(array($this, 'mask'.$maskNo), $x, $y);
+                        $bitMask[$y][$x] = ($maskFunc == 0)?1:0;
+                    }
+                    
+                }
+            }
+            
+            return $bitMask;
+        }
+        
+        //----------------------------------------------------------------------
+        public static function serial($bitFrame)
+        {
+            $codeArr = array();
+            
+            foreach ($bitFrame as $line)
+                $codeArr[] = join('', $line);
+                
+            return gzcompress(join("\n", $codeArr), 9);
+        }
+        
+        //----------------------------------------------------------------------
+        public static function unserial($code)
+        {
+            $codeArr = array();
+            
+            $codeLines = explode("\n", gzuncompress($code));
+            foreach ($codeLines as $line)
+                $codeArr[] = str_split($line);
+            
+            return $codeArr;
+        }
+        
+        //----------------------------------------------------------------------
+        public function makeMaskNo($maskNo, $width, $s, &$d, $maskGenOnly = false) 
+        {
+            $b = 0;
+            $bitMask = array();
+            
+            $fileName = QR_CACHE_DIR.'mask_'.$maskNo.DIRECTORY_SEPARATOR.'mask_'.$width.'_'.$maskNo.'.dat';
+
+            if (QR_CACHEABLE) {
+                if (file_exists($fileName)) {
+                    $bitMask = self::unserial(file_get_contents($fileName));
+                } else {
+                    $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+                    if (!file_exists(QR_CACHE_DIR.'mask_'.$maskNo))
+                        mkdir(QR_CACHE_DIR.'mask_'.$maskNo);
+                    file_put_contents($fileName, self::serial($bitMask));
+                }
+            } else {
+                $bitMask = $this->generateMaskNo($maskNo, $width, $s, $d);
+            }
+
+            if ($maskGenOnly)
+                return;
+                
+            $d = $s;
+
+            for($y=0; $y<$width; $y++) {
+                for($x=0; $x<$width; $x++) {
+                    if($bitMask[$y][$x] == 1) {
+                        $d[$y][$x] = chr(ord($s[$y][$x]) ^ (int)$bitMask[$y][$x]);
+                    }
+                    $b += (int)(ord($d[$y][$x]) & 1);
+                }
+            }
+
+            return $b;
+        }
+        
+        //----------------------------------------------------------------------
+        public function makeMask($width, $frame, $maskNo, $level)
+        {
+            $masked = array_fill(0, $width, str_repeat("\0", $width));
+            $this->makeMaskNo($maskNo, $width, $frame, $masked);
+            $this->writeFormatInformation($width, $masked, $maskNo, $level);
+       
+            return $masked;
+        }
+        
+        //----------------------------------------------------------------------
+        public function calcN1N3($length)
+        {
+            $demerit = 0;
+
+            for($i=0; $i<$length; $i++) {
+                
+                if($this->runLength[$i] >= 5) {
+                    $demerit += (N1 + ($this->runLength[$i] - 5));
+                }
+                if($i & 1) {
+                    if(($i >= 3) && ($i < ($length-2)) && ($this->runLength[$i] % 3 == 0)) {
+                        $fact = (int)($this->runLength[$i] / 3);
+                        if(($this->runLength[$i-2] == $fact) &&
+                           ($this->runLength[$i-1] == $fact) &&
+                           ($this->runLength[$i+1] == $fact) &&
+                           ($this->runLength[$i+2] == $fact)) {
+                            if(($this->runLength[$i-3] < 0) || ($this->runLength[$i-3] >= (4 * $fact))) {
+                                $demerit += N3;
+                            } else if((($i+3) >= $length) || ($this->runLength[$i+3] >= (4 * $fact))) {
+                                $demerit += N3;
+                            }
+                        }
+                    }
+                }
+            }
+            return $demerit;
+        }
+        
+        //----------------------------------------------------------------------
+        public function evaluateSymbol($width, $frame)
+        {
+            $head = 0;
+            $demerit = 0;
+
+            for($y=0; $y<$width; $y++) {
+                $head = 0;
+                $this->runLength[0] = 1;
+                
+                $frameY = $frame[$y];
+                
+                if ($y>0)
+                    $frameYM = $frame[$y-1];
+                
+                for($x=0; $x<$width; $x++) {
+                    if(($x > 0) && ($y > 0)) {
+                        $b22 = ord($frameY[$x]) & ord($frameY[$x-1]) & ord($frameYM[$x]) & ord($frameYM[$x-1]);
+                        $w22 = ord($frameY[$x]) | ord($frameY[$x-1]) | ord($frameYM[$x]) | ord($frameYM[$x-1]);
+                        
+                        if(($b22 | ($w22 ^ 1))&1) {                                                                     
+                            $demerit += N2;
+                        }
+                    }
+                    if(($x == 0) && (ord($frameY[$x]) & 1)) {
+                        $this->runLength[0] = -1;
+                        $head = 1;
+                        $this->runLength[$head] = 1;
+                    } else if($x > 0) {
+                        if((ord($frameY[$x]) ^ ord($frameY[$x-1])) & 1) {
+                            $head++;
+                            $this->runLength[$head] = 1;
+                        } else {
+                            $this->runLength[$head]++;
+                        }
+                    }
+                }
+    
+                $demerit += $this->calcN1N3($head+1);
+            }
+
+            for($x=0; $x<$width; $x++) {
+                $head = 0;
+                $this->runLength[0] = 1;
+                
+                for($y=0; $y<$width; $y++) {
+                    if($y == 0 && (ord($frame[$y][$x]) & 1)) {
+                        $this->runLength[0] = -1;
+                        $head = 1;
+                        $this->runLength[$head] = 1;
+                    } else if($y > 0) {
+                        if((ord($frame[$y][$x]) ^ ord($frame[$y-1][$x])) & 1) {
+                            $head++;
+                            $this->runLength[$head] = 1;
+                        } else {
+                            $this->runLength[$head]++;
+                        }
+                    }
+                }
+            
+                $demerit += $this->calcN1N3($head+1);
+            }
+
+            return $demerit;
+        }
+        
+        
+        //----------------------------------------------------------------------
+        public function mask($width, $frame, $level)
+        {
+            $minDemerit = PHP_INT_MAX;
+            $bestMaskNum = 0;
+            $bestMask = array();
+            
+            $checked_masks = array(0,1,2,3,4,5,6,7);
+            
+            if (QR_FIND_FROM_RANDOM !== false) {
+            
+                $howManuOut = 8-(QR_FIND_FROM_RANDOM % 9);
+                for ($i = 0; $i <  $howManuOut; $i++) {
+                    $remPos = rand (0, count($checked_masks)-1);
+                    unset($checked_masks[$remPos]);
+                    $checked_masks = array_values($checked_masks);
+                }
+            
+            }
+            
+            $bestMask = $frame;
+             
+            foreach($checked_masks as $i) {
+                $mask = array_fill(0, $width, str_repeat("\0", $width));
+
+                $demerit = 0;
+                $blacks = 0;
+                $blacks  = $this->makeMaskNo($i, $width, $frame, $mask);
+                $blacks += $this->writeFormatInformation($width, $mask, $i, $level);
+                $blacks  = (int)(100 * $blacks / ($width * $width));
+                $demerit = (int)((int)(abs($blacks - 50) / 5) * N4);
+                $demerit += $this->evaluateSymbol($width, $mask);
+                
+                if($demerit < $minDemerit) {
+                    $minDemerit = $demerit;
+                    $bestMask = $mask;
+                    $bestMaskNum = $i;
+                }
+            }
+            
+            return $bestMask;
+        }
+        
+        //----------------------------------------------------------------------
+    }
+
+
+
+
+//---- qrencode.php -----------------------------
+
+
+
+
+/*
+ * PHP QR Code encoder
+ *
+ * Main encoder classes.
+ *
+ * Based on libqrencode C library distributed under LGPL 2.1
+ * Copyright (C) 2006, 2007, 2008, 2009 Kentaro Fukuchi <fukuchi@megaui.net>
+ *
+ * PHP QR Code is distributed under LGPL 3
+ * Copyright (C) 2010 Dominik Dzienia <deltalab at poczta dot fm>
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License as published by the Free Software Foundation; either
+ * version 3 of the License, or any later version.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin St, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+ 
+    class QRrsblock {
+        public $dataLength;
+        public $data = array();
+        public $eccLength;
+        public $ecc = array();
+        
+        public function __construct($dl, $data, $el, &$ecc, QRrsItem $rs)
+        {
+            $rs->encode_rs_char($data, $ecc);
+        
+            $this->dataLength = $dl;
+            $this->data = $data;
+            $this->eccLength = $el;
+            $this->ecc = $ecc;
+        }
+    };
+    
+    //##########################################################################
+
+    class QRrawcode {
+        public $version;
+        public $datacode = array();
+        public $ecccode = array();
+        public $blocks;
+        public $rsblocks = array(); //of RSblock
+        public $count;
+        public $dataLength;
+        public $eccLength;
+        public $b1;
+        
+        //----------------------------------------------------------------------
+        public function __construct(QRinput $input)
+        {
+            $spec = array(0,0,0,0,0);
+            
+            $this->datacode = $input->getByteStream();
+            if(is_null($this->datacode)) {
+                throw new Exception('null imput string');
+            }
+
+            QRspec::getEccSpec($input->getVersion(), $input->getErrorCorrectionLevel(), $spec);
+
+            $this->version = $input->getVersion();
+            $this->b1 = QRspec::rsBlockNum1($spec);
+            $this->dataLength = QRspec::rsDataLength($spec);
+            $this->eccLength = QRspec::rsEccLength($spec);
+            $this->ecccode = array_fill(0, $this->eccLength, 0);
+            $this->blocks = QRspec::rsBlockNum($spec);
+            
+            $ret = $this->init($spec);
+            if($ret < 0) {
+                throw new Exception('block alloc error');
+                return null;
+            }
+
+            $this->count = 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function init(array $spec)
+        {
+            $dl = QRspec::rsDataCodes1($spec);
+            $el = QRspec::rsEccCodes1($spec);
+            $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+            
+
+            $blockNo = 0;
+            $dataPos = 0;
+            $eccPos = 0;
+            for($i=0; $i<QRspec::rsBlockNum1($spec); $i++) {
+                $ecc = array_slice($this->ecccode,$eccPos);
+                $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el,  $ecc, $rs);
+                $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+                
+                $dataPos += $dl;
+                $eccPos += $el;
+                $blockNo++;
+            }
+
+            if(QRspec::rsBlockNum2($spec) == 0)
+                return 0;
+
+            $dl = QRspec::rsDataCodes2($spec);
+            $el = QRspec::rsEccCodes2($spec);
+            $rs = QRrs::init_rs(8, 0x11d, 0, 1, $el, 255 - $dl - $el);
+            
+            if($rs == NULL) return -1;
+            
+            for($i=0; $i<QRspec::rsBlockNum2($spec); $i++) {
+                $ecc = array_slice($this->ecccode,$eccPos);
+                $this->rsblocks[$blockNo] = new QRrsblock($dl, array_slice($this->datacode, $dataPos), $el, $ecc, $rs);
+                $this->ecccode = array_merge(array_slice($this->ecccode,0, $eccPos), $ecc);
+                
+                $dataPos += $dl;
+                $eccPos += $el;
+                $blockNo++;
+            }
+
+            return 0;
+        }
+        
+        //----------------------------------------------------------------------
+        public function getCode()
+        {
+            $ret;
+
+            if($this->count < $this->dataLength) {
+                $row = $this->count % $this->blocks;
+                $col = $this->count / $this->blocks;
+                if($col >= $this->rsblocks[0]->dataLength) {
+                    $row += $this->b1;
+                }
+                $ret = $this->rsblocks[$row]->data[$col];
+            } else if($this->count < $this->dataLength + $this->eccLength) {
+                $row = ($this->count - $this->dataLength) % $this->blocks;
+                $col = ($this->count - $this->dataLength) / $this->blocks;
+                $ret = $this->rsblocks[$row]->ecc[$col];
+            } else {
+                return 0;
+            }
+            $this->count++;
+            
+            return $ret;
+        }
+    }
+
+    //##########################################################################
+    
+    class QRcode {
+    
+        public $version;
+        public $width;
+        public $data; 
+        
+        //----------------------------------------------------------------------
+        public function encodeMask(QRinput $input, $mask)
+        {
+            if($input->getVersion() < 0 || $input->getVersion() > QRSPEC_VERSION_MAX) {
+                throw new Exception('wrong version');
+            }
+            if($input->getErrorCorrectionLevel() > QR_ECLEVEL_H) {
+                throw new Exception('wrong level');
+            }
+
+            $raw = new QRrawcode($input);
+            
+            QRtools::markTime('after_raw');
+            
+            $version = $raw->version;
+            $width = QRspec::getWidth($version);
+            $frame = QRspec::newFrame($version);
+            
+            $filler = new FrameFiller($width, $frame);
+            if(is_null($filler)) {
+                return NULL;
+            }
+
+            // inteleaved data and ecc codes
+            for($i=0; $i<$raw->dataLength + $raw->eccLength; $i++) {
+                $code = $raw->getCode();
+                $bit = 0x80;
+                for($j=0; $j<8; $j++) {
+                    $addr = $filler->next();
+                    $filler->setFrameAt($addr, 0x02 | (($bit & $code) != 0));
+                    $bit = $bit >> 1;
+                }
+            }
+            
+            QRtools::markTime('after_filler');
+            
+            unset($raw);
+            
+            // remainder bits
+            $j = QRspec::getRemainder($version);
+            for($i=0; $i<$j; $i++) {
+                $addr = $filler->next();
+                $filler->setFrameAt($addr, 0x02);
+            }
+            
+            $frame = $filler->frame;
+            unset($filler);
+            
+            
+            // masking
+            $maskObj = new QRmask();
+            if($mask < 0) {
+            
+                if (QR_FIND_BEST_MASK) {
+                    $masked = $maskObj->mask($width, $frame, $input->getErrorCorrectionLevel());
+                } else {
+                    $masked = $maskObj->makeMask($width, $frame, (intval(QR_DEFAULT_MASK) % 8), $input->getErrorCorrectionLevel());
+                }
+            } else {
+                $masked = $maskObj->makeMask($width, $frame, $mask, $input->getErrorCorrectionLevel());
+            }
+            
+            if($masked == NULL) {
+                return NULL;
+            }
+            
+            QRtools::markTime('after_mask');
+            
+            $this->version = $version;
+            $this->width = $width;
+            $this->data = $masked;
+            
+            return $this;
+        }
+    
+        //----------------------------------------------------------------------
+        public function encodeInput(QRinput $input)
+        {
+            return $this->encodeMask($input, -1);
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeString8bit($string, $version, $level)
+        {
+            if(string == NULL) {
+                throw new Exception('empty string!');
+                return NULL;
+            }
+
+            $input = new QRinput($version, $level);
+            if($input == NULL) return NULL;
+
+            $ret = $input->append($input, QR_MODE_8, strlen($string), str_split($string));
+            if($ret < 0) {
+                unset($input);
+                return NULL;
+            }
+            return $this->encodeInput($input);
+        }
+
+        //----------------------------------------------------------------------
+        public function encodeString($string, $version, $level, $hint, $casesensitive)
+        {
+
+            if($hint != QR_MODE_8 && $hint != QR_MODE_KANJI) {
+                throw new Exception('bad hint');
+                return NULL;
+            }
+
+            $input = new QRinput($version, $level);
+            if($input == NULL) return NULL;
+
+            $ret = QRsplit::splitStringToQRinput($string, $input, $hint, $casesensitive);
+            if($ret < 0) {
+                return NULL;
+            }
+
+            return $this->encodeInput($input);
+        }
+        
+        //----------------------------------------------------------------------
+        public static function png($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4, $saveandprint=false) 
+        {
+            $enc = QRencode::factory($level, $size, $margin);
+            return $enc->encodePNG($text, $outfile, $saveandprint=false);
+        }
+
+        //----------------------------------------------------------------------
+        public static function text($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
+        {
+            $enc = QRencode::factory($level, $size, $margin);
+            return $enc->encode($text, $outfile);
+        }
+
+        //----------------------------------------------------------------------
+        public static function raw($text, $outfile = false, $level = QR_ECLEVEL_L, $size = 3, $margin = 4) 
+        {
+            $enc = QRencode::factory($level, $size, $margin);
+            return $enc->encodeRAW($text, $outfile);
+        }
+    }
+    
+    //##########################################################################
+    
+    class FrameFiller {
+    
+        public $width;
+        public $frame;
+        public $x;
+        public $y;
+        public $dir;
+        public $bit;
+        
+        //----------------------------------------------------------------------
+        public function __construct($width, &$frame)
+        {
+            $this->width = $width;
+            $this->frame = $frame;
+            $this->x = $width - 1;
+            $this->y = $width - 1;
+            $this->dir = -1;
+            $this->bit = -1;
+        }
+        
+        //----------------------------------------------------------------------
+        public function setFrameAt($at, $val)
+        {
+            $this->frame[$at['y']][$at['x']] = chr($val);
+        }
+        
+        //----------------------------------------------------------------------
+        public function getFrameAt($at)
+        {
+            return ord($this->frame[$at['y']][$at['x']]);
+        }
+        
+        //----------------------------------------------------------------------
+        public function next()
+        {
+            do {
+            
+                if($this->bit == -1) {
+                    $this->bit = 0;
+                    return array('x'=>$this->x, 'y'=>$this->y);
+                }
+
+                $x = $this->x;
+                $y = $this->y;
+                $w = $this->width;
+
+                if($this->bit == 0) {
+                    $x--;
+                    $this->bit++;
+                } else {
+                    $x++;
+                    $y += $this->dir;
+                    $this->bit--;
+                }
+
+                if($this->dir < 0) {
+                    if($y < 0) {
+                        $y = 0;
+                        $x -= 2;
+                        $this->dir = 1;
+                        if($x == 6) {
+                            $x--;
+                            $y = 9;
+                        }
+                    }
+                } else {
+                    if($y == $w) {
+                        $y = $w - 1;
+                        $x -= 2;
+                        $this->dir = -1;
+                        if($x == 6) {
+                            $x--;
+                            $y -= 8;
+                        }
+                    }
+                }
+                if($x < 0 || $y < 0) return null;
+
+                $this->x = $x;
+                $this->y = $y;
+
+            } while(ord($this->frame[$y][$x]) & 0x80);
+                        
+            return array('x'=>$x, 'y'=>$y);
+        }
+        
+    } ;
+    
+    //##########################################################################    
+    
+    class QRencode {
+    
+        public $casesensitive = true;
+        public $eightbit = false;
+        
+        public $version = 0;
+        public $size = 3;
+        public $margin = 4;
+        
+        public $structured = 0; // not supported yet
+        
+        public $level = QR_ECLEVEL_L;
+        public $hint = QR_MODE_8;
+        
+        //----------------------------------------------------------------------
+        public static function factory($level = QR_ECLEVEL_L, $size = 3, $margin = 4)
+        {
+            $enc = new QRencode();
+            $enc->size = $size;
+            $enc->margin = $margin;
+            
+            switch ($level.'') {
+                case '0':
+                case '1':
+                case '2':
+                case '3':
+                        $enc->level = $level;
+                    break;
+                case 'l':
+                case 'L':
+                        $enc->level = QR_ECLEVEL_L;
+                    break;
+                case 'm':
+                case 'M':
+                        $enc->level = QR_ECLEVEL_M;
+                    break;
+                case 'q':
+                case 'Q':
+                        $enc->level = QR_ECLEVEL_Q;
+                    break;
+                case 'h':
+                case 'H':
+                        $enc->level = QR_ECLEVEL_H;
+                    break;
+            }
+            
+            return $enc;
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodeRAW($intext, $outfile = false) 
+        {
+            $code = new QRcode();
+
+            if($this->eightbit) {
+                $code->encodeString8bit($intext, $this->version, $this->level);
+            } else {
+                $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+            }
+            
+            return $code->data;
+        }
+
+        //----------------------------------------------------------------------
+        public function encode($intext, $outfile = false) 
+        {
+            $code = new QRcode();
+
+            if($this->eightbit) {
+                $code->encodeString8bit($intext, $this->version, $this->level);
+            } else {
+                $code->encodeString($intext, $this->version, $this->level, $this->hint, $this->casesensitive);
+            }
+            
+            QRtools::markTime('after_encode');
+            
+            if ($outfile!== false) {
+                file_put_contents($outfile, join("\n", QRtools::binarize($code->data)));
+            } else {
+                return QRtools::binarize($code->data);
+            }
+        }
+        
+        //----------------------------------------------------------------------
+        public function encodePNG($intext, $outfile = false,$saveandprint=false) 
+        {
+            try {
+            
+                ob_start();
+                $tab = $this->encode($intext);
+                $err = ob_get_contents();
+                ob_end_clean();
+                
+                if ($err != '')
+                    QRtools::log($outfile, $err);
+                
+                $maxSize = (int)(QR_PNG_MAXIMUM_SIZE / (count($tab)+2*$this->margin));
+                
+                QRimage::png($tab, $outfile, min(max(1, $this->size), $maxSize), $this->margin,$saveandprint);
+            
+            } catch (Exception $e) {
+            
+                QRtools::log($outfile, $e->getMessage());
+            
+            }
+        }
+    }
+
+

+ 167 - 0
php/pkcs7Encoder.php

xqd
@@ -0,0 +1,167 @@
+<?php
+
+include_once "errorCode.php";
+
+/**
+ * PKCS7Encoder class
+ *
+ * 提供基于PKCS7算法的加解密接口.
+ */
+class PKCS7Encoder
+{
+	public static $block_size = 32;
+
+	/**
+	 * 对需要加密的明文进行填充补位
+	 * @param $text 需要进行填充补位操作的明文
+	 * @return 补齐明文字符串
+	 */
+	function encode($text)
+	{
+		$block_size = PKCS7Encoder::$block_size;
+		$text_length = strlen($text);
+		//计算需要填充的位数
+		$amount_to_pad = PKCS7Encoder::$block_size - ($text_length % PKCS7Encoder::$block_size);
+		if ($amount_to_pad == 0) {
+			$amount_to_pad = PKCS7Encoder::block_size;
+		}
+		//获得补位所用的字符
+		$pad_chr = chr($amount_to_pad);
+		$tmp = "";
+		for ($index = 0; $index < $amount_to_pad; $index++) {
+			$tmp .= $pad_chr;
+		}
+		return $text . $tmp;
+	}
+
+	/**
+	 * 对解密后的明文进行补位删除
+	 * @param decrypted 解密后的明文
+	 * @return 删除填充补位后的明文
+	 */
+	function decode($text)
+	{
+
+		$pad = ord(substr($text, -1));
+		if ($pad < 1 || $pad > 32) {
+			$pad = 0;
+		}
+		return substr($text, 0, (strlen($text) - $pad));
+	}
+
+}
+
+/**
+ * Prpcrypt class
+ *
+ * 提供接收和推送给公众平台消息的加解密接口.
+ */
+class Prpcrypt
+{
+	public $key;
+
+	function Prpcrypt($k)
+	{
+		$this->key = base64_decode($k . "=");
+	}
+
+	/**
+	 * 对明文进行加密
+	 * @param string $text 需要加密的明文
+	 * @return string 加密后的密文
+	 */
+	public function encrypt($text, $appid)
+	{
+
+		try {
+			//获得16位随机字符串,填充到明文之前
+			$random = $this->getRandomStr();
+			$text = $random . pack("N", strlen($text)) . $text . $appid;
+			// 网络字节序
+			$size = mcrypt_get_block_size(MCRYPT_RIJNDAEL_128, MCRYPT_MODE_CBC);
+			$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
+			$iv = substr($this->key, 0, 16);
+			//使用自定义的填充方式对明文进行补位填充
+			$pkc_encoder = new PKCS7Encoder;
+			$text = $pkc_encoder->encode($text);
+			mcrypt_generic_init($module, $this->key, $iv);
+			//加密
+			$encrypted = mcrypt_generic($module, $text);
+			mcrypt_generic_deinit($module);
+			mcrypt_module_close($module);
+
+			//print(base64_encode($encrypted));
+			//使用BASE64对加密后的字符串进行编码
+			return array(ErrorCode::$OK, base64_encode($encrypted));
+		} catch (Exception $e) {
+			//print $e;
+			return array(ErrorCode::$EncryptAESError, null);
+		}
+	}
+
+	/**
+	 * 对密文进行解密
+	 * @param string $encrypted 需要解密的密文
+	 * @return string 解密得到的明文
+	 */
+	public function decrypt($encrypted, $appid)
+	{
+
+		try {
+			//使用BASE64对需要解密的字符串进行解码
+			$ciphertext_dec = base64_decode($encrypted);
+			$module = mcrypt_module_open(MCRYPT_RIJNDAEL_128, '', MCRYPT_MODE_CBC, '');
+			$iv = substr($this->key, 0, 16);
+			mcrypt_generic_init($module, $this->key, $iv);
+
+			//解密
+			$decrypted = mdecrypt_generic($module, $ciphertext_dec);
+			mcrypt_generic_deinit($module);
+			mcrypt_module_close($module);
+		} catch (Exception $e) {
+			return array(ErrorCode::$DecryptAESError, null);
+		}
+
+
+		try {
+			//去除补位字符
+			$pkc_encoder = new PKCS7Encoder;
+			$result = $pkc_encoder->decode($decrypted);
+			//去除16位随机字符串,网络字节序和AppId
+			if (strlen($result) < 16)
+				return "";
+			$content = substr($result, 16, strlen($result));
+			$len_list = unpack("N", substr($content, 0, 4));
+			$xml_len = $len_list[1];
+			$xml_content = substr($content, 4, $xml_len);
+			$from_appid = substr($content, $xml_len + 4);
+		} catch (Exception $e) {
+			//print $e;
+			return array(ErrorCode::$IllegalBuffer, null);
+		}
+		if ($from_appid != $appid)
+			return array(ErrorCode::$ValidateAppidError, null);
+		return array(0, $xml_content);
+
+	}
+
+
+	/**
+	 * 随机生成16位字符串
+	 * @return string 生成的字符串
+	 */
+	function getRandomStr()
+	{
+
+		$str = "";
+		$str_pol = "ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789abcdefghijklmnopqrstuvwxyz";
+		$max = strlen($str_pol) - 1;
+		for ($i = 0; $i < 16; $i++) {
+			$str .= $str_pol[mt_rand(0, $max)];
+		}
+		return $str;
+	}
+
+}
+
+?>

+ 36 - 0
php/sha1.php

xqd
@@ -0,0 +1,36 @@
+<?php
+
+include_once "errorCode.php";
+
+/**
+ * SHA1 class
+ *
+ * 计算公众平台的消息签名接口.
+ */
+class SHA1
+{
+	/**
+	 * 用SHA1算法生成安全签名
+	 * @param string $token 票据
+	 * @param string $timestamp 时间戳
+	 * @param string $nonce 随机字符串
+	 * @param string $encrypt 密文消息
+	 */
+	public function getSHA1($token, $timestamp, $nonce, $encrypt_msg)
+	{
+		//排序
+		try {
+			$array = array($encrypt_msg, $token, $timestamp, $nonce);
+			sort($array, SORT_STRING);
+			$str = implode($array);
+			return array(ErrorCode::$OK, sha1($str));
+		} catch (Exception $e) {
+			//print $e . "\n";
+			return array(ErrorCode::$ComputeSignatureError, null);
+		}
+	}
+
+}
+
+
+?>

+ 150 - 0
php/wxBizMsgCrypt.php

xqd
@@ -0,0 +1,150 @@
+<?php
+
+/**
+ * 对公众平台发送给公众账号的消息加解密示例代码.
+ *
+ * @copyright Copyright (c) 1998-2014 Tencent Inc.
+ */
+
+
+include_once "sha1.php";
+include_once "xmlparse.php";
+include_once "pkcs7Encoder.php";
+include_once "errorCode.php";
+
+/**
+ * 1.第三方回复加密消息给公众平台;
+ * 2.第三方收到公众平台发送的消息,验证消息的安全性,并对消息进行解密。
+ */
+class WXBizMsgCrypt
+{
+	private $token;
+	private $encodingAesKey;
+	private $appId;
+
+	/**
+	 * 构造函数
+	 * @param $token string 公众平台上,开发者设置的token
+	 * @param $encodingAesKey string 公众平台上,开发者设置的EncodingAESKey
+	 * @param $appId string 公众平台的appId
+	 */
+	public function WXBizMsgCrypt($token, $encodingAesKey, $appId)
+	{
+		$this->token = $token;
+		$this->encodingAesKey = $encodingAesKey;
+		$this->appId = $appId;
+	}
+
+	/**
+	 * 将公众平台回复用户的消息加密打包.
+	 * <ol>
+	 *    <li>对要发送的消息进行AES-CBC加密</li>
+	 *    <li>生成安全签名</li>
+	 *    <li>将消息密文和安全签名打包成xml格式</li>
+	 * </ol>
+	 *
+	 * @param $replyMsg string 公众平台待回复用户的消息,xml格式的字符串
+	 * @param $timeStamp string 时间戳,可以自己生成,也可以用URL参数的timestamp
+	 * @param $nonce string 随机串,可以自己生成,也可以用URL参数的nonce
+	 * @param &$encryptMsg string 加密后的可以直接回复用户的密文,包括msg_signature, timestamp, nonce, encrypt的xml格式的字符串,
+	 *                      当return返回0时有效
+	 *
+	 * @return int 成功0,失败返回对应的错误码
+	 */
+	public function encryptMsg($replyMsg, $timeStamp, $nonce, &$encryptMsg)
+	{
+		$pc = new Prpcrypt($this->encodingAesKey);
+
+		//加密
+		$array = $pc->encrypt($replyMsg, $this->appId);
+		$ret = $array[0];
+		if ($ret != 0) {
+			return $ret;
+		}
+
+		if ($timeStamp == null) {
+			$timeStamp = time();
+		}
+		$encrypt = $array[1];
+
+		//生成安全签名
+		$sha1 = new SHA1;
+		$array = $sha1->getSHA1($this->token, $timeStamp, $nonce, $encrypt);
+		$ret = $array[0];
+		if ($ret != 0) {
+			return $ret;
+		}
+		$signature = $array[1];
+
+		//生成发送的xml
+		$xmlparse = new XMLParse;
+		$encryptMsg = $xmlparse->generate($encrypt, $signature, $timeStamp, $nonce);
+		return ErrorCode::$OK;
+	}
+
+
+	/**
+	 * 检验消息的真实性,并且获取解密后的明文.
+	 * <ol>
+	 *    <li>利用收到的密文生成安全签名,进行签名验证</li>
+	 *    <li>若验证通过,则提取xml中的加密消息</li>
+	 *    <li>对消息进行解密</li>
+	 * </ol>
+	 *
+	 * @param $msgSignature string 签名串,对应URL参数的msg_signature
+	 * @param $timestamp string 时间戳 对应URL参数的timestamp
+	 * @param $nonce string 随机串,对应URL参数的nonce
+	 * @param $postData string 密文,对应POST请求的数据
+	 * @param &$msg string 解密后的原文,当return返回0时有效
+	 *
+	 * @return int 成功0,失败返回对应的错误码
+	 */
+	public function decryptMsg($msgSignature, $timestamp = null, $nonce, $postData, &$msg)
+	{
+		if (strlen($this->encodingAesKey) != 43) {
+			return ErrorCode::$IllegalAesKey;
+		}
+
+		$pc = new Prpcrypt($this->encodingAesKey);
+
+		//提取密文
+		$xmlparse = new XMLParse;
+		$array = $xmlparse->extract($postData);
+		$ret = $array[0];
+
+		if ($ret != 0) {
+			return $ret;
+		}
+
+		if ($timestamp == null) {
+			$timestamp = time();
+		}
+
+		$encrypt = $array[1];
+		$touser_name = $array[2];
+
+		//验证安全签名
+		$sha1 = new SHA1;
+		$array = $sha1->getSHA1($this->token, $timestamp, $nonce, $encrypt);
+		$ret = $array[0];
+
+		if ($ret != 0) {
+			return $ret;
+		}
+
+		$signature = $array[1];
+		if ($signature != $msgSignature) {
+			return ErrorCode::$ValidateSignatureError;
+		}
+
+		$result = $pc->decrypt($encrypt, $this->appId);
+		if ($result[0] != 0) {
+			return $result[0];
+		}
+		$msg = $result[1];
+
+		return ErrorCode::$OK;
+	}
+
+}
+

+ 54 - 0
php/xmlparse.php

xqd
@@ -0,0 +1,54 @@
+<?php
+include_once "errorCode.php";
+
+/**
+ * XMLParse class
+ *
+ * 提供提取消息格式中的密文及生成回复消息格式的接口.
+ */
+class XMLParse
+{
+
+	/**
+	 * 提取出xml数据包中的加密消息
+	 * @param string $xmltext 待提取的xml字符串
+	 * @return string 提取出的加密消息字符串
+	 */
+	public function extract($xmltext)
+	{
+		try {
+			$xml = new DOMDocument();
+			$xml->loadXML($xmltext);
+			$array_e = $xml->getElementsByTagName('Encrypt');
+			$array_a = $xml->getElementsByTagName('ToUserName');
+			$encrypt = $array_e->item(0)->nodeValue;
+			$tousername = $array_a->item(0)->nodeValue;
+			return array(0, $encrypt, $tousername);
+		} catch (Exception $e) {
+			//print $e . "\n";
+			return array(ErrorCode::$ParseXmlError, null, null);
+		}
+	}
+
+	/**
+	 * 生成xml消息
+	 * @param string $encrypt 加密后的消息密文
+	 * @param string $signature 安全签名
+	 * @param string $timestamp 时间戳
+	 * @param string $nonce 随机字符串
+	 */
+	public function generate($encrypt, $signature, $timestamp, $nonce)
+	{
+		$format = "<xml>
+<Encrypt><![CDATA[%s]]></Encrypt>
+<MsgSignature><![CDATA[%s]]></MsgSignature>
+<TimeStamp>%s</TimeStamp>
+<Nonce><![CDATA[%s]]></Nonce>
+</xml>";
+		return sprintf($format, $encrypt, $signature, $timestamp, $nonce);
+	}
+
+}
+
+
+?>

+ 39 - 0
pingjia.php

xqd
@@ -0,0 +1,39 @@
+<!DOCTYPE html>
+<!-- saved from url=(0154)https://www.sobot.com/wxEvaluate/index.html?uid=ab1b6d7fdcba49eebc44d8842ab58bd6&cid=aa0c898047d544ee9e15474f5f9a0b8a&commentType=1&type=1&t=1520846576421 -->
+<html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
+    
+    <title></title>
+    <meta name="viewport" content="width=device-width,initial-scale=1,maximum-scale=1,user-scalable=no">
+    <link rel="stylesheet" href="./pingjia_files/evaluate.css" charset="utf-8">
+    <!-- endbuild -->
+</head>
+
+<body class="evabody" style="background: none;">
+    <div class="evamode js-evamode" style="display: block;">
+        <div class="operateType js-operateType"><p class="operateTypeTitle">请问客服是否解决了您的问题?</p><div class="operateTypeBtn"><p class="solve solved js-solved solveActive"><span></span>已解决</p><p class="solve unSolved js-unSolved" style="margin-left:25px;"><span></span>未解决</p></div></div>
+        <p class="evaluateTipTitle">请您对本次服务进行评分</p>
+        <div id="star">
+            <ul>
+                <li class="on"><a href="javascript:;">1</a></li>
+                <li class=""><a href="javascript:;">2</a></li>
+                <li class=""><a href="javascript:;">3</a></li>
+                <li class=""><a href="javascript:;">4</a></li>
+                <li class=""><a href="javascript:;">5</a></li>
+            </ul>
+        </div>
+        <p class="evaluateTip js-evaluateTip">客服排队情况:{$qianmian}人</p>
+        <div class="evaluateDetail js-evaluateDetail">
+            <p class="h2 js-h2"> </p>
+            <div class="situation js-situation">
+               
+            </div>
+            <textarea id="js-evaluateInner" class="js-evaluateInner" placeholder="欢迎给我们服务提建议~" maxlength="200"></textarea>
+        </div>
+        <div style="clear:both"></div>
+    </div>
+				 <input name="submit" type="submit" value="发送" class="submit js-submit" > 
+
+        <a class="submit js-submit" href="https://www.sobot.com/wxEvaluate/index.html?uid=ab1b6d7fdcba49eebc44d8842ab58bd6&amp;cid=aa0c898047d544ee9e15474f5f9a0b8a&amp;commentType=1&amp;type=1&amp;t=1520846576421#" style="display: block;">提交评价</a>
+
+ 
+</body></html>

+ 43 - 0
pingjia_files/WxPayDataD.php

xqd
@@ -0,0 +1,43 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=gb2312" />
+<title>阿莫源码社区www.</title>
+</head>
+
+<body>
+
+
+#########   本源码由——————  【阿莫源码论坛阿莫】  ——————发布   #########
+
+// +----------------------------------------------------------------------
+// | Program Name: 欢迎加入阿莫源码论坛互相学习和分享
+// +----------------------------------------------------------------------
+// | Publisher:    阿莫——阿莫
+// +----------------------------------------------------------------------
+// | Developer:    阿莫源码论坛
+// +----------------------------------------------------------------------
+
+ * 加入阿莫源码网 免费下载本站所有资源! 
+
+ * 感谢支持!您的支持是我们最大的动力!
+
+ * 您下载的本源码来自阿莫源码论坛:www.
+
+ * 欢迎大家来访获得最新更新的优秀资源!更多VIP特色资源不容错过!!
+
+ * 永久域名:http://www./     
+
+
+##############################################################################
+
+━┅━┅━┅━┅━┅━┅━┅━┅━━┅━┅━┅━┅━┅━┅━┅━
+免责声明:
+   根据二○一三年一月三十日《计算机软件保护条例》2次修订第17条规定:
+  为了学习和研究软件内含的设计思想和原理,通过安装、显示、传输或者存
+  储软件等方式使用软件的,可以不经软件著作权人许可,不向其支付报酬!
+  鉴于此,也希望大家按此说明研究软件!
+
+本站所有源码都来源于网络收集修改或者交换!如果侵犯了您的权益,请及时告知我们,我们即刻处理!
+</body>
+</html>

+ 316 - 0
pingjia_files/evaluate.css

xqd
@@ -0,0 +1,316 @@
+ 
+ html,
+ body {
+     margin: 0;
+     padding: 0;
+     width: 100%;
+     height: 100%;
+ }
+ .evabody{
+     background: url(./images/loading.gif) no-repeat center center;
+ }
+ .evamode {
+     display: none;
+     width: 100%;
+     height: 100%;
+     overflow-y:scroll;
+     position: relative;
+     text-align: center;
+     background: #fff;
+ }
+ 
+ .evamode .h1 {
+     font-size: 1.2em;
+     color: #333333;
+     height: 50px;
+     line-height: 50px;
+ }
+ 
+ .evamode .wether {
+     overflow: hidden;
+     width: 60%;
+     margin: 16px auto;
+ }
+ 
+ .evamode .wether span:first-child {
+     margin-left: 0;
+ }
+ 
+ .evamode .wether span {
+     display: inline-block;
+     float: left;
+     height: 44px;
+     line-height: 44px;
+     border: 1px solid #c5cecb;
+     border-radius: 4px;
+     margin-left: 10%;
+     width: 40%;
+ }
+ 
+ .evamode .wether span.active {
+     color: #fff;
+     border: 1px solid #09aeb0;
+     background: #09aeb0;
+ }
+ /* 评价自定义弹窗样式 */
+ 
+ .evamode .operateType {
+     float: left;
+     width: 100%;
+     margin-bottom: 20px;
+ }
+ 
+ .evamode .operateType .operateTypeBtn {
+     overflow: hidden;
+     width: 240px;
+     margin: auto;
+ }
+ 
+ .evamode .operateType .solve {
+     float: left;
+     width: 84px;
+     height: 30px;
+     line-height: 30px;
+     padding-right: 20px;
+     font-size: 14px;
+     color: #8b98ad;
+     text-align: right;
+     border: 1px solid #d6dbe5;
+     border-radius: 4px;
+     cursor: pointer;
+ }
+ 
+ .evamode .operateType .solved span {
+     display: inline-block;
+     float: left;
+     width: 20px;
+     height: 20px;
+     margin-left: 16px;
+     margin-top: 8px;
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -19px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .unSolved span {
+     display: inline-block;
+     float: left;
+     width: 20px;
+     height: 20px;
+     margin-left: 16px;
+     margin-top: 8px;
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -80px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .evaluateDetail {
+     display: none;
+ }
+ 
+ .evamode .operateType .solveActive {
+     background: #0daeaf;
+     color: #fff;
+     border: 1px solid #0daeaf;
+ }
+ 
+ .evamode .operateType .solveActive span {
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: 0px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .unsolveActive {
+     background: #0daeaf;
+     color: #fff;
+     border: 1px solid #0daeaf;
+ }
+ 
+ .evamode .operateType .unsolveActive span {
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -60px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .operateTypeTitle {
+     width: 100%;
+     text-align: center;
+     margin: 30px 0;
+     color: #555556;
+     font-size: 15px;
+ }
+ 
+ .evamode .h2 {
+     clear: both;
+     float: left;
+     width: 100%;
+     text-align: center;
+     font-size: 0.8em;
+     color: #333333;
+     margin-bottom: 20px;
+ }
+ 
+ .evamode .situation {
+     width: 300px;
+     margin: auto;
+ }
+ 
+ .evamode .situation span {
+     display: inline-block;
+     color: #686d70;
+     border-radius: 4px;
+     width: 45%;
+     height: 28px;
+     line-height: 28px;
+     margin-bottom: 18px;
+     font-size: 0.8em;
+     border: 1px solid #c4cdcc;
+     text-align: center
+ }
+ 
+ .evamode .situation .active {}
+ 
+ .evamode textarea {
+     resize: none;
+     width: 80%;
+     height: 62px;
+     margin: auto;
+     margin-bottom: 50px;
+     background: #fff;
+     font-size: 0.8em;
+     color: #676c6f;
+     padding: 10px;
+     border-radius: 4px;
+     border: 1px solid #ddd;
+ }
+ 
+
+ 
+ .evamode .evaluateTipTitle {
+     font-size: 1em;
+     color: rgba(51, 51, 51, 0.98);
+     letter-spacing: 0;
+     text-align: center;
+     padding-top: 20px;
+ }
+ 
+ .evamode .evaluateTip {
+     float: left;
+     width: 100%;
+     font-size: 0.9em;
+     color: #faba4a;
+     letter-spacing: 0;
+     padding-bottom: 10px;
+     text-align: center;
+ }
+ 
+ #star {
+     position: relative;
+     width: 100%;
+     margin: 10px 0;
+ }
+ 
+ #star ul {
+     list-style: none;
+     margin: 0 auto;
+     padding: 0;
+     overflow: hidden;
+     display: inline-block;
+ }
+ 
+ #star li {
+     float: left;
+     width: 45px;
+     height: 35px;
+     cursor: pointer;
+     text-indent: -9999px;
+     background-position: -109px -242px;
+     background-image: url(./images/icoGroup2X.png);
+     background-size: 350px 355px;
+ }
+ 
+ #star li.on {
+     background-position: -55px -242px;
+ }
+ 
+ .showTip {
+     position: absolute;
+     z-index: 100;
+     width: 140px;
+     height: 40px;
+     background: #272b2c;
+     opacity: 0.8;
+     border-radius: 6px;
+ }
+ 
+ .showTip p {
+     width: 100%;
+     height: 40px;
+     line-height: 40px;
+     color: #fff;
+     font-size: 1em;
+     text-align: center;
+ }
+ 
+ .evaSuccess {}
+ 
+ .evaSuccess .icon {
+     width: 200px;
+     height: 170px;
+     margin: 30px auto;
+     background: url(./images/successIcon.png) no-repeat;
+ }
+ 
+ .evaSuccess .tip {
+     width: 240px;
+     font-size: 17px;
+     color: rgba(51, 51, 51, 0.98);
+     letter-spacing: 0;
+     line-height: 26px;
+     text-align: center;
+     margin: auto;
+ }
+ /* iphone6 Plus */
+ 
+ @media (min-device-width: 414px) and (max-device-width: 736px) {
+     #star li {
+         background-image: url(./images/icoGroup2X.png);
+     }
+ }
+ 
+ .evamsg {
+     position: absolute;
+     z-index: 1000;
+     width: 200px;
+     height: 40px;
+     background: #000;
+     opacity: 0.7;
+     border-radius: 6px;
+ }
+ 
+ .evamsg p {
+     width: 100%;
+     height: 40px;
+     line-height: 40px;
+     color: #fff;
+     font-size: 14px;
+     text-align: center;
+ }
+  .submit {
+     display:none;
+     position: absolute;
+     bottom: 0px;
+     left: 0;
+     width: 100%;
+     height: 50px;
+     line-height: 50px;
+     text-align: center;
+     font-size: 1em;
+     color: #fff;
+     background: #0daeaf;
+     text-decoration: none;
+ }

+ 332 - 0
pingjia_files/evaluate.js

xqd
@@ -0,0 +1,332 @@
+$(document.body).ready(function() {
+    var isRepeat = false,
+        score = 5,
+        tag = "",
+        solved = 1,
+        remar = "";
+    var param = {};
+    var humanSetInnerStepOneHtml = function() {
+        $aLi = $("#star li");
+        $(".js-solved").addClass("solveActive");
+        fnPoint(score);
+        $(".js-evaluateTip").html(config[score - 1].scoreExplain);
+        var iStar = 0;
+        for (i = 1; i <= $aLi.length; i++) {
+            $aLi[i - 1].index = i;
+            //鼠标移过显示分数
+            $aLi[i - 1].onmouseover = function() {
+                fnPoint(this.index);
+            };
+            //鼠标离开后恢复上次评分
+            $aLi[i - 1].onmouseout = function() {
+                fnPoint(this.index);
+            };
+            //点击后进行评分处理
+            $($aLi[i - 1]).bind("click", function() {
+                iStar = this.index;
+                switch (iStar) {
+                    case 1: //一星
+                    case 2: //二星
+                    case 3: //三星
+                    case 4: //四星
+                        score = iStar;
+                        humanSetInnerStepTwoHtml(iStar);
+                        $(".js-evaluateDetail").css("display", "block");
+                        break;
+                    case 5: //五星
+                        score = 5;
+                        $(".js-evaluateDetail").css("display", "none");
+                        break;
+                };
+                $(".js-evaluateTip").html(config[score - 1].scoreExplain);
+
+            });
+        };
+        if (config[0].isQuestionFlag) {
+            $(".js-operateType").html('<p class="operateTypeTitle">请问客服是否解决了您的问题?</p>' +
+                '<div class="operateTypeBtn">' +
+                '<p class="solve solved js-solved solveActive"><span></span>已解决</p>' +
+                '<p class="solve unSolved js-unSolved" style="margin-left:25px;"><span></span>未解决</p>' +
+                '</div>');
+        }
+
+
+    };
+    var humanSetInnerStepTwoHtml = function() {
+        var list = [];
+
+        if (config[score - 1].labelName) {
+            list = config[score - 1].labelName.split(",");
+
+        }
+        //去掉空标签
+        for (var i = 0; i < list.length; i++) {
+            if (list[i] == "") {
+                list.splice(i, 1);
+            }
+        };
+        var $li = "";
+        for (var i = 0; i < list.length; i++) {
+            if (i % 2 == 0) {
+                $li += '<span class="tag js-situationSpan" style="float:left;">' + list[i] + '</span>';
+            } else {
+                $li += '<span class="tag js-situationSpan" style="float:right;">' + list[i] + '</span>';
+            }
+        };
+        if (list.length > 0) {
+            $(".js-h2").css('display',"block");
+        } else {
+            $(".js-h2").css('display',"none");
+        }
+        $(".js-situation").html($li);
+        $(".js-situationSpan").click(function() {
+            if ($(this).hasClass("active")) {
+                $(this).css({ "background": "#fff", "border": "1px solid #c4cdcc", "color": "#686d70" });
+                $(this).removeClass("active")
+            } else {
+                $(this).css({ "background": "#0daeaf", "border": "1px solid #0daeaf", "color": "#fff" });
+                $(this).addClass("active")
+            }
+        });
+        //alert(!!config[score - 1].inputLanguage);
+        if (!!config[score - 1].inputLanguage) {
+            $(".js-evaluateInner").attr("placeholder", config[score - 1].isInputMust ? config[score - 1].inputLanguage + '(必填)' : config[score - 1].inputLanguage + '(选填)');
+        } else {
+            $(".js-evaluateInner").attr("placeholder", config[score - 1].isInputMust ? '欢迎给我们服务提建议~(必填)' : '欢迎给我们服务提建议~(选填)');
+
+        }
+    };
+    var EvaluateAjaxHandler = function() {
+        if (isRepeat == false) {
+            isRepeat = true;
+            var tagArr = [],
+                tagNum = $(".js-situationSpan").length;
+            $(".js-situationSpan").each(function() {
+                var _val = $(this).html();
+                if ($(this).hasClass("active")) {
+                    tagArr.push(_val)
+                }
+            });
+            if (tagArr.length == 0 && config[score - 1].isTagMust && score != 5 && tagNum > 0) {
+                alert('请选择评价标签');
+                setTimeout(function() {
+                    isRepeat = false;
+                }, 3000);
+                return;
+            };
+            tag = tagArr.join(",");
+            //评价详情是否为必选
+            remark = $(".js-evaluateInner").val() || '';
+            if (remark == "" && config[score - 1].isInputMust && score != 5) {
+                alert('请填写评价详情');
+                setTimeout(function() {
+                    isRepeat = false;
+                }, 3000)
+                return;
+            }
+            if (config[0].isQuestionFlag == 1) {
+                if ($(".js-solved").hasClass("solveActive")) {
+                    solved = 1;
+                } else {
+                    solved = 0;
+                }
+            }else{
+                    solved = -1;
+
+            };
+            $.ajax({
+                type: "post",
+                url: "/chat/user/comment.action",
+                dataType: "json",
+                data: {
+                    cid: param["cid"],
+                    visitorId: param["uid"],
+                    score: score,
+                    tag: tag,
+                    solved: solved,
+                    remark: remark,
+                    type: 1,
+                    //0,邀请评价,1为主动评价
+                    commentType: param["commentType"]
+                },
+                success: function(req) {
+                    if (req.status === 1) {
+                        //window.open('./evaSuccess.html');
+                        window.location.href = './evaSuccess.html';
+                    } else {
+                        alert("提交失败");
+                    }
+                },
+                //请检查网络链接
+                error: function() {
+                    alert("提交失败,请检查网络链接");
+                }
+            });
+            setTimeout(function() {
+                isRepeat = false;
+            }, 3000)
+        }
+    };
+    var fnPoint = function(iArg) { //alert(iArg);
+        //分数赋值
+        for (var i = 0; i < $aLi.length; i++) {
+            $aLi[i].className = i < iArg ? "on" : "";
+        }
+    };
+    var getQueryParam = function(href) {
+        href = href || document.location.href;
+        var queryString = href.substring(href.lastIndexOf("?") + 1);
+        if (queryString.lastIndexOf("#") >= 0) {
+            queryString = queryString.substring(0, queryString.lastIndexOf("#"));
+        };
+        var list = queryString.split("&");
+        for (var i = 0; i < list.length; i++) {
+            var item = list[i];
+            try {
+                var key = item.substring(0, item.indexOf("="));
+                var value = item.substring(item.indexOf("=") + 1);
+                if (key.length == 0) {
+                    continue;
+                }
+
+                if (/^-?(\d+)(\.\d+)?$/.test(value)) {
+                    if (("" + value).length > 10) {
+                        param[key] = "" + value;
+                    } else {
+                        param[key] = Number(value);
+                    }
+                } else if (value === 'true') {
+                    param[key] = true;
+                } else if (value === 'false') {
+                    param[key] = false;
+                } else {
+                    param[key] = decodeUrl(value);
+                }
+            } catch (e) {
+                continue;
+            }
+        }
+        return param;
+    };
+    var decodeUrl = function(str) {
+        if (typeof str === 'string') {
+            return decodeURIComponent(str);
+        } else {
+            return undefined;
+        }
+
+    };
+    var commitBefore = function() {
+        $.ajax({
+            type: "post",
+            url: "/chat/user/isComment.action",
+            dataType: "json",
+            data: {
+                cid: param["cid"],
+                uid: param["uid"],
+                type: 1
+            },
+            success: function(req) {
+                var isEvaluated = req.isComment;
+                //alert(isEvaluated);
+                //1表示评论过
+                if (isEvaluated == 1) {
+                    alert("您已评价,不能重复提交");
+                } else if (isEvaluated == 0) { //0表示说过话没有评论过
+                    EvaluateAjaxHandler();
+                } else { //-1表示用户没有说过话
+                    alert("评价页面过期失效啦,欢迎下次及时进行评价哦~~");
+                    //微信无此种情况
+                }
+            }
+        })
+    };
+    var bindListener = function() {
+        $(".js-submit").on("click", commitBefore);
+        $(document.body).delegate(".js-solved", "click", function() {
+            if (!$(this).hasClass("solveActive")) {
+                $(this).addClass("solveActive");
+                $(".js-unSolved").removeClass("unsolveActive");
+            }
+        });
+        $(document.body).delegate(".js-unSolved", "click", function() {
+            if (!$(this).hasClass("unsolveActive")) {
+                $(this).addClass("unsolveActive");
+                $(".js-solved").removeClass("solveActive");
+            }
+        });
+
+        $(window).scroll(function() {
+            $(".js-submit").css("bottom", 0)
+        })
+    };
+    var parseDOM = function() {
+        $body = $(document.body);
+    };
+    var initFunction = function() {
+        parseDOM();
+        humanSetInnerStepOneHtml();
+        bindListener();
+    };
+    var initConfig = function() {
+        $.ajax({
+            type: "get",
+            url: "/chat/user/satisfactionMessage.action",
+            dataType: "json",
+            data: {
+                uid: param["uid"]
+            },
+            success: function(req) {
+                if (req.status === 1) {
+                    config = req.data;
+                    initFunction();
+                    $('.evabody').css("background", "none");
+                    $('.js-evamode').css("display", "block");
+                    $('.js-submit').css("display", "block");
+                }
+            },
+            //请检查网络链接
+            error: function() {
+                //showTip.show('请检查网络链接');
+            }
+        });
+    };
+    var init = function() {
+        getQueryParam();
+        // console.log(param["cid"]);
+        if (isRepeat == false) {
+            isRepeat = true;
+            $.ajax({
+                type: "post",
+                url: "/chat/user/isComment.action",
+                dataType: "json",
+                data: {
+                    cid: param["cid"],
+                    uid: param["uid"],
+                    type: 1
+                },
+                success: function(req) {
+                    var isEvaluated = req.isComment;
+                    //console.log(req.isComment);
+                    //alert(isEvaluated);
+                    //1表示评论过
+                    if (isEvaluated == 1) {
+                        window.location.href = './evaSuccess.html';
+                    } else if (isEvaluated == 0) { //0表示说过话没有评论过
+
+                        initConfig();
+                    } else { //-1表示用户没有说过话
+                    alert("评价页面过期失效啦,欢迎下次及时进行评价哦~~");
+                        
+                        //微信无此种情况
+                    }
+                }
+            });
+            //防止快速点击
+            setTimeout(function() {
+                isRepeat = false;
+            }, 1000)
+        }
+    };
+    init();
+})

Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
pingjia_files/zepto.min.old.js


+ 229 - 0
project.php

xqd
@@ -0,0 +1,229 @@
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+
+ <?php 
+ /*
+ 	本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+ Array ( [openid] => oftVf0iXOUBEuBMj2LOhODTE8SoY [nickname] => 朱发刚 [sex] => 1 
+ [language] => zh_CN [city] => 元朗区 [province] => 香港 
+ [country] => 中国 
+ [headimgurl] => 
+ http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLX6BOQKz25FVs3W1jvqlUkmnibgXne80H4kticKWhiaf0h9lHSG18tjyh7j9ef36lWHno3YyN3hBnjA/132 
+ [privilege] => Array ( ) )
+ 朱发刚oooooooooooooooo您已经授权成功!关闭本页面即可开始咨询.改名成功!
+ 
+ */
+ $toUsername=$_GET["toUsername"];;  
+ $json = file_get_contents('json/'.$toUsername.'.json');
+ //echo $json;
+ $arr = json_decode($json,true);
+ $appid = $arr['Gappid']; 
+if($appid==''){echo '缺少授权服务号的appid';
+exit;}; 
+
+ $secret = $arr['GAPPSECRET'];  
+ if($secret==''){echo '缺少授权服务号的GAPPSECRET';
+ exit;}; 
+  // print_r($toUsername);
+ 
+ 
+ $code = $_GET["code"];
+ $zfopenid = $_GET["zfopenid"];
+ $kfopenid = $_GET["kfopenid"];
+ $kfname = $_GET["kfname"];
+ 
+ $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
+ $oauth2 = getJson($oauth2Url);
+
+ //  print_r($oauth2);
+//第二步:根据全局access_token和openid查询用户信息  
+ if ($oauth2['errcode']<>0){
+	  echo "参数错误,一般是密钥错误引起,请检查.<br>";
+	  print_r($oauth2['errmsg']);
+	  
+	 exit;
+ }
+$access_token = $oauth2["access_token"];  
+
+$openid = $oauth2['openid'];  
+$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
+//处理授权识别问题???
+
+$userinfo = getJson($get_user_info_url);
+//print_r ($userinfo);
+	if ($userinfo['errcode']==0){
+//打印用户信息
+	$ucid=$arr['uniacid'];
+	 
+	$website=$arr['website'];
+	if($kfopenid<>''){
+		$json 			 = file_get_contents("json/".$ucid."_kefu.json");
+		$kefuarr 		 = json_decode($json,true);	//客服列表
+		if($kefuarr[$kfopenid]=='空闲'){
+			$kefuarr[$kfopenid]=$zfopenid;
+		    $res=file_put_contents("json/".$ucid."_kefu.json",  json_encode($kefuarr));
+			$okstr='接入客服'.$kfname;
+		}
+	}
+	
+ //   print_r("<img src='".$userinfo['headimgurl']."'>");
+	print_r('你好!'.$userinfo['nickname'].'授权成功!'.$okstr.' 关闭本页面,回复任意字符即可开始咨询');
+
+	  //插入数据库 //   	
+	edituser($ucid,$zfopenid,$userinfo['nickname'],$website,$userinfo['headimgurl'],$userinfo['city']);
+    		 define("APPID", $arr['APPID']);
+			 define("APPSECRET", $arr['APPSECRET']);
+			 
+		
+			$myopenid=trim($arr['openids']);//管理员id
+    	  	$Atoken=getToken(APPID,APPSECRET,$toUsername);//修正token时间问题
+			
+			$url  = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+	//  echo $url ;	
+	$zt=$kfname.":";
+	//给用户说话 //
+    $data='{ "touser":"'.$zfopenid.'",    "msgtype":"text",
+		 "text":    {         "content":"'.$zt.$userinfo['nickname'].',你好!有什么可以帮你的吗. ' .  $zt . ' "    }  }'; 
+	//	 echo $data;
+		 
+		 //生成用户缓存 
+		    alluser($ucid,$website);
+			//删除缓存数据
+			//exec("rm -f ".'json/'.$ucid.'_token.json');  
+			$aaa = http_post_data($url, $data); 
+	
+	//通知管理员//
+	    if ($userinfo['sex']==1){ $sex=',性别:男';} 
+		if($userinfo['sex']==0){ $sex='性别:女';} 
+		
+		$baogao=' {
+        "title": "['.$kfname.'用户授权成功]'.$userinfo['nickname'].'",
+        "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
+        "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
+        "thumb_url": "'.$userinfo['headimgurl'].'"
+    }';
+	//echo $baogao;
+	  //  logger($baogao);
+	  	 $caidan=trim($arr['Gjsonid']);//进入通知:
+	  	 if ($caidan<>''){
+				 
+			$Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
+				//	logger("通知下发:".$caidan_arr['APPID'].'-状态:'.$caidan_arr['openids']); 
+			$url  = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken; 	
+				$myopenid=trim($arr['Gopenids']);		  
+			 }		 
+	  	$data1='{ "touser":"'.$myopenid.'",    "msgtype":"link",     "link":   '.$baogao.'    }';
+		
+	    $aaa = http_post_data($url, $data1); //  
+		if($kfopenid<>''){
+			$baogao=' {
+        "title": "[新用户授权进入]'.$zt.'-'.$userinfo['city'].'",
+        "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
+        "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
+        "thumb_url": "'.$userinfo['headimgurl'].'"
+    }';
+	  	$data1='{ "touser":"'.$kfopenid.'",    "msgtype":"link",     "link":   '.$baogao.'    }';
+		
+		}
+		
+ 	 	echo("<script> setTimeout(function(){WeixinJSBridge.call('closeWindow');},100);</script>");
+
+ }else
+	 
+	 {
+		 print_r('授权失败,请检查信息是否正确.');
+	 }
+
+
+ 
+function getJson($url){
+    $ch = curl_init();
+    curl_setopt($ch, CURLOPT_URL, $url);
+    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
+    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+    $output = curl_exec($ch);
+    curl_close($ch);
+    return json_decode($output, true);
+}
+
+  
+   function edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai) //改名取号
+{
+ $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
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 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 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 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) ;
+  }
+  ?>
+  

+ 236 - 0
project2.php

xqd
@@ -0,0 +1,236 @@
+	<meta charset="utf-8">
+	<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+
+ <?php 
+ /*
+ 	本代码已经申请著作权保护
+	盗版必究
+	法律顾问:北京东环律所事务所 
+	
+ Array ( [openid] => oftVf0iXOUBEuBMj2LOhODTE8SoY [nickname] => 朱发刚 [sex] => 1 
+ [language] => zh_CN [city] => 元朗区 [province] => 香港 
+ [country] => 中国 
+ [headimgurl] => 
+ http://thirdwx.qlogo.cn/mmopen/vi_32/Q0j4TwGTfTLX6BOQKz25FVs3W1jvqlUkmnibgXne80H4kticKWhiaf0h9lHSG18tjyh7j9ef36lWHno3YyN3hBnjA/132 
+ [privilege] => Array ( ) )
+ 朱发刚oooooooooooooooo您已经授权成功!关闭本页面即可开始咨询.改名成功!
+ 
+ */
+ $toUsername=$_GET["toUsername"];;  
+ $json = file_get_contents('json/'.$toUsername.'.json');
+ //echo $json;
+ $arr = json_decode($json,true);
+ $appid = $_GET['appid']; //state
+ $state = $_GET['state']; 
+if($appid==''){echo '缺少授权服务号的appid';
+exit;}; 
+
+ $secret = $arr['GAPPSECRET'];  
+ //if($secret==''){echo '缺少授权服务号的GAPPSECRET';
+ //exit;}; 
+  // print_r($toUsername);
+ 
+ 
+ $code = $_GET["code"];
+ $zfopenid = $_GET["zfopenid"];
+ $kfopenid = $_GET["kfopenid"];
+ $kfname = $_GET["kfname"];
+ 
+ //https://api.weixin.qq.com/sns/oauth2/access_token?appid=$appid&secret=$secret&code=$code&grant_type=authorization_code";
+  $oauth2Url = "https://api.weixin.qq.com/sns/oauth2/component/access_token?appid=$appid&code=$code&grant_type=authorization_code&component_appid=wx87202cc559004852&component_access_token=9_RIU2OUD9FIQIxHgZPJ4OnnyY10u-rj0XJRayVi45eokuBvh5zmTgrairvNhbwaQpv282-DPnjUDoBTbLXKYDoPHR3FwtCbUFASdOtyNWqONksR5IHxTlzBjTFccwI3U_6reMFcsnvL_s-svuWYGcAFAFHP";
+
+ $oauth2 = getJson($oauth2Url);
+
+ //  print_r($oauth2);
+//第二步:根据全局access_token和openid查询用户信息  
+ if ($oauth2['errcode']<>0){
+	  echo "参数错误,一般是密钥错误引起,请检查.<br>";
+	  print_r($oauth2['errmsg']);
+	  
+	 exit;
+ }
+$access_token = $oauth2["access_token"];  
+
+$openid = $oauth2['openid'];  
+$get_user_info_url = "https://api.weixin.qq.com/sns/userinfo?access_token=$access_token&openid=$openid&lang=zh_CN";
+//处理授权识别问题???
+
+$userinfo = getJson($get_user_info_url);
+//print_r ($userinfo);
+	if ($userinfo['errcode']==0){
+//打印用户信息
+	$ucid=$arr['uniacid'];
+	 
+	$website=$arr['website'];
+	if($kfopenid<>''){
+		$json 			 = file_get_contents("json/".$uniacid."_kefu.json");
+		$kefuarr 		 = json_decode($json,true);	//客服列表
+		if($kefuarr[$kfopenid]=='空闲'){
+			$kefuarr[$kfopenid]=$zfopenid;
+		    $res=file_put_contents("json/".$uniacid."_kefu.json",  json_encode($kefuarr));
+			$okstr='接入客服'.$kfname;
+		}
+	}
+	
+ //   print_r("<img src='".$userinfo['headimgurl']."'>");
+	print_r('你好!'.$userinfo['nickname'].'授权成功!'.$okstr.' 关闭本页面,回复任意字符即可开始咨询');
+
+	  //插入数据库 //   	
+	edituser($ucid,$zfopenid,$userinfo['nickname'],$website,$userinfo['headimgurl'],$userinfo['city']);
+    		 define("APPID", $arr['APPID']);
+			 define("APPSECRET", $arr['APPSECRET']);
+			 
+		
+			$myopenid=trim($arr['openids']);//管理员id
+    	  	$Atoken=getToken(APPID,APPSECRET,$toUsername);//修正token时间问题
+			
+			$url  = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken; 
+	//  echo $url ;	
+	$zt=$kfname.":";
+	//给用户说话 //
+    $data='{ "touser":"'.$zfopenid.'",    "msgtype":"text",
+		 "text":    {         "content":"'.$zt.$userinfo['nickname'].',你好!有什么可以帮你的吗. ' .  $zt . ' "    }  }'; 
+	//	 echo $data;
+		 
+		 //生成用户缓存 
+		    alluser($ucid,$website);
+			//删除缓存数据
+			//exec("rm -f ".'json/'.$ucid.'_token.json');  
+			$aaa = http_post_data($url, $data); 
+	
+	//通知管理员//
+	    if ($userinfo['sex']==1){ $sex=',性别:男';} 
+		if($userinfo['sex']==0){ $sex='性别:女';} 
+		
+		$baogao=' {
+        "title": "['.$kfname.'用户授权成功]'.$userinfo['nickname'].'",
+        "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
+        "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
+        "thumb_url": "'.$userinfo['headimgurl'].'"
+    }';
+	//echo $baogao;
+	  //  logger($baogao);
+	  	 $caidan=trim($arr['Gjsonid']);//进入通知:
+	  	 if ($caidan<>''){
+				 
+			$Btoken=getToken($arr['Gappid'],$arr['GAPPSECRET'],$caidan);//修正token时间问题
+				//	logger("通知下发:".$caidan_arr['APPID'].'-状态:'.$caidan_arr['openids']); 
+			$url  = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Btoken; 	
+				$myopenid=trim($arr['Gopenids']);		  
+			 }		 
+	  	$data1='{ "touser":"'.$myopenid.'",    "msgtype":"link",     "link":   '.$baogao.'    }';
+		
+	    $aaa = http_post_data($url, $data1); //  
+		if($kfopenid<>''){
+			$baogao=' {
+        "title": "[新用户授权进入]'.$zt.'-'.$userinfo['city'].'",
+        "description": "来自: '.$userinfo['province'].$userinfo['city'].$sex.' \n本链接仅供通知.",
+        "url": "'.$website.'addons/qidong_app/user.php?openid='.$zfopenid.'",
+        "thumb_url": "'.$userinfo['headimgurl'].'"
+    }';
+	  	$data1='{ "touser":"'.$kfopenid.'",    "msgtype":"link",     "link":   '.$baogao.'    }';
+		
+		}
+		
+ 	 	echo("<script> setTimeout(function(){WeixinJSBridge.call('closeWindow');},100);</script>");
+
+ }else
+	 
+	 {
+		 print_r('授权失败,请检查信息是否正确.');
+	 }
+
+
+ 
+function getJson($url){
+    $ch = curl_init();
+    curl_setopt($ch, CURLOPT_URL, $url);
+    curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE); 
+    curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE); 
+    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
+    $output = curl_exec($ch);
+    curl_close($ch);
+    return json_decode($output, true);
+}
+
+  
+   function edituser($ucid,$openid,$nickname,$website,$avartar,$zhuangtai) //改名取号
+{
+ $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
+  //   echo    $token_access_url;
+//	 exit;
+	       $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 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 http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+   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) ;
+  }
+  ?>
+  

+ 40 - 0
qrcode_1.php

xqd
@@ -0,0 +1,40 @@
+<?php
+
+include "php/phpqrcode.php";
+$store_id=$_POST['id'];
+$logo = $_POST['downlogo'];//准备好的logo图片  
+$data= $_POST['url']; 
+ 
+$errorCorrectionLevel="L";
+
+$matrixPointSize="8";
+
+//QRcode::png($data,false,$errorCorrectionLevel,$matrixPointSize);
+$templogo='temp/'.$store_id.'qrcode.png';
+QRcode::png($data,$templogo , $errorCorrectionLevel, $matrixPointSize, 2);  
+
+ 
+$QR =$templogo;//已经生成的原始二维码图   
+if ($logo !== FALSE) {   
+    $QR = imagecreatefromstring(file_get_contents($QR));   
+    $logo = imagecreatefromstring(file_get_contents($logo));   
+    $QR_width = imagesx($QR);//二维码图片宽度   
+    $QR_height = imagesy($QR);//二维码图片高度   
+    $logo_width = imagesx($logo);//logo图片宽度   
+    $logo_height = imagesy($logo);//logo图片高度   
+    $logo_qr_width = $QR_width / 5;   
+    $scale = $logo_width/$logo_qr_width;   
+    $logo_qr_height = $logo_height/$scale;   
+    $from_width = ($QR_width - $logo_qr_width) / 2;   
+    //重新组合图片并调整大小   
+    imagecopyresampled($QR, $logo, $from_width, $from_width, 0, 0, $logo_qr_width,   
+    $logo_qr_height, $logo_width, $logo_height);   
+}   
+//输出图片
+
+$templogonew= 'temp/'.$store_id.'.png';
+imagepng($QR,$templogonew);   
+echo '<img src='.$templogonew.'>';   
+
+
+?>

+ 165 - 0
qunfa.php

xqd
@@ -0,0 +1,165 @@
+<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+ <meta charset="utf-8">
+<?php
+
+    $uniacid=$_GET['uniacid'];
+	$keyword=$_GET['keyword'];
+	$t=$_GET['t'];
+	
+	if(file_exists("temp/".$t."_baogao.html")){
+		//已经发送过
+		
+		echo "已经发送完成 <a href='temp/".$t."_baogao.html'>查看报告</a>";
+		 exit;
+	}else
+	{
+		if ((time()-$t)>60){
+		echo '链接已经失效.请重新生成发送列表.';
+		exit;
+		}
+		
+	}
+	
+//	echo substr($keyword,0,10);
+	$tousername=$_GET['tousername'];
+    $file = file_get_contents("json/{$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']; 					
+      //判断有没有缓存.
+	//echo $url.'<br>';
+	$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);
+			
+    if (file_exists("json/".$uniacid."_user.json"))	
+		{  $json = file_get_contents("json/".$uniacid."_user.json");
+			   $arr1 = json_decode($json,true);	
+			   $arr= array_keys($arr1);//openid 
+	            $i=0;
+			    $j=0;
+				$result = substr ($keyword, -1); 
+	//			echo 'result:'.$result.'<br>';
+			    if($result=='|'){//如果是图文群发.
+						$gjz=substr($keyword,0,strlen(trim($keyword))-1);
+		//				echo 'gjz:'.$gjz;
+			//			echo '<br>';
+						
+						if(is_numeric($gjz)){
+				 				$send=$keys[$numkeys[$gjz]]; 
+			  	        		 }
+						else {
+							    $send=$keys[$gjz];  //$keys['关于我们'];	 
+								}
+				//		echo '<br>'.json_encode($send).'<br>';
+								
+				}
+						   
+						   $sendbak=$send;
+						   
+						 
+						   $cg=$cg."消息".$keyword.":<br>";
+						   $cg=$cg."发送报告:<br>";
+                foreach ($arr as $arr){ //群发--
+                      		
+					if($result=='|'){
+							   	$send['touser']=$arr;
+								$nickname=$arr1[$arr]['nickname'];
+								//logger('--'.$arr1[$arr]['id']);
+								
+							if($nickname==''){$nickname='会员'.$arr1[$arr]['id'];}
+		
+		                      if ($send['link']['title']!=''){	
+				$send['link']['title']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['link']['title']);
+			    $send['link']['title']=str_replace('[name]', trim($nickname),$send['link']['title']);
+			  			 }
+			   if ($send['miniprogrampage']['title']!=''){	
+				$send['miniprogrampage']['title']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['miniprogrampage']['title']);
+			    $send['miniprogrampage']['title']=str_replace('[name]', trim($nickname),$send['miniprogrampage']['title']);
+			 			 }
+			  if ($send['text']['content']!=''){	
+				$send['text']['content']=str_replace('[id]',$arr1[$arr]['id'],$sendbak['text']['content']);
+			  	$send['text']['content']=str_replace('[name]',trim($nickname),$send['text']['content']);
+		        $send['text']['content']=changeurl($send['text']['content']);
+
+				}
+		
+		
+		
+		
+							$data2=json_encode($send,JSON_UNESCAPED_UNICODE);
+			  				}else{
+									$nickname=$arr1[$arr]['nickname'];
+  						    $data2='{ "touser":"'.$arr.'",    "msgtype":"text",
+                            "text":    {         "content":"'.$nickname.':'.$keyword.'"    }  }'; //当没有约定好的回复时,这么回复。
+							}
+		 
+		            //      echo $data2.'<br>';
+
+      					   $bbb = http_post_data($url, $data2); 
+					        $i++;
+							$zt=json_decode($bbb, true)['errcode'];
+						   if ($zt==0)		      {$j++;     }
+						   	switch ($zt){
+							case 0: $zhuangtai='<font color=red>成功</font>';	
+							        break;
+							case -1: $zhuangtai='系统繁忙';	
+							        break;
+							case 40003: $zhuangtai='openid不对';	
+							        break;
+							      
+							case 45015: $zhuangtai='用户下线';	
+							        break;
+							case 45047: $zhuangtai='用户超额';	
+							        break;
+									
+							default: $zhuangtai='未知原因'.$zt;
+								
+							}		
+
+					 $cg= $cg.' '.$arr1[$arr]['id'].$arr1[$arr]['nickname'].' :'.$zhuangtai.'<br>';
+					} //发完
+				
+					  $cg=$cg."消息发送报告: [消息总数:".$i."] 发送成功:".$j."    ";
+							echo $cg;	
+					  $cg='<meta name="viewport" content="width=device-width,initial-scale=1.0, minimum-scale=1.0, maximum-scale=1.0, user-scalable=no"/>
+ <meta charset="utf-8">'.$cg;
+					  $res=@file_put_contents("temp/".$t."_baogao.html",  $cg);
+	 
+		}
+	
+		    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 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;
+}
+
+?>

+ 261 - 0
redirect_url.php

xqd
@@ -0,0 +1,261 @@
+ <meta charset="utf-8">
+<?php
+
+//redirect_url?auth_code=xxx&expires_in=600
+define("TOKEN", "eqcxcx");
+define("AppID", "wxd6972323f37bfdf0");//Appsecret
+define("Appsecret", "e7c30a645edec78aa64d30a92024237b");
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+
+
+ $auth_code= $_GET['auth_code'];
+ $ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');
+ $token= getToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');
+ 
+ $data='{
+"component_appid":"'.AppID.'" ,
+"authorization_code": "'.$auth_code.'"
+}';
+//使用授权码换取公众号或小程序的接口调用凭据和授权信息
+ $url="https://api.weixin.qq.com/cgi-bin/component/api_query_auth?component_access_token=$token";
+ //print_r($url);
+ //echo "<br>";
+ $authorization=http_post_data($url,$data);
+ $auth=json_decode($authorization,true);
+// print_r($authorization);
+ $authapp=$auth['authorization_info']['authorizer_appid'];//拿到被授权公众号的APPid 
+ //获取公众号信息
+ $url1="https://api.weixin.qq.com/cgi-bin/component/api_get_authorizer_info?component_access_token=$token";
+  $data='{
+"component_appid":"'.AppID.'" ,
+"authorizer_appid": "'.$authapp.'"
+}';
+  // echo "<br>";
+  $authorizer_info=http_post_data($url1,$data);
+ //  print_r($authorizer_info);
+ 
+  $info=json_decode($authorizer_info,true);
+  $name=$info['authorizer_info']['nick_name'];//公众号名称
+    if(trim($name)==''){
+	   print_r("超时,请返回重新授权.");
+	  	 exec("rm -f ".'jsonX/'.$AppID.'_token.json');
+	  exit;
+   }
+  $head_img=$info['authorizer_info']['head_img'];//公众号图片
+ // echo "<img src='$head_img'>";
+  $user_name=$info['authorizer_info']['user_name'];//公众号图片
+   //MiniProgramInfo
+   $mini=$info['authorizer_info']['MiniProgramInfo'];//
+    $renzheng=trim($info['authorizer_info']['verify_type_info']);
+	// print_r("qx:".json_encode($info['authorization_info']['func_info'][0]));
+	$quanxian=trim($info['authorization_info']['func_info'][0]['funcscope_category']['id']);
+  //  echo '<br> 权限:'.$quanxian;	
+	if (($quanxian==1) or ($quanxian==19)){
+	//	echo "已经获得消息权限.";
+	}else{
+	//	echo "没获得消息权限.";
+	}
+//	echo "<br>认证状态:".$renzheng;
+	if ($renzheng==0){
+		$rz='已认证,';
+	}else{
+		$rz='未认证,不支持接入';
+	}
+	
+   if(is_array($mini)){
+	   $leixing= "小程序";	   
+	   $huifu="进入小程序客服消息界面";
+   }else{
+	   $leixing= "公众号";
+	    $huifu="进入公众号界面,切换到发文字模式";
+   }
+   //
+   
+   
+ 
+ // print_r("<br>".$authorizer_info);
+  
+ 
+ if ($authapp<>''){
+	$res=file_put_contents("jsonX/auth_".$authapp.".json", $authorization);
+	$res=file_put_contents("jsonX/info_".$user_name.".json", $authorizer_info);
+	$zhuangtai= "授权成功";
+ }else{
+	$zhuangtai= "授权失败";
+ }
+   $zhungtai=   "您正在接入  $leixing : <font size=6 color=white>$name</font> ".$zhuangtai.$rz;
+   if (file_exists("jsonX/info_".$user_name.".json")){
+	   
+	   $zhungtai.="对接生成!";
+   }else{
+	   $zhungtai.="对接文件未生成,请重写对接!";
+   }
+   //判断有没有 后台对接文件 
+    if (file_exists("json/".$user_name.".json")){
+	   // $ok=true;
+	   $zhungtai.="<br>您已经配置相关对接文件.如需重新配置,请联系本站管理员.";
+   }else{
+	   $ok=true;
+	   $zhungtai.="<br>现在开始设置管理员,请".$huifu.",发送<font size=10 color=red>openid</font> 把收到的回复内容,填入下面的空格";
+   }
+   
+ ?>
+ 
+  <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"> 
+<head> 
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+<title>智能客服-开通中</title> 
+ 
+<style type="text/css"> 
+ 
+body
+  { 
+  background-image: url('http://web.woshangtong.com/attachment/images/global/fh0HERD4p8mr8pEsMmM0Gb9hENm9M8.jpg');
+  background-repeat: repeat-y;
+  }
+.align-center{ 
+position:fixed;left:30%;top:30%;margin-left:width/2;margin-top:height/2;
+.input_control{{
+  width:360px;
+  margin:20px auto;
+}
+input[type="text"],#btn1,#btn2{
+  box-sizing: border-box;
+  text-align:center;
+  font-size:1.4em;
+  height:2.7em;
+  border-radius:4px;
+  border:1px solid #c8cccf;
+  color:#6a6f77;
+  -web-kit-appearance:none;
+  -moz-appearance: none;
+  display:block;
+  outline:0;
+  padding:0 1em;
+  text-decoration:none;
+  width:100%;
+}
+input[type="text"]:focus{
+  border:1px solid #ff7496;
+}
+}
+
+</style> 
+</head> 
+<body> 
+<div class="align-center">
+<table >
+<tr>
+<th>
+<img width='200' src='<?=$head_img?>'>
+</th>
+</tr>
+<tr>
+<th>
+      <br>
+</th>
+</tr>
+<tr>
+<th>
+<?=$zhungtai?>
+ </th>
+</tr>
+<?if($ok){?>
+<tr>
+<th>
+     <form action="sq_kefu.php" method="post" >
+		
+		<input type="hidden" name="user_name" value="<?=$user_name?>" > 
+		<input  style="padding:8px 6px;" type="text" name="openid"  size="35"  value="" >
+		<input  style="padding:8px 6px;"  name="submit" type="submit" value="授权" onclick="return confirm('请确认openid输入正确,确定后不能更改');return false;"   > 
+	 
+	 </form>
+</th>
+<?}?>
+</tr>
+</table>
+</div> 
+</body> 
+</html> 
+
+ 
+ <?php
+// echo "<br>";
+ 
+// echo $_GET['expires_in'];
+ 
+ 	traceHttp();
+
+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_wx.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 http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+		
+	 function getToken($appid,$appsecret,$ComponentVerifyTicket,$jsonid){
+     
+    $file = file_get_contents("jsonX/{$appid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+        $data = array();
+        $data['component_access_token'] = getNewToken($appid,$appsecret,$ComponentVerifyTicket);
+        $data['expires']=time()+6200;
+        $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$appid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+        return $data['component_access_token'];
+    }else{
+        return $result['component_access_token'];
+    }
+}
+
+	function getNewToken($appid,$appsecret,$ComponentVerifyTicket){
+		$data_string='{
+"component_appid":"'.$appid.'" ,
+"component_appsecret": "'.$appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+    $access_token_Arr =http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+	//echo "<br>---";
+	
+	$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr['component_access_token'];
+}
+?>

+ 164 - 0
shouquan.php

xqd
@@ -0,0 +1,164 @@
+<?php
+/*
+    
+    CopyRight 2014 All Rights Reserved
+*/
+define("TOKEN", "eqcxcx");
+define("AppID", "wxd6972323f37bfdf0");//Appsecret
+define("Appsecret", "e7c30a645edec78aa64d30a92024237b");
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+	$ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');
+	//echo "ComponentVerifyTicket=>". $ComponentVerifyTicket;
+	 //2、获取第三方平台component_access_token
+    $token= getToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');
+	//echo "<br>";
+	//echo "token=>".$token;
+	
+	//3获取预授权码pre_auth_code
+	$data='{"component_appid":"'.AppID.'" }';
+	$url="https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=".$token;
+	
+	$pre_auth_code=http_post_data($url,$data);
+	//echo "<br>".$pre_auth_code;
+	$pre_auth_code=json_decode($pre_auth_code,true)['pre_auth_code'];
+	$redirect_url="http://web.woshangtong.com/addons/qidong_app/redirect_url.php";
+    $openurl="https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=".AppID."&pre_auth_code=$pre_auth_code&redirect_uri=$redirect_url&auth_type=";
+	 
+	//echo "<br>";
+
+	//echo "pre_auth_code=>".$pre_auth_code;
+
+   // echo "<br>";
+?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"> 
+<head> 
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+<title>在手机微信上做客服,30秒自主开通</title> 
+ 
+<style type="text/css"> 
+.center
+{
+margin-left:auto;
+opacity:0.5;
+    padding:10px; width:80px; height:80px;
+    
+    -moz-border-radius: 15px;      
+    -webkit-border-radius: 15px;   
+    border-radius:15px;           
+ 
+}
+body
+  { 
+  background-image: url('http://web.woshangtong.com/attachment/images/global/fh0HERD4p8mr8pEsMmM0Gb9hENm9M8.jpg');
+  background-repeat: repeat-y;
+  }
+.align-center{ 
+position:fixed;left:40%;top:30%;margin-left:width/2;margin-top:height/2;
+}
+</style> 
+</head> 
+<body> 
+<div class="align-center">
+<table >
+<tr>
+<th>
+<img width='200' src='logo.png'>
+</th>
+</tr>
+<tr>
+<th>
+      <br>
+</th>
+</tr>
+<tr>
+<th>
+<? if ($pre_auth_code<>''){?>
+<a href='<?php  echo $openurl ;?>'><img src='https://open.weixin.qq.com/zh_CN/htmledition/res/assets/res-design-download/icon_button3_1.png'></a>
+<? }else{ echo "请刷新本页.";}?>
+</th>
+</tr>
+</table>
+</div> 
+<div>
+<?echo zhucelist('jsonX/zhucelist.json');?>
+</div>
+</body> 
+</html> 
+
+ 
+<?php
+
+
+
+
+
+		 function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+	 function getToken($appid,$appsecret,$ComponentVerifyTicket,$jsonid){
+     
+    $file = file_get_contents("jsonX/{$appid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+        $data = array();
+        $data['component_access_token'] = getNewToken($appid,$appsecret,$ComponentVerifyTicket);
+        $data['expires']=time()+6200;
+        $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$appid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+        return $data['component_access_token'];
+    }else{
+        return $result['component_access_token'];
+    }
+}
+
+	function getNewToken($appid,$appsecret,$ComponentVerifyTicket){
+		$data_string='{
+"component_appid":"'.$appid.'" ,
+"component_appsecret": "'.$appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+    $access_token_Arr =http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+	//echo "<br>---";
+	
+	$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr['component_access_token'];
+}
+	
+		function zhucelist($path){
+		$lines = file($path);
+        $list='';
+		$imglist='';
+		foreach ($lines as $line) {
+        $line = rtrim($line);
+        $i++;
+        $zhuce=json_decode($line, true);
+        $list=$zhuce['name'].'  '.$list;
+		$imglist=' <img class="center" title="'.$zhuce['name'].'"  src="'.$zhuce['head_img'].'">  '.$imglist;
+ // more statements...
+        }//如果没找到.
+		return $imglist;
+		
+	}
+	
+	?>

+ 1 - 0
shouquan33.php

xqd
@@ -0,0 +1 @@
+更新了....

Разлика између датотеке није приказан због своје велике величине
+ 1 - 0
site.php


+ 2 - 0
siteinfo.js

xqd
@@ -0,0 +1,2 @@
+var siteinfo = { "uniacid": "84", "acid": "84", "multiid": "0", "version": "1.0", "siteroot": "https://web.woshangtong.com/app/index.php", "design_method": "3" };
+module.exports = siteinfo;

+ 301 - 0
sq.php

xqd
@@ -0,0 +1,301 @@
+<?php
+/*
+    方倍工作室 http://www.cnblogs.com/txw1958/
+    CopyRight 2014 All Rights Reserved
+*/
+	//echo "success";
+define("TOKEN", "eqcxcx");
+define("AppID", "wxd6972323f37bfdf0");//Appsecret
+define("Appsecret", "e7c30a645edec78aa64d30a92024237b");
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+require_once('php/wxBizMsgCrypt.php');
+
+$wechatObj = new wechatCallbackapiTest();
+if (!isset($_GET['echostr'])) {
+    $wechatObj->responseMsg();
+}else{
+    $wechatObj->valid();
+}
+
+class wechatCallbackapiTest
+{
+    //验证签名
+    public function valid()
+    {
+        $echoStr = $_GET["echostr"];
+        $signature = $_GET["signature"];
+        $timestamp = $_GET["timestamp"];
+        $nonce = $_GET["nonce"];
+        $tmpArr = array(TOKEN, $timestamp, $nonce);
+        sort($tmpArr);
+        $tmpStr = implode($tmpArr);
+        $tmpStr = sha1($tmpStr);
+        if($tmpStr == $signature){
+  //          echo $echoStr;
+            exit;
+        }
+    }
+
+    //响应消息
+    public function responseMsg()
+    {
+        $timestamp  = $_GET['timestamp'];
+        $nonce = $_GET["nonce"];
+        $msg_signature  = $_GET['msg_signature'];
+        $encrypt_type = (isset($_GET['encrypt_type']) && ($_GET['encrypt_type'] == 'aes')) ? "aes" : "raw";
+        
+        $postStr = $GLOBALS["HTTP_RAW_POST_DATA"];
+        if (!empty($postStr)){
+            //解密
+            if ($encrypt_type == 'aes'){
+                $pc = new WXBizMsgCrypt(TOKEN, EncodingAESKey, AppID);                
+                $this->logger(" D \r\n".$postStr);
+                $decryptMsg = "";  //解密后的明文
+                $errCode = $pc->DecryptMsg($msg_signature, $timestamp, $nonce, $postStr, $decryptMsg);
+                $postStr = $decryptMsg;
+            }
+            $this->logger(" R \r\n".$postStr);
+            $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+            $RX_TYPE = trim($postObj->MsgType);
+			$ComponentVerifyTicket = trim($postObj->ComponentVerifyTicket);
+			$this->logger(" T: \r\n".$ComponentVerifyTicket);
+			if($ComponentVerifyTicket<>''){//保存即可.
+			
+				$res=file_put_contents("json/VerifyTicket.json", $ComponentVerifyTicket);
+				if (ob_get_level() == 0) ob_start();
+
+ ob_implicit_flush(true);
+ ob_clean();
+ header("Content-type: text/plain");
+ #log_msg(headers_list());
+ echo("success");
+ ob_flush();
+ flush();
+ ob_end_flush();
+
+ die();
+ exit();
+				$data_string='{
+"component_appid":"'.AppID.'" ,
+"component_appsecret": "'.Appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+		//	$bbb =  http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+				 $this->logger(" B \r\n".$bbb);
+			
+			//	exit;
+				//echo "sucsess";
+			}
+            //消息类型分离
+            switch ($RX_TYPE)
+            {
+                case "event":
+                    $result = $this->receiveEvent($postObj);
+                    break;
+                case "text":
+                    $result = $this->receiveText($postObj);
+                    break;
+            }
+            $this->logger(" Re: \r\n".$RX_TYPE.$result);
+            //加密
+            if ($encrypt_type == 'aes'){
+                $encryptMsg = ''; //加密后的密文
+                $errCode = $pc->encryptMsg($result, $timeStamp, $nonce, $encryptMsg);
+                $result = $encryptMsg;
+                $this->logger(" E \r\n".$result);
+            }
+            echo $result;
+        }else {
+            echo "";
+            exit;
+        }
+    }
+
+    //接收事件消息
+    private function receiveEvent($object)
+    {
+        $content = "";
+        switch ($object->Event)
+        {
+            case "subscribe":
+                $content = "欢迎关注方倍工作室 ";
+                break;
+        }
+
+        $result = $this->transmitText($object, $content);
+        return $result;
+    }
+
+    //接收文本消息
+    private function receiveText($object)
+    {
+        $keyword = trim($object->Content);
+        if (strstr($keyword, "文本")){
+            $content = "这是个文本消息";
+        }else if (strstr($keyword, "单图文")){
+            $content = array();
+            $content[] = array("Title"=>"单图文标题",  "Description"=>"单图文内容", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
+        }else if (strstr($keyword, "图文") || strstr($keyword, "多图文")){
+            $content = array();
+            $content[] = array("Title"=>"多图文1标题", "Description"=>"", "PicUrl"=>"http://discuz.comli.com/weixin/weather/icon/cartoon.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
+            $content[] = array("Title"=>"多图文2标题", "Description"=>"", "PicUrl"=>"http://d.hiphotos.bdimg.com/wisegame/pic/item/f3529822720e0cf3ac9f1ada0846f21fbe09aaa3.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
+            $content[] = array("Title"=>"多图文3标题", "Description"=>"", "PicUrl"=>"http://g.hiphotos.bdimg.com/wisegame/pic/item/18cb0a46f21fbe090d338acc6a600c338644adfd.jpg", "Url" =>"http://m.cnblogs.com/?u=txw1958");
+        }else if (strstr($keyword, "音乐")){
+            $content = array();
+            $content = array("Title"=>"最炫民族风", "Description"=>"歌手:凤凰传奇", "MusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3", "HQMusicUrl"=>"http://121.199.4.61/music/zxmzf.mp3");
+        }else{
+            $content = date("Y-m-d H:i:s",time())."\n".$object->FromUserName."\n技术支持 方倍工作室";
+        }
+
+        if(is_array($content)){
+            if (isset($content[0])){
+                $result = $this->transmitNews($object, $content);
+            }else if (isset($content['MusicUrl'])){
+                $result = $this->transmitMusic($object, $content);
+            }
+        }else{
+            $result = $this->transmitText($object, $content);
+        }
+        return $result;
+    }
+
+    //回复文本消息
+    private function transmitText($object, $content)
+    {
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[text]]></MsgType>
+    <Content><![CDATA[%s]]></Content>
+</xml>";
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), $content);
+        return $result;
+    }
+
+    //回复图文消息
+    private function transmitNews($object, $newsArray)
+    {
+        if(!is_array($newsArray)){
+            return;
+        }
+        $itemTpl = "        <item>
+            <Title><![CDATA[%s]]></Title>
+            <Description><![CDATA[%s]]></Description>
+            <PicUrl><![CDATA[%s]]></PicUrl>
+            <Url><![CDATA[%s]]></Url>
+        </item>
+";
+        $item_str = "";
+        foreach ($newsArray as $item){
+            $item_str .= sprintf($itemTpl, $item['Title'], $item['Description'], $item['PicUrl'], $item['Url']);
+        }
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[news]]></MsgType>
+    <ArticleCount>%s</ArticleCount>
+    <Articles>
+$item_str    </Articles>
+</xml>";
+
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time(), count($newsArray));
+        return $result;
+    }
+
+    //回复音乐消息
+    private function transmitMusic($object, $musicArray)
+    {
+        $itemTpl = "<Music>
+        <Title><![CDATA[%s]]></Title>
+        <Description><![CDATA[%s]]></Description>
+        <MusicUrl><![CDATA[%s]]></MusicUrl>
+        <HQMusicUrl><![CDATA[%s]]></HQMusicUrl>
+    </Music>";
+
+        $item_str = sprintf($itemTpl, $musicArray['Title'], $musicArray['Description'], $musicArray['MusicUrl'], $musicArray['HQMusicUrl']);
+
+        $xmlTpl = "<xml>
+    <ToUserName><![CDATA[%s]]></ToUserName>
+    <FromUserName><![CDATA[%s]]></FromUserName>
+    <CreateTime>%s</CreateTime>
+    <MsgType><![CDATA[music]]></MsgType>
+    $item_str
+</xml>";
+
+        $result = sprintf($xmlTpl, $object->FromUserName, $object->ToUserName, time());
+        return $result;
+    }
+
+    //日志记录
+    public 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 if($_SERVER['REMOTE_ADDR'] != "127.0.0.1"){ //LOCAL
+            $max_size = 500000;
+            $log_filename = "log_wx.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);
+        }
+    }
+	public 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'];
+    }
+}
+
+	public 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'];
+}
+	public 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);
+}
+    public function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+
+
+}
+?>

+ 66 - 0
sq1.php

xqd
@@ -0,0 +1,66 @@
+<?php
+include_once "php/wxBizMsgCrypt.php";
+$encodingAesKey = "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl";
+$token = "eqcxcx";
+$appId = "wxd6972323f37bfdf0";
+//traceHttp();
+logger('timestamp:'.$_REQUEST['timestamp']);
+logger('msg_signature:'.$_REQUEST['msg_signature']);
+$msg_sign=$_REQUEST['msg_signature'];
+$timeStamp=$_REQUEST['timestamp'];
+$nonce=$_REQUEST['nonce'];
+
+logger('signature:'.$_REQUEST['signature']);
+logger('nonce:'.$_REQUEST['nonce']);
+echo "success";
+    // $postStr = $GLOBALS["HTTP_RAW_POST_DATA"]; //获取数据 
+	// $postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);
+	// logger($postObj);
+//exit;	
+ $encryptMsg = file_get_contents('php://input');
+logger($encryptMsg);
+$xml_tree = new DOMDocument();
+$xml_tree->loadXML($encryptMsg);
+$array_e = $xml_tree->getElementsByTagName('Encrypt');
+//$array_s = $xml_tree->getElementsByTagName('MsgSignature');
+$encrypt = $array_e->item(0)->nodeValue;
+logger($encrypt);
+$msg_sign = $array_s->item(0)->nodeValue;
+//logger($msg_sign);
+
+$format = "<xml><AppId><![CDATA[toUser]]></AppId><Encrypt><![CDATA[%s]]></Encrypt></xml>";
+$from_xml = sprintf($format, $encrypt);
+ 
+// 第三方收到公众号平台发送的消息
+$msg = '';
+$errCode = $pc->decryptMsg($msg_sign, $timeStamp, $nonce, $encryptMsg, $msg);
+if ($errCode == 0) {
+	logger("解密后: " . $msg . "\n");
+} else {
+	logger($errCode . "\n");
+}
+
+	
+	
+	
+
+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_wx.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);
+    }
+}
+
+?>

+ 285 - 0
sq_kefu.php

xqd
@@ -0,0 +1,285 @@
+<?php
+/*
+    易企程客服平台
+    CopyRight 2018 All Rights Reserved
+*/
+define("TOKEN", "eqcxcx");
+define("AppID", "wxd6972323f37bfdf0");//Appsecret
+define("Appsecret", "e7c30a645edec78aa64d30a92024237b");
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+$user_name	 = trim($_POST['user_name']);
+$openid	     = trim($_POST['openid']);
+//下发一条确认消息 .
+				$ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');//yaoshi
+				$Mtoken=    getMToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');//拿到自己的密钥
+				//$this->logger(" M \r\n".$ComponentVerifyTicket);
+				//$this->logger(" M \r\n".$Mtoken);
+				$ToUserName=$user_name;	//  获取当前公众号的name 
+				
+				$info = json_decode(file_get_contents("jsonX/info_".$ToUserName.".json"),true);//读取设置文件.
+				$mini=$info['authorizer_info']['MiniProgramInfo'];
+				if  (is_array($mini))  {	   $xcx= true;	      }else{	   $xcx= false;   }
+				$name=$info['authorizer_info']['nick_name'];//公众号名称
+				$signature=$info['authorizer_info']['signature'];//公众号名称 signature
+				$head_img=$info['authorizer_info']['head_img'];//公众号图片
+				$Cappid=$info['authorization_info']['authorizer_appid'];
+				$refresh_token=$info['authorization_info']['authorizer_refresh_token'];
+			
+				$Atoken= getCToken(AppID,$Cappid,$refresh_token,$Mtoken);
+				$url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=".$Atoken;
+				$aaa=sendmsg($openid,'text','收到本信息,表明您的设置已经成功!可以使用啦','',$url);//给用户发消息.
+				  if (json_decode($aaa, true)['errcode']==0){
+					//发送成功!设置路径
+					  
+					//
+					$arr=array(
+						'uniacid' => $ToUserName,
+						'bakuniacid' => 149,
+						'website' => 'http://'.$_SERVER['HTTP_HOST'],
+						'openids' => $openid,
+						'结束语'   => '感谢您访问'.$name
+					);
+					$res=file_put_contents("json/".$ToUserName.".json",  json_encode($arr));
+					$kefuarr=array($openid=>"");
+					$kefulistarr=array($openid=>"客服");
+					$res=file_put_contents("json/".$ToUserName."_kefu.json",  json_encode($kefuarr));
+					$res=file_put_contents("json/".$ToUserName."_kefulist.json",  json_encode($kefulistarr));
+					if(file_exists("json/".$ToUserName."_kefulist.json")){
+						$bakmsg="设置成功!";
+						$path="jsonX/zhucelist.json";
+						$data=array('ToUserName'=>$ToUserName,'name'=>$name,'head_img'=>$head_img);
+						savejson($path,json_encode($data));
+						}
+						else{$bakmsg="文件创建失败,请检查权限!";}
+					
+				  }else{
+					//openid不对 .提示重新发送.
+					  $bakmsg= "openid不对,请重新设置.";
+					
+				  }
+	 
+?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"> 
+<head> 
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+<title>智能客服-绑定客服</title> 
+ 
+<style type="text/css"> 
+ .center
+{
+margin-left:auto;
+opacity:0.5;
+width:70%;
+background-color:#b0e0e6;
+}
+body
+  { 
+  background-image: url('http://web.woshangtong.com/attachment/images/global/fh0HERD4p8mr8pEsMmM0Gb9hENm9M8.jpg');
+  background-repeat: repeat-y;
+  }
+.align-center{ 
+position:fixed;left:10%;top:30%;margin-left:width/2;margin-top:height/2;
+}
+</style> 
+</head> 
+<body> 
+<div class="align-center">
+<table >
+<tr>
+<th>
+<img width='200' src='logo.png'>
+</th>
+ 
+<th width=400 >
+<div  class="center">
+      <br><?if($bakmsg=="设置成功!"){?>
+	  常用命令:<br>
+	  下一个:接通下一个客户<br>
+	  清零  :清除排队用户<br>
+	  排队	:查看排队用户<br>
+</div>
+</th>
+ 
+<th>
+<div class="center">
+	  高级版功能:<br>
+	  多客服席位:可设置多个客服同时接待<br>
+	  自定义回复:可设置多个自动回复内容,支持:文字/图片/图文/小程序<br>
+	  群发功能:可对有效会话期间的所有用户群发.<br>
+	  私聊功能:可主动发起对某个用户的聊天<br>
+	  专属客服支持:客服在线答疑.<br>
+	  
+	  每年仅需300元起,即可立即享有本服务.开通联系QQ:511079021<br>
+	  
+	  本系统正在微擎热卖:<a href='https://s.we7.cc/module-9528.html'>点此购买</a>
+</div>	  
+	  <?}?>
+</th>
+ 
+<th>
+ <font size=20 color=red><?=$bakmsg?></font>
+ </th>
+</tr>
+</table>
+</div> 
+</body> 
+</html> 
+
+ 
+<?php
+
+
+
+
+
+		 function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+ 	 function getMToken($appid,$appsecret,$ComponentVerifyTicket,$jsonid){
+     
+    $file = file_get_contents("jsonX/{$appid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+        $data = array();
+        $data['component_access_token'] = getNewToken($appid,$appsecret,$ComponentVerifyTicket);
+        $data['expires']=time()+7200;
+        $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$appid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+        return $data['component_access_token'];
+    }else{
+        return $result['component_access_token'];
+    }
+}
+
+ 	function getNewToken($appid,$appsecret,$ComponentVerifyTicket){
+		$data_string='{
+"component_appid":"'.$appid.'" ,
+"component_appsecret": "'.$appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+    $access_token_Arr = http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+	//echo "<br>---";
+	
+	$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr['component_access_token'];
+}
+
+ 	function getNewCToken($Mappid,$Cappid,$refresh_token,$Mtoken){
+		$data_string='{
+"component_appid":"'.$Mappid.'",
+"authorizer_appid":"'.$Cappid.'",
+"authorizer_refresh_token":"'.$refresh_token.'",
+}';
+    $access_token_Arr = http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_authorizer_token?component_access_token=$Mtoken", $data_string);
+	 
+	
+	//$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr;
+}
+
+ 	 function getCToken($Mappid,$Cappid,$refresh_token,$Mtoken){
+     
+    $file = file_get_contents("jsonX/{$Cappid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+       // $data = array();
+        $jsonStr  =  getNewCToken($Mappid,$Cappid,$refresh_token,$Mtoken);
+        
+      //  $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$Cappid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+		$data=json_decode($jsonStr,true);
+        return $data['authorizer_access_token'];
+    }else{
+        return $result['authorizer_access_token'];
+    }
+}
+	
+function sendmsg($openid,$msgtype,$keyword,$postObj,$url){
+	//消息处理模块.
+	 	switch ($msgtype)
+		{
+			case 'text':
+				$data1='{ "touser":"'.$openid.'",    "msgtype":"text",
+							"text":    {         "content":" '.$keyword.' "    }  }';
+				break;
+			case 'image':
+			     
+				$MediaId = $postObj->MediaId;
+				 
+				$data1=' {   "touser":"'.$openid.'",     "msgtype":"image", 
+								"image":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'voice':
+				 
+				$MediaId = $postObj->MediaId;
+				 
+				$Recognition   = $postObj->Recognition;
+			     $data1=' {   "touser":"'.$openid.'",     "msgtype":"voice", 
+ 			          "voice":     {      "media_id":"'.$MediaId.'"    }}';
+			    break;
+			case 'miniprogrampage':
+				$data1='';
+			break;
+			default:
+			     $data1='';
+		}
+		
+	 	$aaa = http_post_data($url, $data1);
+		
+	//	 echo '发送消息:'.$data1.$aaa;
+	//	logger('@@@@@@@@'.$data1.$aaa);
+		
+		return $aaa;
+}
+
+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;
+ }
+ 
+  }
+ 
+	?>

+ 148 - 0
sq_test.php

xqd
@@ -0,0 +1,148 @@
+<?php
+/*
+    方倍工作室 http://www.cnblogs.com/txw1958/
+    CopyRight 2014 All Rights Reserved
+*/
+define("TOKEN", "eqcxcx");
+define("AppID", "wxd6972323f37bfdf0");//Appsecret
+define("Appsecret", "e7c30a645edec78aa64d30a92024237b");
+define("EncodingAESKey", "53o42sbbzslie4tjbll3ta5zlwe11rrk53o42sbbzsl");
+	$ComponentVerifyTicket = file_get_contents('json/VerifyTicket.json');
+	//echo "ComponentVerifyTicket=>". $ComponentVerifyTicket;
+	 //2、获取第三方平台component_access_token
+    $token= getToken(AppID,Appsecret,$ComponentVerifyTicket,'11111');
+	//echo "<br>";
+	//echo "token=>".$token;
+	
+	//3获取预授权码pre_auth_code
+	$data='{"component_appid":"'.AppID.'" }';
+	$url="https://api.weixin.qq.com/cgi-bin/component/api_create_preauthcode?component_access_token=".$token;
+	
+	$pre_auth_code=http_post_data($url,$data);
+	//echo "<br>".$pre_auth_code;
+	$pre_auth_code=json_decode($pre_auth_code,true)['pre_auth_code'];
+	$redirect_url="http://web.woshangtong.com/addons/qidong_app/redirect_url.php";
+    $openurl="https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=".AppID."&pre_auth_code=$pre_auth_code&redirect_uri=$redirect_url&auth_type=";
+	 
+	//echo "<br>";
+
+	//echo "pre_auth_code=>".$pre_auth_code;
+
+   // echo "<br>";
+?>
+ <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd"> 
+<html xmlns="http://www.w3.org/1999/xhtml" lang="zh-cn"> 
+<head> 
+<meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> 
+<title>智能客服-微信授权演示</title> 
+ 
+<style type="text/css"> 
+ 
+body
+  { 
+  background-image: url('http://web.woshangtong.com/attachment/images/global/fh0HERD4p8mr8pEsMmM0Gb9hENm9M8.jpg');
+  background-repeat: repeat-y;
+  }
+.align-center{ 
+position:fixed;left:40%;top:30%;margin-left:width/2;margin-top:height/2;
+}
+</style> 
+</head> 
+<body> 
+<div class="align-center">
+<table >
+<tr>
+<th>
+<img width='200' src='logo.png'>
+</th>
+</tr>
+<tr>
+<th>
+      <br>
+</th>
+</tr>
+<tr>
+<th>
+<? if ($pre_auth_code<>''){?>
+<a href='<?php  echo $openurl ;?>'><img src='https://open.weixin.qq.com/zh_CN/htmledition/res/assets/res-design-download/icon_button3_1.png'></a>
+<? }else{ echo "请刷新本页.";}?>
+</th>
+</tr>
+</table>
+</div> 
+</body> 
+</html> 
+
+ 
+<?php
+
+
+
+
+
+		 function http_post_data($url, $data_string) {    
+    
+        $ch = curl_init();    
+        curl_setopt($ch, CURLOPT_POST, 1);    
+        curl_setopt($ch, CURLOPT_URL, $url);    
+        curl_setopt($ch, CURLOPT_POSTFIELDS, $data_string);    
+        curl_setopt($ch, CURLOPT_HTTPHEADER, array(    
+            'Content-Type: application/json; charset=utf-8',    
+            'Content-Length: ' . strlen($data_string))    
+        );    
+        ob_start();    
+        curl_exec($ch);    
+        $return_content = ob_get_contents();    
+        //echo $return_content."<br>";  
+        ob_end_clean();    
+    
+        $return_code = curl_getinfo($ch, CURLINFO_HTTP_CODE);    
+      //  return array($return_code, $return_content);    
+      return  $return_content;  
+    }   
+	
+	 function getToken($appid,$appsecret,$ComponentVerifyTicket,$jsonid){
+     
+    $file = file_get_contents("jsonX/{$appid}_token.json",true);
+    $result = json_decode($file,true);
+if (time() > $result['expires']){
+        $data = array();
+        $data['component_access_token'] = getNewToken($appid,$appsecret,$ComponentVerifyTicket);
+        $data['expires']=time()+7200;
+        $jsonStr =  json_encode($data);
+        $fp = fopen("jsonX/{$appid}_token.json", "w");
+        fwrite($fp, $jsonStr);
+        fclose($fp);
+        return $data['component_access_token'];
+    }else{
+        return $result['component_access_token'];
+    }
+}
+
+	function getNewToken($appid,$appsecret,$ComponentVerifyTicket){
+		$data_string='{
+"component_appid":"'.$appid.'" ,
+"component_appsecret": "'.$appsecret.'",
+"component_verify_ticket": "'.$ComponentVerifyTicket.'"
+}';
+    $access_token_Arr =http_post_data("https://api.weixin.qq.com/cgi-bin/component/api_component_token", $data_string);
+	//echo "<br>---";
+	
+	$access_token_Arr=json_decode($access_token_Arr,true);
+    return $access_token_Arr['component_access_token'];
+}
+	function zhucelist($path){
+		$lines = file($path);
+        $list='';
+		foreach ($lines as $line) {
+        $line = rtrim($line);
+        $i++;
+        $zhuce=json_decode($line, true);
+        $list=$list.'  '.$zhuce['name'];
+ // more statements...
+        }//如果没找到.
+		return $list;
+		
+	}
+	
+	?>


+ 316 - 0
static/evaluate.css

xqd
@@ -0,0 +1,316 @@
+ 
+ html,
+ body {
+     margin: 0;
+     padding: 0;
+     width: 100%;
+     height: 100%;
+ }
+ .evabody{
+     background: url(./images/loading.gif) no-repeat center center;
+ }
+ .evamode {
+     display: none;
+     width: 100%;
+     height: 100%;
+     overflow-y:scroll;
+     position: relative;
+     text-align: center;
+     background: #fff;
+ }
+ 
+ .evamode .h1 {
+     font-size: 1.2em;
+     color: #333333;
+     height: 50px;
+     line-height: 50px;
+ }
+ 
+ .evamode .wether {
+     overflow: hidden;
+     width: 60%;
+     margin: 16px auto;
+ }
+ 
+ .evamode .wether span:first-child {
+     margin-left: 0;
+ }
+ 
+ .evamode .wether span {
+     display: inline-block;
+     float: left;
+     height: 44px;
+     line-height: 44px;
+     border: 1px solid #c5cecb;
+     border-radius: 4px;
+     margin-left: 10%;
+     width: 40%;
+ }
+ 
+ .evamode .wether span.active {
+     color: #fff;
+     border: 1px solid #09aeb0;
+     background: #09aeb0;
+ }
+ /* 评价自定义弹窗样式 */
+ 
+ .evamode .operateType {
+     float: left;
+     width: 100%;
+     margin-bottom: 20px;
+ }
+ 
+ .evamode .operateType .operateTypeBtn {
+     overflow: hidden;
+     width: 240px;
+     margin: auto;
+ }
+ 
+ .evamode .operateType .solve {
+     float: left;
+     width: 84px;
+     height: 30px;
+     line-height: 30px;
+     padding-right: 20px;
+     font-size: 14px;
+     color: #8b98ad;
+     text-align: right;
+     border: 1px solid #d6dbe5;
+     border-radius: 4px;
+     cursor: pointer;
+ }
+ 
+ .evamode .operateType .solved span {
+     display: inline-block;
+     float: left;
+     width: 20px;
+     height: 20px;
+     margin-left: 16px;
+     margin-top: 8px;
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -19px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .unSolved span {
+     display: inline-block;
+     float: left;
+     width: 20px;
+     height: 20px;
+     margin-left: 16px;
+     margin-top: 8px;
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -80px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .evaluateDetail {
+     display: none;
+ }
+ 
+ .evamode .operateType .solveActive {
+     background: #0daeaf;
+     color: #fff;
+     border: 1px solid #0daeaf;
+ }
+ 
+ .evamode .operateType .solveActive span {
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: 0px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .unsolveActive {
+     background: #0daeaf;
+     color: #fff;
+     border: 1px solid #0daeaf;
+ }
+ 
+ .evamode .operateType .unsolveActive span {
+     background-image: url(./images/evaluateicon.png);
+     background-repeat: no-repeat;
+     background-position: -60px 0px;
+     background-size: 100px 14px;
+ }
+ 
+ .evamode .operateType .operateTypeTitle {
+     width: 100%;
+     text-align: center;
+     margin: 30px 0;
+     color: #555556;
+     font-size: 15px;
+ }
+ 
+ .evamode .h2 {
+     clear: both;
+     float: left;
+     width: 100%;
+     text-align: center;
+     font-size: 0.8em;
+     color: #333333;
+     margin-bottom: 20px;
+ }
+ 
+ .evamode .situation {
+     width: 300px;
+     margin: auto;
+ }
+ 
+ .evamode .situation span {
+     display: inline-block;
+     color: #686d70;
+     border-radius: 4px;
+     width: 45%;
+     height: 28px;
+     line-height: 28px;
+     margin-bottom: 18px;
+     font-size: 0.8em;
+     border: 1px solid #c4cdcc;
+     text-align: center
+ }
+ 
+ .evamode .situation .active {}
+ 
+ .evamode textarea {
+     resize: none;
+     width: 80%;
+     height: 62px;
+     margin: auto;
+     margin-bottom: 50px;
+     background: #fff;
+     font-size: 0.8em;
+     color: #676c6f;
+     padding: 10px;
+     border-radius: 4px;
+     border: 1px solid #ddd;
+ }
+ 
+
+ 
+ .evamode .evaluateTipTitle {
+     font-size: 1em;
+     color: rgba(51, 51, 51, 0.98);
+     letter-spacing: 0;
+     text-align: center;
+     padding-top: 20px;
+ }
+ 
+ .evamode .evaluateTip {
+     float: left;
+     width: 100%;
+     font-size: 0.9em;
+     color: #faba4a;
+     letter-spacing: 0;
+     padding-bottom: 10px;
+     text-align: center;
+ }
+ 
+ #star {
+     position: relative;
+     width: 100%;
+     margin: 10px 0;
+ }
+ 
+ #star ul {
+     list-style: none;
+     margin: 0 auto;
+     padding: 0;
+     overflow: hidden;
+     display: inline-block;
+ }
+ 
+ #star li {
+     float: left;
+     width: 45px;
+     height: 35px;
+     cursor: pointer;
+     text-indent: -9999px;
+     background-position: -109px -242px;
+     background-image: url(./images/icoGroup2X.png);
+     background-size: 350px 355px;
+ }
+ 
+ #star li.on {
+     background-position: -55px -242px;
+ }
+ 
+ .showTip {
+     position: absolute;
+     z-index: 100;
+     width: 140px;
+     height: 40px;
+     background: #272b2c;
+     opacity: 0.8;
+     border-radius: 6px;
+ }
+ 
+ .showTip p {
+     width: 100%;
+     height: 40px;
+     line-height: 40px;
+     color: #fff;
+     font-size: 1em;
+     text-align: center;
+ }
+ 
+ .evaSuccess {}
+ 
+ .evaSuccess .icon {
+     width: 200px;
+     height: 170px;
+     margin: 30px auto;
+     background: url(./images/successIcon.png) no-repeat;
+ }
+ 
+ .evaSuccess .tip {
+     width: 240px;
+     font-size: 17px;
+     color: rgba(51, 51, 51, 0.98);
+     letter-spacing: 0;
+     line-height: 26px;
+     text-align: center;
+     margin: auto;
+ }
+ /* iphone6 Plus */
+ 
+ @media (min-device-width: 414px) and (max-device-width: 736px) {
+     #star li {
+         background-image: url(./images/icoGroup2X.png);
+     }
+ }
+ 
+ .evamsg {
+     position: absolute;
+     z-index: 1000;
+     width: 200px;
+     height: 40px;
+     background: #000;
+     opacity: 0.7;
+     border-radius: 6px;
+ }
+ 
+ .evamsg p {
+     width: 100%;
+     height: 40px;
+     line-height: 40px;
+     color: #fff;
+     font-size: 14px;
+     text-align: center;
+ }
+  .submit {
+     display:none;
+     position: absolute;
+     bottom: 0px;
+     left: 0;
+     width: 100%;
+     height: 50px;
+     line-height: 50px;
+     text-align: center;
+     font-size: 1em;
+     color: #fff;
+     background: #0daeaf;
+     text-decoration: none;
+ }

+ 332 - 0
static/evaluate.js

xqd
@@ -0,0 +1,332 @@
+$(document.body).ready(function() {
+    var isRepeat = false,
+        score = 5,
+        tag = "",
+        solved = 1,
+        remar = "";
+    var param = {};
+    var humanSetInnerStepOneHtml = function() {
+        $aLi = $("#star li");
+        $(".js-solved").addClass("solveActive");
+        fnPoint(score);
+        $(".js-evaluateTip").html(config[score - 1].scoreExplain);
+        var iStar = 0;
+        for (i = 1; i <= $aLi.length; i++) {
+            $aLi[i - 1].index = i;
+            //鼠标移过显示分数
+            $aLi[i - 1].onmouseover = function() {
+                fnPoint(this.index);
+            };
+            //鼠标离开后恢复上次评分
+            $aLi[i - 1].onmouseout = function() {
+                fnPoint(this.index);
+            };
+            //点击后进行评分处理
+            $($aLi[i - 1]).bind("click", function() {
+                iStar = this.index;
+                switch (iStar) {
+                    case 1: //一星
+                    case 2: //二星
+                    case 3: //三星
+                    case 4: //四星
+                        score = iStar;
+                        humanSetInnerStepTwoHtml(iStar);
+                        $(".js-evaluateDetail").css("display", "block");
+                        break;
+                    case 5: //五星
+                        score = 5;
+                        $(".js-evaluateDetail").css("display", "none");
+                        break;
+                };
+                $(".js-evaluateTip").html(config[score - 1].scoreExplain);
+
+            });
+        };
+        if (config[0].isQuestionFlag) {
+            $(".js-operateType").html('<p class="operateTypeTitle">请问客服是否解决了您的问题?</p>' +
+                '<div class="operateTypeBtn">' +
+                '<p class="solve solved js-solved solveActive"><span></span>已解决</p>' +
+                '<p class="solve unSolved js-unSolved" style="margin-left:25px;"><span></span>未解决</p>' +
+                '</div>');
+        }
+
+
+    };
+    var humanSetInnerStepTwoHtml = function() {
+        var list = [];
+
+        if (config[score - 1].labelName) {
+            list = config[score - 1].labelName.split(",");
+
+        }
+        //去掉空标签
+        for (var i = 0; i < list.length; i++) {
+            if (list[i] == "") {
+                list.splice(i, 1);
+            }
+        };
+        var $li = "";
+        for (var i = 0; i < list.length; i++) {
+            if (i % 2 == 0) {
+                $li += '<span class="tag js-situationSpan" style="float:left;">' + list[i] + '</span>';
+            } else {
+                $li += '<span class="tag js-situationSpan" style="float:right;">' + list[i] + '</span>';
+            }
+        };
+        if (list.length > 0) {
+            $(".js-h2").css('display',"block");
+        } else {
+            $(".js-h2").css('display',"none");
+        }
+        $(".js-situation").html($li);
+        $(".js-situationSpan").click(function() {
+            if ($(this).hasClass("active")) {
+                $(this).css({ "background": "#fff", "border": "1px solid #c4cdcc", "color": "#686d70" });
+                $(this).removeClass("active")
+            } else {
+                $(this).css({ "background": "#0daeaf", "border": "1px solid #0daeaf", "color": "#fff" });
+                $(this).addClass("active")
+            }
+        });
+        //alert(!!config[score - 1].inputLanguage);
+        if (!!config[score - 1].inputLanguage) {
+            $(".js-evaluateInner").attr("placeholder", config[score - 1].isInputMust ? config[score - 1].inputLanguage + '(必填)' : config[score - 1].inputLanguage + '(选填)');
+        } else {
+            $(".js-evaluateInner").attr("placeholder", config[score - 1].isInputMust ? '欢迎给我们服务提建议~(必填)' : '欢迎给我们服务提建议~(选填)');
+
+        }
+    };
+    var EvaluateAjaxHandler = function() {
+        if (isRepeat == false) {
+            isRepeat = true;
+            var tagArr = [],
+                tagNum = $(".js-situationSpan").length;
+            $(".js-situationSpan").each(function() {
+                var _val = $(this).html();
+                if ($(this).hasClass("active")) {
+                    tagArr.push(_val)
+                }
+            });
+            if (tagArr.length == 0 && config[score - 1].isTagMust && score != 5 && tagNum > 0) {
+                alert('请选择评价标签');
+                setTimeout(function() {
+                    isRepeat = false;
+                }, 3000);
+                return;
+            };
+            tag = tagArr.join(",");
+            //评价详情是否为必选
+            remark = $(".js-evaluateInner").val() || '';
+            if (remark == "" && config[score - 1].isInputMust && score != 5) {
+                alert('请填写评价详情');
+                setTimeout(function() {
+                    isRepeat = false;
+                }, 3000)
+                return;
+            }
+            if (config[0].isQuestionFlag == 1) {
+                if ($(".js-solved").hasClass("solveActive")) {
+                    solved = 1;
+                } else {
+                    solved = 0;
+                }
+            }else{
+                    solved = -1;
+
+            };
+            $.ajax({
+                type: "post",
+                url: "/chat/user/comment.action",
+                dataType: "json",
+                data: {
+                    cid: param["cid"],
+                    visitorId: param["uid"],
+                    score: score,
+                    tag: tag,
+                    solved: solved,
+                    remark: remark,
+                    type: 1,
+                    //0,邀请评价,1为主动评价
+                    commentType: param["commentType"]
+                },
+                success: function(req) {
+                    if (req.status === 1) {
+                        //window.open('./evaSuccess.html');
+                        window.location.href = './evaSuccess.html';
+                    } else {
+                        alert("提交失败");
+                    }
+                },
+                //请检查网络链接
+                error: function() {
+                    alert("提交失败,请检查网络链接");
+                }
+            });
+            setTimeout(function() {
+                isRepeat = false;
+            }, 3000)
+        }
+    };
+    var fnPoint = function(iArg) { //alert(iArg);
+        //分数赋值
+        for (var i = 0; i < $aLi.length; i++) {
+            $aLi[i].className = i < iArg ? "on" : "";
+        }
+    };
+    var getQueryParam = function(href) {
+        href = href || document.location.href;
+        var queryString = href.substring(href.lastIndexOf("?") + 1);
+        if (queryString.lastIndexOf("#") >= 0) {
+            queryString = queryString.substring(0, queryString.lastIndexOf("#"));
+        };
+        var list = queryString.split("&");
+        for (var i = 0; i < list.length; i++) {
+            var item = list[i];
+            try {
+                var key = item.substring(0, item.indexOf("="));
+                var value = item.substring(item.indexOf("=") + 1);
+                if (key.length == 0) {
+                    continue;
+                }
+
+                if (/^-?(\d+)(\.\d+)?$/.test(value)) {
+                    if (("" + value).length > 10) {
+                        param[key] = "" + value;
+                    } else {
+                        param[key] = Number(value);
+                    }
+                } else if (value === 'true') {
+                    param[key] = true;
+                } else if (value === 'false') {
+                    param[key] = false;
+                } else {
+                    param[key] = decodeUrl(value);
+                }
+            } catch (e) {
+                continue;
+            }
+        }
+        return param;
+    };
+    var decodeUrl = function(str) {
+        if (typeof str === 'string') {
+            return decodeURIComponent(str);
+        } else {
+            return undefined;
+        }
+
+    };
+    var commitBefore = function() {
+        $.ajax({
+            type: "post",
+            url: "/chat/user/isComment.action",
+            dataType: "json",
+            data: {
+                cid: param["cid"],
+                uid: param["uid"],
+                type: 1
+            },
+            success: function(req) {
+                var isEvaluated = req.isComment;
+                //alert(isEvaluated);
+                //1表示评论过
+                if (isEvaluated == 1) {
+                    alert("您已评价,不能重复提交");
+                } else if (isEvaluated == 0) { //0表示说过话没有评论过
+                    EvaluateAjaxHandler();
+                } else { //-1表示用户没有说过话
+                    alert("评价页面过期失效啦,欢迎下次及时进行评价哦~~");
+                    //微信无此种情况
+                }
+            }
+        })
+    };
+    var bindListener = function() {
+        $(".js-submit").on("click", commitBefore);
+        $(document.body).delegate(".js-solved", "click", function() {
+            if (!$(this).hasClass("solveActive")) {
+                $(this).addClass("solveActive");
+                $(".js-unSolved").removeClass("unsolveActive");
+            }
+        });
+        $(document.body).delegate(".js-unSolved", "click", function() {
+            if (!$(this).hasClass("unsolveActive")) {
+                $(this).addClass("unsolveActive");
+                $(".js-solved").removeClass("solveActive");
+            }
+        });
+
+        $(window).scroll(function() {
+            $(".js-submit").css("bottom", 0)
+        })
+    };
+    var parseDOM = function() {
+        $body = $(document.body);
+    };
+    var initFunction = function() {
+        parseDOM();
+        humanSetInnerStepOneHtml();
+        bindListener();
+    };
+    var initConfig = function() {
+        $.ajax({
+            type: "get",
+            url: "/chat/user/satisfactionMessage.action",
+            dataType: "json",
+            data: {
+                uid: param["uid"]
+            },
+            success: function(req) {
+                if (req.status === 1) {
+                    config = req.data;
+                    initFunction();
+                    $('.evabody').css("background", "none");
+                    $('.js-evamode').css("display", "block");
+                    $('.js-submit').css("display", "block");
+                }
+            },
+            //请检查网络链接
+            error: function() {
+                //showTip.show('请检查网络链接');
+            }
+        });
+    };
+    var init = function() {
+        getQueryParam();
+        // console.log(param["cid"]);
+        if (isRepeat == false) {
+            isRepeat = true;
+            $.ajax({
+                type: "post",
+                url: "/chat/user/isComment.action",
+                dataType: "json",
+                data: {
+                    cid: param["cid"],
+                    uid: param["uid"],
+                    type: 1
+                },
+                success: function(req) {
+                    var isEvaluated = req.isComment;
+                    //console.log(req.isComment);
+                    //alert(isEvaluated);
+                    //1表示评论过
+                    if (isEvaluated == 1) {
+                        window.location.href = './evaSuccess.html';
+                    } else if (isEvaluated == 0) { //0表示说过话没有评论过
+
+                        initConfig();
+                    } else { //-1表示用户没有说过话
+                    alert("评价页面过期失效啦,欢迎下次及时进行评价哦~~");
+                        
+                        //微信无此种情况
+                    }
+                }
+            });
+            //防止快速点击
+            setTimeout(function() {
+                isRepeat = false;
+            }, 1000)
+        }
+    };
+    init();
+})

+ 297 - 0
static/example.js

xqd
@@ -0,0 +1,297 @@
+/**
+ * Created by jf on 2015/9/11.
+ * Modified by bear on 2016/9/7.
+ */
+$(function () {
+    var pageManager = {
+        $container: $('#container'),
+        _pageStack: [],
+        _configs: [],
+        _pageAppend: function(){},
+        _defaultPage: null,
+        _pageIndex: 1,
+        setDefault: function (defaultPage) {
+            this._defaultPage = this._find('name', defaultPage);
+            return this;
+        },
+        setPageAppend: function (pageAppend) {
+            this._pageAppend = pageAppend;
+            return this;
+        },
+        init: function () {
+            var self = this;
+
+            $(window).on('hashchange', function () {
+                var state = history.state || {};
+                var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+                var page = self._find('url', url) || self._defaultPage;
+                if (state._pageIndex <= self._pageIndex || self._findInStack(url)) {
+                    self._back(page);
+                } else {
+                    self._go(page);
+                }
+            });
+
+            if (history.state && history.state._pageIndex) {
+                this._pageIndex = history.state._pageIndex;
+            }
+
+            this._pageIndex--;
+
+            var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+            var page = self._find('url', url) || self._defaultPage;
+            this._go(page);
+            return this;
+        },
+        push: function (config) {
+            this._configs.push(config);
+            return this;
+        },
+        go: function (to) {
+            var config = this._find('name', to);
+            if (!config) {
+                return;
+            }
+            location.hash = config.url;
+        },
+        _go: function (config) {
+            this._pageIndex ++;
+
+            history.replaceState && history.replaceState({_pageIndex: this._pageIndex}, '', location.href);
+
+            var html = $(config.template).html();
+            var $html = $(html).addClass('slideIn').addClass(config.name);
+            $html.on('animationend webkitAnimationEnd', function(){
+                $html.removeClass('slideIn').addClass('js_show');
+            });
+            this.$container.append($html);
+            this._pageAppend.call(this, $html);
+            this._pageStack.push({
+                config: config,
+                dom: $html
+            });
+
+            if (!config.isBind) {
+                this._bind(config);
+            }
+
+            return this;
+        },
+        back: function () {
+            history.back();
+        },
+        _back: function (config) {
+            this._pageIndex --;
+
+            var stack = this._pageStack.pop();
+            if (!stack) {
+                return;
+            }
+
+            var url = location.hash.indexOf('#') === 0 ? location.hash : '#';
+            var found = this._findInStack(url);
+            if (!found) {
+                var html = $(config.template).html();
+                var $html = $(html).addClass('js_show').addClass(config.name);
+                $html.insertBefore(stack.dom);
+
+                if (!config.isBind) {
+                    this._bind(config);
+                }
+
+                this._pageStack.push({
+                    config: config,
+                    dom: $html
+                });
+            }
+
+            stack.dom.addClass('slideOut').on('animationend webkitAnimationEnd', function () {
+                stack.dom.remove();
+            });
+
+            return this;
+        },
+        _findInStack: function (url) {
+            var found = null;
+            for(var i = 0, len = this._pageStack.length; i < len; i++){
+                var stack = this._pageStack[i];
+                if (stack.config.url === url) {
+                    found = stack;
+                    break;
+                }
+            }
+            return found;
+        },
+        _find: function (key, value) {
+            var page = null;
+            for (var i = 0, len = this._configs.length; i < len; i++) {
+                if (this._configs[i][key] === value) {
+                    page = this._configs[i];
+                    break;
+                }
+            }
+            return page;
+        },
+        _bind: function (page) {
+            var events = page.events || {};
+            for (var t in events) {
+                for (var type in events[t]) {
+                    this.$container.on(type, t, events[t][type]);
+                }
+            }
+            page.isBind = true;
+        }
+    };
+
+    function fastClick(){
+        var supportTouch = function(){
+            try {
+                document.createEvent("TouchEvent");
+                return true;
+            } catch (e) {
+                return false;
+            }
+        }();
+        var _old$On = $.fn.on;
+
+        $.fn.on = function(){
+            if(/click/.test(arguments[0]) && typeof arguments[1] == 'function' && supportTouch){ // 只扩展支持touch的当前元素的click事件
+                var touchStartY, callback = arguments[1];
+                _old$On.apply(this, ['touchstart', function(e){
+                    touchStartY = e.changedTouches[0].clientY;
+                }]);
+                _old$On.apply(this, ['touchend', function(e){
+                    if (Math.abs(e.changedTouches[0].clientY - touchStartY) > 10) return;
+
+                    e.preventDefault();
+                    callback.apply(this, [e]);
+                }]);
+            }else{
+                _old$On.apply(this, arguments);
+            }
+            return this;
+        };
+    }
+    function preload(){
+        $(window).on("load", function(){
+            var imgList = [
+                "./images/layers/content.png",
+                "./images/layers/navigation.png",
+                "./images/layers/popout.png",
+                "./images/layers/transparent.gif"
+            ];
+            for (var i = 0, len = imgList.length; i < len; ++i) {
+                new Image().src = imgList[i];
+            }
+        });
+    }
+    function androidInputBugFix(){
+        // .container 设置了 overflow 属性, 导致 Android 手机下输入框获取焦点时, 输入法挡住输入框的 bug
+        // 相关 issue: https://github.com/weui/weui/issues/15
+        // 解决方法:
+        // 0. .container 去掉 overflow 属性, 但此 demo 下会引发别的问题
+        // 1. 参考 http://stackoverflow.com/questions/23757345/android-does-not-correctly-scroll-on-input-focus-if-not-body-element
+        //    Android 手机下, input 或 textarea 元素聚焦时, 主动滚一把
+        if (/Android/gi.test(navigator.userAgent)) {
+            window.addEventListener('resize', function () {
+                if (document.activeElement.tagName == 'INPUT' || document.activeElement.tagName == 'TEXTAREA') {
+                    window.setTimeout(function () {
+                        document.activeElement.scrollIntoViewIfNeeded();
+                    }, 0);
+                }
+            })
+        }
+    }
+    function setJSAPI(){
+        var option = {
+            title: 'WeUI, 为微信 Web 服务量身设计',
+            desc: 'WeUI, 为微信 Web 服务量身设计',
+            link: "https://weui.io",
+            imgUrl: 'https://mmbiz.qpic.cn/mmemoticon/ajNVdqHZLLA16apETUPXh9Q5GLpSic7lGuiaic0jqMt4UY8P4KHSBpEWgM7uMlbxxnVR7596b3NPjUfwg7cFbfCtA/0'
+        };
+
+        $.getJSON('https://weui.io/api/sign?url=' + encodeURIComponent(location.href.split('#')[0]), function (res) {
+            wx.config({
+                beta: true,
+                debug: false,
+                appId: res.appid,
+                timestamp: res.timestamp,
+                nonceStr: res.nonceStr,
+                signature: res.signature,
+                jsApiList: [
+                    'onMenuShareTimeline',
+                    'onMenuShareAppMessage',
+                    'onMenuShareQQ',
+                    'onMenuShareWeibo',
+                    'onMenuShareQZone',
+                    // 'setNavigationBarColor',
+                    'setBounceBackground'
+                ]
+            });
+            wx.ready(function () {
+                /*
+                 wx.invoke('setNavigationBarColor', {
+                 color: '#F8F8F8'
+                 });
+                 */
+                wx.invoke('setBounceBackground', {
+                    'backgroundColor': '#F8F8F8',
+                    'footerBounceColor' : '#F8F8F8'
+                });
+                wx.onMenuShareTimeline(option);
+                wx.onMenuShareQQ(option);
+                wx.onMenuShareAppMessage({
+                    title: 'WeUI',
+                    desc: '为微信 Web 服务量身设计',
+                    link: location.href,
+                    imgUrl: 'https://mmbiz.qpic.cn/mmemoticon/ajNVdqHZLLA16apETUPXh9Q5GLpSic7lGuiaic0jqMt4UY8P4KHSBpEWgM7uMlbxxnVR7596b3NPjUfwg7cFbfCtA/0'
+                });
+            });
+        });
+    }
+    function setPageManager(){
+        var pages = {}, tpls = $('script[type="text/html"]');
+        var winH = $(window).height();
+
+        for (var i = 0, len = tpls.length; i < len; ++i) {
+            var tpl = tpls[i], name = tpl.id.replace(/tpl_/, '');
+            pages[name] = {
+                name: name,
+                url: '#' + name,
+                template: '#' + tpl.id
+            };
+        }
+        pages.home.url = '#';
+
+        for (var page in pages) {
+            pageManager.push(pages[page]);
+        }
+        pageManager
+            .setPageAppend(function($html){
+                var $foot = $html.find('.page__ft');
+                if($foot.length < 1) return;
+
+                if($foot.position().top + $foot.height() < winH){
+                    $foot.addClass('j_bottom');
+                }else{
+                    $foot.removeClass('j_bottom');
+                }
+            })
+            .setDefault('home')
+            .init();
+    }
+
+    function init(){
+        preload();
+        fastClick();
+        androidInputBugFix();
+        setJSAPI();
+        setPageManager();
+
+        window.pageManager = pageManager;
+        window.home = function(){
+            location.hash = '';
+        };
+    }
+    init();
+});

BIN
static/images/Thumbs.db


BIN
static/images/icon_nav_feedback.png


BIN
static/images/icon_nav_form.png


BIN
static/images/icon_nav_layout.png


BIN
static/images/icon_nav_nav.png


BIN
static/images/icon_nav_search.png


BIN
static/images/icon_nav_z-index.png


BIN
static/images/logo.png


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
static/jweixin-1.0.0.js



Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
static/sample.css


Разлика између датотеке није приказан због своје велике величине
+ 729 - 0
static/weui.css


Разлика између датотеке није приказан због своје велике величине
+ 5 - 0
static/weui.min.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
static/zepto.min.js


Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
static/zepto.min.old.js




Разлика између датотеке није приказан због своје велике величине
+ 0 - 0
temp/base3b5429.css




BIN
temp/ovkEB1Rspavy_VfHqA0uyUyi46yA.png


+ 0 - 0
temp/temp.txt


+ 589 - 0
template/defaultset.html

xqd
@@ -0,0 +1,589 @@
+{template 'common/header'}
+	<script type="text/javascript">
+			$(function(){
+				$(".colorpicker").each(function(){
+					var elm = this;
+					util.colorpicker(elm, function(color){
+						$(elm).parent().prev().prev().val(color.toHexString());
+						$(elm).parent().prev().css("background-color", color.toHexString());
+					});
+				});
+				$(".colorclean").click(function(){
+					$(this).parent().prev().prev().val("");
+					$(this).parent().prev().css("background-color", "#FFF");
+				});
+			});
+		</script>
+		
+ <style type="text/css">
+   .introduction {
+  display:flex; 
+  word-break:keep-all;
+   width:30%;
+     align-items:center; 
+    margin-top: 50rpx;
+  
+    padding: 20rpx 30rpx;
+    border-radius: 30rpx;
+    
+}
+.myButton {
+	-moz-box-shadow: 0px 10px 14px -7px #3e7327;
+	-webkit-box-shadow: 0px 10px 14px -7px #3e7327;
+	box-shadow: 0px 10px 14px -7px #3e7327;
+	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #77b55a), color-stop(1, #72b352));
+	background:-moz-linear-gradient(top, #77b55a 5%, #72b352 100%);
+	background:-webkit-linear-gradient(top, #77b55a 5%, #72b352 100%);
+	background:-o-linear-gradient(top, #77b55a 5%, #72b352 100%);
+	background:-ms-linear-gradient(top, #77b55a 5%, #72b352 100%);
+	background:linear-gradient(to bottom, #77b55a 5%, #72b352 100%);
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#77b55a', endColorstr='#72b352',GradientType=0);
+	background-color:#77b55a;
+	-moz-border-radius:4px;
+	-webkit-border-radius:4px;
+	border-radius:4px;
+	border:1px solid #4b8f29;
+	display:inline-block;
+	cursor:pointer;
+	color:#ffffff;
+	font-family:Arial;
+	font-size:13px;
+	font-weight:bold;
+	padding:6px 12px;
+	text-decoration:none;
+	text-shadow:0px 1px 0px #5b8a3c;
+}
+.myButton:hover {
+	background:-webkit-gradient(linear, left top, left bottom, color-stop(0.05, #72b352), color-stop(1, #77b55a));
+	background:-moz-linear-gradient(top, #72b352 5%, #77b55a 100%);
+	background:-webkit-linear-gradient(top, #72b352 5%, #77b55a 100%);
+	background:-o-linear-gradient(top, #72b352 5%, #77b55a 100%);
+	background:-ms-linear-gradient(top, #72b352 5%, #77b55a 100%);
+	background:linear-gradient(to bottom, #72b352 5%, #77b55a 100%);
+	filter:progid:DXImageTransform.Microsoft.gradient(startColorstr='#72b352', endColorstr='#77b55a',GradientType=0);
+	background-color:#72b352;
+}
+.myButton:active {
+	position:relative;
+	top:1px;
+}
+
+</style>
+<ul class="nav nav-tabs">
+        <li class="{$active}"><a href="{php echo $this->createWebUrl('defaultset');}">首页配置</a></li>
+     <li class="{$active1}"><a href="{php echo $this->createWebUrl('navset');}">添加导航</a></li>
+        <li class="{$active2}"><a href="{php echo $this->createWebUrl('list');}">导航列表</a></li>
+ 		   
+</ul>
+{if $active == 'active'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+        <form action="{php echo $this->createWebUrl('savedefault');}" method="post" class="form-horizontal">
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    默认地址配置
+                </div>
+                <div class="panel-body">
+				
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">小程序appId</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="store_id" value="{$oldmsg['0']['store_id']}" class="form-control"> -->
+                           <!-- <span class="help-block">填写关联的小程序APPid</span> -->
+                    <!-- </div> -->
+					
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">网页地址/小程序路径</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="wxweb" value="{$oldmsg['0']['wxweb']}" class="form-control"> -->
+                        <!-- <span class="help-block">需提前在微信小程序后台设置好业务域名.打开小程序的路径是page/开头</span> -->
+                    <!-- </div> -->
+					 <label class="col-xs-12 col-sm-3 col-md-2 control-label">欢迎文字</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="hytxt" value="{$oldmsg['0']['hytxt']}" class="form-control">
+                        <span class="help-block">为空则不显示</span>
+                    </div>
+					<br>
+		    	<label class="col-xs-12 col-sm-3 col-md-2 control-label">欢迎文字颜色</label>
+            <div class="col-sm-9 col-xs-12">
+				<div class="input-group">
+					<input class="form-control" type="text" name="whcolor" placeholder="请选择颜色" value="{$oldmsg['0']['whcolor']}">
+					<span class="input-group-addon" style="width: 35px; border-left: none; background-color: {$oldmsg['0']['whcolor']};"></span>
+					<span class="input-group-btn">
+						<button class="btn btn-default colorpicker" type="button">选择颜色 <i class="fa fa-caret-down"></i></button>
+						<button class="btn btn-default colorclean" type="button"><span><i class="fa fa-remove"></i></span></button>
+					</span>
+				</div>
+			</div>
+	 	
+					
+				 
+					
+                    <label class="col-xs-12 col-sm-3 col-md-2 control-label">转发标题</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="shareContent" value="{$oldmsg['0']['shareContent']}" class="form-control">
+                        <span class="help-block">输入小程序分享文字描述</span>
+                    </div>
+					
+					  <label class="col-xs-12 col-sm-3 col-md-2 control-label">首页页面</label>
+                    <div class="col-sm-9 col-xs-12">
+                        {php echo tpl_form_field_image('qidongimg',$oldmsg['0']['qidongimg']);}
+                        <span class="help-block">小程序启动背景页面</span>
+                    </div>
+					
+					
+					 
+      <label class="col-xs-12 col-sm-3 col-md-2 control-label">按钮背景颜色</label>
+            <div class="col-sm-9 col-xs-12">
+				<div class="input-group">
+					<input class="form-control" type="text" name="whcolor" placeholder="请选择颜色" value="{$oldmsg['0']['zjcolor']}">
+					<span class="input-group-addon" style="width: 35px; border-left: none; background-color: {$oldmsg['0']['zjcolor']};"></span>
+					<span class="input-group-btn">
+						<button class="btn btn-default colorpicker" type="button">选择颜色 <i class="fa fa-caret-down"></i></button>
+						<button class="btn btn-default colorclean" type="button"><span><i class="fa fa-remove"></i></span></button>
+					</span>
+				</div>
+			</div>
+	 	
+						   <label class="col-xs-12 col-sm-3 col-md-2 control-label">导航按钮颜色</label>
+             <div class="col-sm-9 col-xs-12">
+				<div class="input-group">
+					<input class="form-control" type="text" name="bbcolor" placeholder="请选择颜色" value="{$oldmsg['0']['bbcolor']}">
+					<span class="input-group-addon" style="width: 35px; border-left: none; background-color: {$oldmsg['0']['bbcolor']};"></span>
+					<span class="input-group-btn">
+						<button class="btn btn-default colorpicker" type="button">选择颜色 <i class="fa fa-caret-down"></i></button>
+						<button class="btn btn-default colorclean" type="button"><span><i class="fa fa-remove"></i></span></button>
+					</span>
+				</div>
+			</div>
+			
+			
+		  <label class="col-xs-12 col-sm-3 col-md-2 control-label">导航文字颜色</label>
+            <div class="col-sm-9 col-xs-12">
+				<div class="input-group">
+					<input class="form-control" type="text" name="ttcolor" placeholder="请选择颜色" value="{$oldmsg['0']['ttcolor']}">
+					<span class="input-group-addon" style="width: 35px; border-left: none; background-color: {$oldmsg['0']['ttcolor']};"></span>
+					<span class="input-group-btn">
+						<button class="btn btn-default colorpicker" type="button">选择颜色 <i class="fa fa-caret-down"></i></button>
+						<button class="btn btn-default colorclean" type="button"><span><i class="fa fa-remove"></i></span></button>
+					</span>
+				</div>
+			</div>
+					 
+		 
+		</div>
+		
+			</div>
+				 
+                    <input name="submit" type="submit"  value="确定" class="btn btn-primary">
+                     				
+            </div> 	 
+			 </form> 
+				</div>
+					
+                <!--    <label class="col-xs-12 col-sm-3 col-md-2 control-label">安卓url</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="Androidurl" value="{$oldmsg['0']['Androidurl']}" class="form-control">
+                        <span class="help-block">输入安卓url</span>
+                    </div>
+                    <label class="col-xs-12 col-sm-3 col-md-2 control-label">IOSurl</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="iosdownweb" value="{$oldmsg['0']['iosdownweb']}" class="form-control">
+                        <span class="help-block">输入IOSurl</span>
+                    </div> -->
+					
+					 <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">启动页面logo</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                            <!-- {php echo tpl_form_field_image('store_logo',$oldmsg['0']['store_logo']);} -->
+                        <!-- <span class="help-block">请上传png格式文件</span> -->
+                    <!-- </div> -->
+                      <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">背景图片1</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                            <!-- {php echo tpl_form_field_image('leftBackgroundImage',$oldmsg['0']['leftBackgroundImage']);} -->
+					 
+                        <!-- <span class="help-block"> </span> -->
+                    <!-- </div> -->
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">背景图片2</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                            <!-- {php echo tpl_form_field_image('navBackgroundImage',$oldmsg['0']['navBackgroundImage']);} -->
+							
+                        <!-- <span class="help-block"> </span> -->
+                    <!-- </div> -->
+                    
+         
+       
+   
+{else}
+{/if}
+ 
+ 
+ {if $active1 == 'active'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+        <form action="{php echo $this->createWebUrl('savesucai')}" method="post" class="form-horizontal">
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                     添加素材库 : 
+                </div> 
+				
+                <div class="panel-body">
+                     <label class="col-xs-12 col-sm-3 col-md-2 control-label">顺序ID</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="sid" value="" class="form-control">
+                        <span class="help-block"> </span>
+                    </div>
+					 
+					   <label class="col-xs-12 col-sm-3 col-md-2 control-label">导航类型</label>
+                    <div class="col-sm-9 col-xs-12">
+                       
+ <select name="stype" class="form-control form-add-type">
+    <option value="text">文本</option>
+    <option value="image">图文链接</option>
+    <option value="link">图片消息</option>
+    <option value="miniprogrampage">小程序卡片</option>
+ 
+</select>
+                        <span class="help-block">导航类型:1:文本 2:图文链接 3:图片  4:小程序卡片   </span>
+                    </div>
+					
+                    <label class="col-xs-12 col-sm-3 col-md-2 control-label">关键词</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="keywords" value="keywords" class="form-control">
+                        <span class="help-block">用户发送此关键词 将触发本消息</span>
+                    </div>
+                    <label class="col-xs-12 col-sm-3 col-md-2 control-label">标题 </label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="title" value="" class="form-control">
+                        <span class="help-block">根据功能分别填写:网址 小程序入口地址    </span>
+                    </div>
+					  <label class="col-xs-12 col-sm-3 col-md-2 control-label">简介 </label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="description" value="" class="form-control">
+                        <span class="help-block">图文消息的副标题    </span>
+                    </div>
+					  <label class="col-xs-12 col-sm-3 col-md-2 control-label">图文链接地址 </label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="url" value="" class="form-control">
+                        <span class="help-block">图文消息的web地址   </span>
+                    </div>
+                    <label class="col-xs-12 col-sm-3 col-md-2 control-label">图文消息图标</label>
+                    <div class="col-sm-9 col-xs-12">
+                            {php echo tpl_form_field_image('thumb_url');}
+                        <span class="help-block">图文链接消息的图片链接,支持 JPG、PNG 格式,较好的效果为大图 640 X 320,小图 80 X 80</span>
+                    </div>
+					
+					
+				  
+				 
+					
+				    <label class="col-xs-12 col-sm-3 col-md-2 control-label">小程序APPID</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="user_id" value="" class="form-control">
+                          <span class="help-block">当选择是小程序功能时使用.</span>
+                    </div>
+
+                </div>
+            </div>
+             <div class="form-group col-sm-12">
+                <input type="hidden" name="" value="" />
+                <input name="submit" type="submit" value="确定" class="btn btn-primary"> 
+            </div>
+        </form>
+    </div>
+{else}
+{/if}
+{if $active2 == 'active'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+        <div class="panel panel-default">
+                <div class="panel-heading">
+                    导航菜单列表
+                </div>
+                <div class="panel-body">
+                        <table class="table table-hover">  
+                                <thead>  
+                                    <tr>  
+                                    <th>菜单id</th> 
+                                    <th>图像</th>									
+                                    <th>菜单名称</th>  
+									<th>链接地址</th>  
+                                    <th>操作</th>  
+									  
+                                    </tr>  
+                                </thead>  
+                                <tbody id="list">  
+								   
+                                    {loop $navmsg $indexid $nav}
+                                    <tr>
+                                        <th>{$nav['ordid']}</th>
+										<th><span class="btn btn-primary" style="width:400;height:50 ;border:3px solid {$nav['bbcolor']} border-left: none; background-color:{$nav['zjcolor']};">
+										<img src="{$_W['siteroot']}/{$nav['wlogo']}" width="100"> <font color={$nav['ttcolor']}> {$nav['name']}</font> </span>  </th>
+                                        <th>{$nav['name']}</th>
+										 <th>{$nav['likes']}</th>
+                                        <th>
+                                            <form action="{php echo $this->createWebUrl('del')}" method="post">
+											
+											
+                                            <input type="hidden" name="id" value="{$nav['id']}" />
+										
+                                            <input name="submit" type="submit" value="删除" class="btn btn-primary"> 
+											<a href="{php echo $this->createWebUrl('json');}"></a>
+                                            </form>
+                                        </th>
+										 
+								      </tr>
+                                    {/loop}
+                                </tbody>  
+                            </table>  
+            
+                </div>
+        </div>
+</div>
+{else}
+{/if}
+{if $active3 == 'active'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+        <div class="panel panel-default">
+                <div class="panel-heading">
+                   检测
+                </div>
+                <div class="panel-body">
+                      
+                       <form  action="http://vmall.woshangtong.com/json/save.php" method="post">
+				   <label class="col-xs-12 col-sm-3 col-md-2 control-label">模板1</label>
+                    <div class="col-sm-9 col-xs-12">
+                            <img height="300" src="/addons/qicheng_webapp/gd.png">
+                        <span class="help-block"></span>
+                    </div>					
+                          
+									<div   style="display:none;">
+										<input type="text" readOnly="true" name="jsonid" value='{$jsonid}' class="form-control" />
+								 		 <input type="text"  readOnly="true"  name="store_name" value='{$store_name}' class="form-control" />
+										 		
+									     <input type="hidden" name="likes" value='{$store_logo}' class="form-control" />
+									     <input type="hidden" name="banben" value='109' class="form-control" />
+										 <input type="hidden" name="uniacid" value='{$uniacid}' class="form-control" />
+										  <input type="hidden" name="website" value='{$website}' class="form-control" />
+										  <input type="hidden" name="json" value='{$jsonall}' class="form-control" />
+									</div>
+								   <div class="col-sm-9 col-xs-12"> 
+ 	 
+                                            <input name="submit" type="submit" value="检查更新" class="btn btn-primary"> 
+								    </div>
+                                            </form>
+ 
+										
+            
+                </div>
+					 
+        </div>
+</div>
+{else}
+{/if}
+
+
+{if $active == 'active5'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+        <form action="{php echo $this->createWebUrl('savekefu');}" method="post" class="form-horizontal">
+            <div class="panel panel-default">
+                <div class="panel-heading">
+                    默认配置
+                </div>
+                <div class="panel-body">
+				
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">小程序appId</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="store_id" value="{$oldmsg['0']['store_id']}" class="form-control"> -->
+                           <!-- <span class="help-block">填写关联的小程序APPid</span> -->
+                    <!-- </div> -->
+					
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">网页地址/小程序路径</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="wxweb" value="{$oldmsg['0']['wxweb']}" class="form-control"> -->
+                        <!-- <span class="help-block">需提前在微信小程序后台设置好业务域名.打开小程序的路径是page/开头</span> -->
+                    <!-- </div> -->
+				   <label class="col-xs-12 col-sm-3 col-md-2 control-label">原始ID</label>
+                    <div class="col-md-6">
+                        <input type="text" name="jsonid" value="{$oldmsg['0']['jsonid']}" class="form-control">
+                        <span class="help-block">必须填写</span>
+                    </div>
+					<br>
+					  <label class="col-md-6">APPID</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="appid" value="{$oldmsg['0']['appid']}" class="form-control">
+                        <span class="help-block">必须填写</span>
+                    </div>
+					
+					
+					  <label class="col-md-9">APPSecret</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="appsecret" value="{$oldmsg['0']['appsecret']}" class="form-control">
+                        <span class="help-block">必须填写</span>
+                    </div>
+					
+						  <label class="col-xs-12 col-sm-3 col-md-2 control-label">管理员Openid</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="openid" value="{$oldmsg['0']['openid']}" class="form-control">
+                        <span class="help-block">先填写其他选项,收到自动回复后,再发送 'openid' 到自己的小程序客服,会返回对应的openid.  </span>
+                    </div>
+					
+					
+					  <label class="col-xs-12 col-sm-3 col-md-2 control-label">进入客服时返回:</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <!-- <input type="text" name="moren" value="{$oldmsg['0']['moren']}" class="form-control"> -->
+						
+			 <select name="moren" class="form-control form-add-type">
+  
+                  {loop $navmsg $index $items}
+         <option value={$items['keywords']}   
+		 {if $oldmsg[0]['moren'] == $items['keywords']} selected="selected" {/if}> {$items['sid']}{$items['keywords']}</option>
+                      {/loop}
+</select>
+						
+						
+                        <span class="help-block">请先添加 <a href='c=site&a=entry&do=sucaiset&m=qidong_app'>素材库 </a></span>
+                    </div>
+					
+					  <label class="col-xs-12 col-sm-3 col-md-2 control-label">客服模式:</label>
+                    <div class="col-sm-9 col-xs-12">
+					 <select name="qita" class="form-control form-add-type">
+					 
+					  <option value='人工客服'  
+		 {if $oldmsg['0']['qita'] == '人工客服'} selected="selected" {/if}> 人工客服</option>
+      
+                    <input type="text" name="qita" value="{$oldmsg['0']['qita']}" class="form-control"> 
+	                 </select>
+						
+                        <span class="help-block"> 客服模式:人工客服   </span>
+                    </div>
+					
+						  <label class="col-xs-12 col-sm-3 col-md-2 control-label">导航菜单</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="caidan" value="{$oldmsg['0']['caidan']}" class="form-control">
+                        <span class="help-block">换行请用 {br}  举例:你好 欢迎访问  {br} 1.关注我们   {br} 2.QQ客服  {br}3 .联系电话   </span>
+                    </div>
+					
+					<br><br>
+					
+						  <label class="col-xs-12 col-sm-3 col-md-2 control-label">图文关注设置</label>
+                    <div class="col-sm-9 col-xs-12">
+					  <span class="help-block">设置图文关注标题</span>
+                        <input type="text" name="guanzhu_title" value="{$oldmsg['0']['guanzhu_title']}" class="form-control">
+                       <span class="help-block">设置图文关注提示</span>
+						  <input type="text" name="guanzhu_des" value="{$oldmsg['0']['guanzhu_des']}" class="form-control">
+                        <span class="help-block">关注地址:设置公共号的关注推送文章url地址</span>
+						  <input type="text" name="guanzhu_url" value="{$oldmsg['0']['guanzhu_url']}" class="form-control">
+                        <span class="help-block">推送的关注logo</span>
+						  <!-- <input type="text" name="guanzhu_logo" value="{$oldmsg['0']['guanzhu_logo']}" class="form-control"> -->
+						    {php echo tpl_form_field_image('guanzhu_logo',$oldmsg['0']['guanzhu_logo']);}
+                                <span class="help-block">如果你使用了图片云存储,必须直接填写图片的http地址</span>
+                    </div>
+					<div style="background-color=#505050">
+						  <label class="col-xs-12 col-sm-3 col-md-2 control-label">QQ客服设置</label>
+                    <div class="col-sm-9 col-xs-12">
+					  <span class="help-block">设置QQ客服标题</span>
+                        <input type="text" name="qq_title" value="{$oldmsg['0']['qq_title']}" class="form-control">
+                        <span class="help-block">设置QQ客服详情</span>
+						  <input type="text" name="qq_des" value="{$oldmsg['0']['qq_des']}" class="form-control">
+                       <span class="help-block">客服QQ设置:要求开通[在线聊天+临时会话]</span>
+						  <input type="text" name="qq_url" value="{$oldmsg['0']['qq_url']}" class="form-control">
+                        <span class="help-block">如果你使用了图片云存储,必须直接填写图片的http地址</span>
+						    {php echo tpl_form_field_image('qq_logo',$oldmsg['0']['qq_logo']);}
+                           素材:直接右键复制地址到上面: <img  onclick="document.getElementsByName('qq_logo').value='../addons/qidong_app/json/timg.jpg';"  width="70" src="../addons/qidong_app/json/timg.jpg"> 
+                    </div>
+					</div>
+							  <label class="col-xs-12 col-sm-3 col-md-2 control-label">咨询完毕的推送</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="call" value="{$oldmsg['0']['call']}" class="form-control">
+                        <span class="help-block">当管理员发下一个时,给离开的客户推送信息</span> 
+                    </div>
+			 
+			      <label class="col-xs-12 col-sm-3 col-md-2 control-label">对接设置:</label>
+                    <div class="col-sm-9 col-xs-12">
+                        <input type="text" name="" value="{$website}addons/qidong_app/kefu.php" class="form-control">
+                        <span class="help-block">务必测试以上地址能否打开一个空白页,并将此地址填写到微信小程序后台消息推送设置.</span>
+						<span class="help-block">对接TOKEN:<font color=red>xcxkefu</font></span>
+							<span class="help-block">密钥:<font color=red>随机生成</font></span>
+							<span class="help-block">消息加密模式:<font color=red>明文 </font>   数据格式 :<font color=red>JSON</font></span>
+                    </div>
+			     <label class="col-xs-12 col-sm-3 col-md-2 control-label">管理员常用命令:</label>
+                    <div class="col-sm-9 col-xs-12">
+                        
+						<span class="help-block"> <font color=red>下一个</font> 可切换和下一个排队用户聊天</span>
+							<span class="help-block"> <font color=red>排队</font>  查看排队人数</span>
+								<span class="help-block"> <font color=red>清零</font> 清除排队人数</span>
+				    	<span class="help-block"> <font color=red>@id:你好</font> @某个客户 直接私信</span>
+				    
+					   	<span class="help-block"> <font color=red>@所有人 你好</font> @所有在线客户</span>
+				       
+					              </div>
+			
+	 	
+		
+ 
+		 
+		</div>
+		
+			</div>
+				 
+                    <input name="submit" type="submit"  value="确定" class="btn btn-primary">
+                     				
+            </div> 	 
+			 </form> 
+				</div>
+ 
+                    
+         
+       
+   
+{else}
+{/if}
+ 
+ 
+{if $active == 'active6'}
+<div class="clearfix" ng-controller="memberProperty" id="memberProperty">
+               <div class="panel panel-default">
+                <div class="panel-heading">
+                    系统帮助
+                </div>
+                <div class="panel-body">
+				
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">小程序appId</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="store_id" value="{$oldmsg['0']['store_id']}" class="form-control"> -->
+                           <!-- <span class="help-block">填写关联的小程序APPid</span> -->
+                    <!-- </div> -->
+					
+                    <!-- <label class="col-xs-12 col-sm-3 col-md-2 control-label">网页地址/小程序路径</label> -->
+                    <!-- <div class="col-sm-9 col-xs-12"> -->
+                        <!-- <input type="text" name="wxweb" value="{$oldmsg['0']['wxweb']}" class="form-control"> -->
+                        <!-- <span class="help-block">需提前在微信小程序后台设置好业务域名.打开小程序的路径是page/开头</span> -->
+                    <!-- </div> -->
+				   <label class="col-xs-12 col-sm-3 col-md-2 control-label">导航设置</label>
+                    <div class="col-sm-9 col-xs-12"> 
+					     对接地址:
+                         <img width=80% src="http://web.17cheng.cn/kefu/images/1.png">
+                    </div>
+			      <label class="col-xs-12 col-sm-3 col-md-2 control-label">客服设置</label>
+					 <div class="col-sm-9 col-xs-12"> 
+                         <img width=80% src="http://web.17cheng.cn/kefu/images/2.png">
+                    </div>
+					 
+		 
+		 
+		</div>
+		
+			</div>
+				 
+                 
+                     				
+            </div> 	 
+			 
+				</div>
+ 
+                    
+         
+       
+   
+{else}
+{/if}
+ 
+ 
+ 
+
+{template 'common/footer'}

Неке датотеке нису приказане због велике количине промена