Beispiel #1
0
 public function getSignPackage()
 {
     $url = $this->url;
     $appid = "wx3faa5c04dbde6ac2";
     $jsapiTicket = redisData::Get('jsapi_ticket');
     $timestamp = time();
     $nonceStr = $this->createNonceStr();
     // 这里参数的顺序要按照 key 值 ASCII 码升序排序
     $string = "jsapi_ticket={$jsapiTicket}&noncestr={$nonceStr}&timestamp={$timestamp}&url={$url}";
     $signature = sha1($string);
     $signPackage = array("appId" => $appid, "nonceStr" => $nonceStr, "timestamp" => $timestamp, "url" => $url, "signature" => $signature, "rawString" => $string);
     return $signPackage;
 }
Beispiel #2
0
	<!-- 解除绑定模态框结束 -->
	<ul class="list-group">
		<?php 
$username = $_SESSION['username'];
$connectHC = Db::instance('ConnectDb');
$result = $connectHC->row("SELECT macid FROM `wxserver` WHERE openid='{$username}'");
// 得到绑定的MACID数组
$getmacidlist = explode('/', $result['macid'], -1);
// 得到绑定的MACID的clientid数组
/*$getmacidclientlist = array();
		foreach ($getmacidlist as $value) {		
			$result = $connectHC->row("SELECT clientid FROM `wifiserver` WHERE macid='$value'");
			$getmacidclientlist[$value] = $result['clientid'];
			};*/
