介绍
使用PHP怎么实现一个微信小程序客服消息功能?相信很多没有经验的人对此束手无策,为此本文总结了问题出现的原因和解决方法,通过这篇文章希望你能解决这个问题。
<强>使用步骤强>
<强> 1,开启客服消息强>
https://mp.weixin.qq.com/wxam..。
登录——开发——开发设置——消息推送
[] (https://raw.githubusercontent..。
点击“启动”
[] (https://raw.githubusercontent..。
URL(服务器地址):填开发者服务器对应的URL,如https://xxxxxx/demo.php
标记(令牌):这个随便填,要求3-32位。
EncodingAESKey(消息加密密钥):这个点击”随机生成“即可。
消息加密方式:可以根据自己需要选择,本例选择“兼容模式”。
数据格式:json相对于xml来说,从压缩效率及传输效率更具优势,这里我们选json。
注意:以上操作完后先不要提交,等配置好开发者服务端后再提交。
<强> 2,配置开发者服务端强>
检验签名的PHP示例代码:
signature 美元;=,$ _GET [“signature"];=,美元timestamp $ _GET [“timestamp"];=,美元nonce $ _GET [“nonce"]; 美元,echostr=$ _GET [“echostr"]; ,token 美元;=,令牌;//这里改成你第一步操作时填写的令牌 ,tmpArr 美元;=,阵列(令牌,美元,时间戳,美元,目前美元); ,排序(tmpArr美元,SORT_STRING); ,tmpStr 美元;=,内爆(,tmpArr 美元;); ,tmpStr 美元;=,sha1 (, tmpStr 美元;); ,if (tmpStr 美元;==,signature 美元),{ ,return echostr美元; ,}else { ,return 假; 以前,}>官方示例没有返回<代码>美元echostr> 代码,这个检验开发者服务端是否成功的关键,必须返回。
3,提交消息推送配置
如果没有报的错,证明配置成功。
4,开发者服务端演示
& lt; PHP ?//验证签名=//美元signature $ _GET [“signature"];=//美元timestamp $ _GET [“timestamp"];=//美元nonce $ _GET [“nonce"];//$ echostr=$ _GET [“echostr"];////token 美元;=,令牌;//这里改成你第一步操作时填写的令牌//tmpArr 美元;=,阵列(令牌,美元,美元的时间戳,,目前美元);//排序(tmpArr美元,SORT_STRING);//tmpStr 美元;=,内爆(,tmpArr 美元;);//tmpStr 美元;=,sha1 (, tmpStr 美元;);////if (tmpStr 美元;==,signature 美元),{//,return echostr美元;//},{else //,return 假;//} include_once & # 39;。/Xcxmsg.php& # 39;; $ xcxmsg =, new Xcxmsg (); $ postStr =, file_get_contents (& # 39; php://输入# 39;); if postStr美元(!) ,return 假; $ postArr =, json_decode (postStr美元,,真的); if (!收取($ postArr [& # 39; MsgType& # 39;]), | |, !收取($ postArr [& # 39; FromUserName& # 39;))) ,return 假; $ data =, (“touser",=祝辞,postArr美元[& # 39;FromUserName& # 39;]]; 美元$ accessToken =, xcxmsg→getAccessToken (); 时间=美元url “https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=",只accessToken美元; switch ($ postArr [& # 39; MsgType& # 39;]), { ,case “text": ,//如用户发送的是文字信息,这里处理 ,//回复图文链接,也可以回复别的类型,根据需要 ,$ data [& # 39; msgtype& # 39;],=,“link"; ,$ data[& # 39;链接# 39;],=,( ,,“title"=祝辞,“hello", ,,“description"=祝辞,“Is Really A Happy Day" ,,“url"=祝辞,“LINK_URL",//连接的url ,,“thumb_url"=祝辞;“thumb_url",//图片url ,); ,json 美元;=,json_encode(数据,美元,JSON_UNESCAPED_UNICODE); 旋度,xcxmsg→美元($ json,, $ url); ,打破; ,case “image":,//如用户发送图片消息,进入这里 ,//服务端回复,图片,也可以回复别的类型,根据需要 ,$ data [& # 39; msgtype& # 39;],=,“image"; ,$ data[& # 39;图像# 39;],=,(& # 39;media_id& # 39;,=祝辞,& # 39;media_id值& # 39;];,//,执行,美元xcxmsg→上传(accessToken美元)返回的,media_id ,json 美元;=,json_encode(数据,美元,JSON_UNESCAPED_UNICODE); 旋度,xcxmsg→美元($ json,, $ url); ,case “miniprogrampage": ,//如用户发送小程序卡片,进入这里 ,//这里服务端回复小卡片,也可以回复别的类型,根据需要 ,$ data [& # 39; msgtype& # 39;],=,“miniprogrampage"; ,$ data [& # 39; miniprogrampage& # 39;],=, ( ,,“title"=祝辞,“title", ,,“pagepath"=祝辞,“页面/索引/index" ,,“thumb_media_id"=祝辞,“media_id值“];//,执行,美元xcxmsg→上传(accessToken美元)返回的,media_id ,json 美元;=,json_encode(数据,美元,JSON_UNESCAPED_UNICODE); 旋度,xcxmsg→美元($ json,, $ url); ,打破; ,case “event": ,//如用户进入会话事件 ,//这里可以回复文本 ,$ data [& # 39; msgtype& # 39;],=,“text"; ,$ data[& # 39;文本# 39;],=,( ,,“content"=祝辞,“Hello World" )才能; ,json 美元;=,json_encode(数据,美元,JSON_UNESCAPED_UNICODE); 旋度,xcxmsg→美元($ json,, $ url); ,打破; ,默认值: null使用PHP怎么实现一个微信小程序客服消息功能