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

 

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

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

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

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

3.具体代码实现

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

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

<?php
namespace Home\Controller;
use Think\Controller;
class KefuController extends Controller {
	//代码不可直接使用,按照自身实际业务逻辑自行调整
    public function index(){
    	$openid = session('openid')
		if(empty($openid)){//如果没有openid则进行微信登录
			$this->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;
	}
}

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

<!doctype html>
<html lang="en">
<head>
    <meta charset="UTF-8">
    <meta name="Author" content="">
    <meta name="Keywords" content="">
    <meta name="Description" content="">
    <meta http-equiv="X-UA-Compatible"content="IE=edge">
    <meta content="telephone=no" name="format-detection" /> 
    <meta name="viewport" content="width=device-width, initial-scale=1.0,user-scalable=no">
    <title>客服</title>
</head>
<body>
	<div>
		<!-- 可以自行定义内容 -->
		正在跳转客服
	</div> 
	<script src="http://res.wx.qq.com/open/js/jweixin-1.6.0.js"></script>
	<script>
	  /*
	   * 注意:
	   * 1. 所有的JS接口只能在公众号绑定的域名下调用,公众号开发者需要先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
	   * 2. 如果发现在 Android 不能分享自定义内容,请到官网下载最新的包覆盖安装,Android 自定义分享接口需升级至 6.0.2.58 版本及以上。
	   * 3. 常见问题及完整 JS-SDK 文档地址:http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
	   *
	   * 开发中遇到问题详见文档“附录5-常见错误及解决办法”解决,如仍未能解决可通过以下渠道反馈:
	   * 邮箱地址:weixin-open@qq.com
	   * 邮件主题:【微信JS-SDK反馈】具体问题
	   * 邮件内容说明:用简明的语言描述问题所在,并交代清楚遇到该问题的场景,可附上截屏图片,微信团队会尽快处理你的反馈。
	   */
	  wx.config({
	    debug: false,
	    appId: '{$signPackage["appId"]}',
	    timestamp: {$signPackage["timestamp"]},
	    nonceStr: '{$signPackage["nonceStr"]}',
	    signature: '{$signPackage["signature"]}',
	    jsApiList: [
	      // 所有要调用的 API 都要加到这个列表中
	      'closeWindow'//关闭窗口接口
	    ]
	  });
	  wx.ready(function () {
	    // 在这里调用 API
	    wx.closeWindow();
	  });
	</script>
</body>
</html> 

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

参考文档

JS-SDK说明

客服消息-发消息

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

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
Vue 是一种流行的前端框架,可以用于构建用户界面。为了实现仿写微信公众号自定义菜单,我们可以按照以下步骤进行: 1. 安装 Vue:首先,我们需要在项目中安装 Vue。可以使用 npm 或者 yarn 进行安装,运行命令 `npm install vue` 或者 `yarn add vue` 完成安装。 2. 创建 Vue 组件:通过 Vue 的组件化特性,我们可以创建一个专门用于自定义菜单的组件。可以在组件中定义菜单的结构和样式,并提供相应的交互逻辑。 3. 使用 Vue Router:Vue Router 是 Vue 官方的路由管理器,可以用于实现页面间的跳转。通过配置路由,在不同的路径下展示不同的页面内容,使用户可以在不同菜单之间进行切换。 4. 获取菜单数据:在组件中,我们可以通过调用后端的接口获取微信公众号自定义菜单数据。可以使用 Vue 的生命周期钩子函数,在组件挂载之前获取数据,并将数据保存在组件的 data 中。 5. 渲染数据:将获取到的菜单数据渲染到页面中。可以使用 v-for 指令遍历菜单项,并使用 v-bind 将数据绑定到相应的元素上。这样就可以根据菜单数据动态渲染出自定义菜单。 6. 实现菜单交互功能:通过为菜单元素添加点击事件,可以实现菜单的交互功能。例如,当用户点击菜单项时,可以触发相应的事件,如跳转到对应的页面或展开子菜单。 7. 样式设计:通过调整样式,使菜单界面与微信公众号的样式一致。可以使用 CSS 进行样式设计,并使用 Vue 的样式绑定功能将样式应用到菜单组件上。 通过以上步骤,我们可以使用 Vue 实现仿写微信公众号自定义菜单。这样用户就可以在仿真的菜单界面上进行操作,实现类似微信公众号自定义菜单功能。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值