// 得到绑定MACID的名称数组
$getmacnamelist = redisData::hMGet($username, $getmacidlist);
foreach ($getmacnamelist as $key => $value) {
    # code...
    /*$getdata = redisData::allarray($getmacidclientlist, $getmacnamelist);
    		var_export($getdata);*/
    ?>
	  <li class="list-group-item">
	    <p style="line-height: 40px;" id="<?php 
    echo $key;
    ?>
"><span contenteditable="true"><?php 
    echo $value;
    ?>
</span></p>
		   <div class="kaiguan">
			<button class="button button-box button-primary button-small" name="rename"><i class="glyphicon glyphicon-pencil span-button"></i></button>
use Workerman\Protocols\Http;
use GatewayWorker\Lib\Db;
if (!isset($_POST['username'])) {
    echo "对不起,您访问的页面不存在!:(";
    HTTP::end();
}
$username = $_POST['username'];
$macid = $_POST['macid'];
$macname = $_POST['macname'];
// username<=>macid 存入MYSQL中
$connectHC = Db::instance('ConnectDb');
$getmacid = $connectHC->row("SELECT macid FROM `wxserver` WHERE openid='{$username}'");
// 查找是否重复绑定macid
$getmacidnum = strpos($getmacid['macid'], $macid . "/");
if (!$getmacidnum && $getmacidnum !== 0) {
    // 第一次绑定
    // macid<=>macname 存入redis中
    redisData::hSet($username, $macid, $macname);
    $macid = $getmacid['macid'] . $macid . "/";
    $result = $connectHC->query("UPDATE `wxserver` SET `macid` = '{$macid}' WHERE openid='{$username}'");
    if ($result == 1) {
        //更新数据库macid成功
        echo "101";
    } else {
        //更新数据库macid失败
        echo "102";
    }
} else {
    // 重复绑定
    echo "001";
}
<?php

require_once dirname(__DIR__) . '/redisData.php';
use Workerman\Protocols\Http;
$username = $_POST['username'];
$macid = $_POST['macid'];
$newmacname = $_POST['newmacname'];
if (!isset($username)) {
    echo "对不起,你访问的网页不存在!:(";
    HTTP::end();
}
redisData::hSet($username, $macid, $newmacname);
$result = redisData::hGet($username, $macid);
if ($result == $newmacname) {
    echo "ok";
} else {
    echo "抱歉!遇到未知错误";
}
Beispiel #5
0
            $connection->close();
        }
        // onWebSocketConnect 里面$_GET $_SERVER是可用的
        // var_dump($_GET, $_SERVER);
    };
}; 
*/
$webserver = new WebServer('http://0.0.0.0:80');
$webserver->addRoot('120.25.163.9', '/workerman/Applications/huicheng/Web');
$webserver->count = 1;
$webserver->onWorkerStart = function ($webserver) {
    //初始化多客服工号对应的昵称
    redisData::Set('HCS1@hc-information', '小汇');
    redisData::Set('HCS2@hc-information', '小承');
    redisData::Set('HCT1@hc-information', '小信');
    redisData::Set('HCT2@hc-information', '小息');
    //初始化定时间隔
    $time_interval = 7000;
    //初始化access_token
    transToWxServer::getaccess_token();
    transToWxServer::getjsapi_ticket();
    //定时获取access_token
    \Workerman\Lib\Timer::add($time_interval, function () {
        transToWxServer::getaccess_token();
        transToWxServer::getjsapi_ticket();
    });
};
// 如果不是在根目录启动,则运行runAll方法
if (!defined('GLOBAL_START')) {
    Worker::runAll();
}
Beispiel #6
0
 /**
  * 接收事件消息
  * @var object
  * @return string
  */
 private function receiveEvent($object)
 {
     $result = "";
     $client_openid = $object->FromUserName;
     switch ($object->Event) {
         //关注事件
         case "subscribe":
             $content = "感谢关注广州汇承信息科技微信服务号! [太阳]\n\n";
             $content .= "点击菜单:'HC汇承'\n";
             $content .= "得到最新产品咨询、HC产品列表汇总、HC汇承官网信息\n";
             $content .= "--------------------------\n";
             $content .= "点击菜单:'人工咨询'\n";
             $content .= "在线技术支持、在线销售咨询\n";
             $content .= "--------------------------\n";
             $content .= "点击菜单:'HC智能❤'\n";
             $content .= "暂时没有开放..\n\n";
             $content .= "电话:020-4008881803";
             $result = $this->transmitText($object, $content);
             break;
             //取消关注事件
         //取消关注事件
         case "unsubscribe":
             $content = "取消关注";
             break;
             /*case "SCAN":
               $content = "扫描场景 ".$object->EventKey;
               break;*/
             //点击事件
         /*case "SCAN":
           $content = "扫描场景 ".$object->EventKey;
           break;*/
         //点击事件
         case "CLICK":
             switch ($object->EventKey) {
                 //最新产品
                 case "NewProduct":
                     $content = array();
                     $content[] = array("Title" => "HC-08蓝牙4.0BLE串口模块", "Description" => "HC-08支持和iPhone4s以上的苹果手机或安卓4.3蓝牙4.0的安卓手。。,两模块之前也可通讯", "PicUrl" => "https://mmbiz.qlogo.cn/mmbiz/JnIZvkFV6c0gu2PEYJkcP3ngibwfIufAIPcjwpx1W2brgWTfibVe2dhFqKcQEntc6wXVZm8P6LaQ6qic9UOFibyFaA/0?wx_fmt=jpeg", "Url" => "http://www.hchchchc.com/Tpl/product_arc.php?model=HC-08");
                     $result = $this->transmitNews($object, $content);
                     break;
                     // 在线销售
                 // 在线销售
                 case "OnlineSaler":
                     $getcustom_mark = redisData::hGet($client_openid, 'custom');
                     // 重复click
                     if ($getcustom_mark == "1") {
                         echo "";
                         HTTP::end();
                     } else {
                         // 得到空闲客服帐号
                         $kf_account = transToWxServer::findRelaxCustom("HCS");
                         if (!empty($kf_account)) {
                             $result = $this->transmitService($object, $kf_account);
                             redisData::hSet($client_openid, 'custom', "1");
                         } else {
                             // 客服不在线
                             $content = "客服已离线,请稍候重试!";
                             $result = $this->transmitText($object, $content);
                         }
                     }
                     break;
                     // 在线技术客服
                 // 在线技术客服
                 case "THelp":
                     $getcustom_mark = redisData::hGet($client_openid, 'custom');
                     // 重复click
                     if ($getcustom_mark == "1") {
                         echo "";
                         HTTP::end();
                     } else {
                         // 得到空闲客服帐号
                         $kf_account = transToWxServer::findRelaxCustom("HCT");
                         if (!empty($kf_account)) {
                             $result = $this->transmitService($object, $kf_account);
                             redisData::hSet($client_openid, 'custom', "1");
                         } else {
                             // 客服不在线
                             $content = "客服已离线,请稍候重试!";
                             $result = $this->transmitText($object, $content);
                         }
                     }
                     break;
                     //汇承官网
                 //汇承官网
                 case "IndexHC":
                     break;
                     //智能控制
                 //智能控制
                 case "IntelligentControl":
                     //     $getintell_mark = redisData::hGet($client_openid,'intell');
                     // if($getintell_mark == "0")
                     //     {
                     //         redisData::hSet($client_openid,'intell',"1");
                     //         $content = "成功进入智能控制!\n\n";
                     //         $content.="发送数字'0'可退出智能模式";
                     //         $result = $this->transmitText($object, $content);
                     //     }else{
                     //         $content = "智能控制中...!";
                     //         $result = $this->transmitText($object, $content);
                     //     }
                     break;
                     //用户主动退出多客服会话
                 //用户主动退出多客服会话
                 case "Exit":
                     $getcustom_mark = redisData::hGet($client_openid, 'custom');
                     if ($getcustom_mark == "1") {
                         $content = "提示: 用户主动结束会话!";
                         $kf_account = transToWxServer::findUserSession($object);
                         transToWxServer::closeSalerSession($object, $kf_account, $content);
                         // Gateway::sendToAll($error);
                         redisData::hSet($client_openid, 'custom', "0");
                     } else {
                         echo "";
                         HTTP::end();
                     }
                     break;
             }
             break;
         case "VIEW":
             $openid = $object->FromUserName;
             $_SESSION['username'] = $openid;
             break;
             //多客服主动关闭会话事件
         //多客服主动关闭会话事件
         case "kf_close_session":
             $content = "感谢您的咨询,我们下次再见!";
             transToWxServer::transToWxClientMsg($object, $content);
             redisData::hSet($object->FromUserName, 'custom', "0");
             // return $result;
             // $content = "关闭了会话";
             // $result = $this->transmitText($object, $content);
             break;
             //多客服转接会话事件
         //多客服转接会话事件
         case "kf_switch_session":
             $service_id = $object->ToKfAccount;
             //得到客服的昵称
             $service_name = redisData::Get($service_id);
             $content = "已转接到 客服: {$service_name}";
             transToWxServer::transToWxClientMsg($object, $content);
             break;
     }
     return $result;
 }
Beispiel #7
0
 public static function findUserSession($object)
 {
     $access_token = redisData::Get('access_token');
     $openid = $object->FromUserName;
     $url = "https://api.weixin.qq.com/customservice/kfsession/getsession?access_token={$access_token}&openid={$openid}";
     $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);
     $jsoninfo = json_decode($output, true);
     $kf_account = $jsoninfo["kf_account"];
     return $kf_account;
 }