微信公众号自定义菜单调起微信客服

 

1.准备工作:认证的订阅号,开通客服功能,添加一个客服,关闭公众号开发者功能(或者自行完成业务逻辑)

2.思路:点击菜单栏跳转到公众号页面,请求后台,后台获取openid然后发送客服消息到当前微信号(后台发送客服消息给用户此时用户与客服还未建立连接,需要用户发送消息之后,客服在微信客服网页端接入后即可自动建立连接),关闭当前页面跳转到公众号

用户发送消息后微信公众号客服网页端可接收到

效果大致如下,图片源于网络

微信公众号自定义菜单调起微信客服_第1张图片

3.具体代码实现

我demo使用的是TP框架,只要思路一样即可

后台代码,代码不可直接使用,按照自身实际业务逻辑自行调整

wxLogin();//具体微信登录业务逻辑自行实现
		}else{
			//发送消息
			//https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN
			//获取accessToken,代码未实现,按照自己的业务逻辑自行实现
			$accessToken = $this->getAccessToken();
			$sendurl = 'https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token='.$accessToken;
			//{
			//     "touser":"OPENID",
			//     "msgtype":"text",
			//     "text":
			//     {
			//          "content":"Hello World"
			//     }
			// }
			$data = array(
				'touser' => session('openid'),
				'msgtype' => 'text',
				'text' => array(
					'content' => "请输入您想咨询的问题,如果长时间未回复,则可能没有客服在线,请稍后再试 客服在线时间:工作日9:00-18:00"
				)
			);
			
			$res = $this->httpPost(json_encode($data,JSON_UNESCAPED_UNICODE),$sendurl);//发送请求
			//var_dump($res);可进行一下结果判断或者其他逻辑
		}
		//由于需要JSSDK接口,需要生成需要的参数详情参照开发文档
		$signPackage = $this->getSignPackage();
		//https://developers.weixin.qq.com/doc/offiaccount/OA_Web_Apps/JS-SDK.html
		$this->assign('signPackage',$signPackage);
        $this->display();
    }
    private function httpPost($curlPost,$url){
		$curl = curl_init();
		curl_setopt($curl, CURLOPT_URL, $url);
		curl_setopt($curl, CURLOPT_HEADER, false);
		curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
		curl_setopt($curl, CURLOPT_NOBODY, true);
		curl_setopt($curl, CURLOPT_POST, true);
		curl_setopt($curl, CURLOPT_POSTFIELDS, $curlPost);
		$return_str = curl_exec($curl);
		curl_close($curl);
		return $return_str;
	}
}

前台代码,代码不可直接使用,按照自身实际业务逻辑自行调整




    
    
    
    
    
     
    
    客服


	
正在跳转客服

4.在公众号 菜单设置中设置菜单链接到自己的后台链接,生效后点击菜单会跳转到公众号页面,根据逻辑自动发送消息给该用户,用户可以直接在公众号中发送消息给客服

微信公众号自定义菜单调起微信客服_第2张图片

参考文档

JS-SDK说明

客服消息-发消息

码字不易,转载请注明出处

你可能感兴趣的:(微信公众号自定义菜单调起微信客服)