php开发微信小程序后台步骤流程(基于PHP实现微信小程序客服消息功能)
php开发微信小程序后台步骤流程
基于PHP实现微信小程序客服消息功能项目说明:
本项目是一个简单微信小程序客服消息类,实现客服消息相关功能。官方给的php示例有误,这里就不再吐槽了。
本示例是采用开发者服务器,没有采用云调用的形式。
官方文档:
客服消息指南
客服消息服务端
适用场景
客户消息流程图
使用步骤
1、开启客服消息
...
https://mp.weixin.qq.com/wxam...
登录-开发-开发设置-消息推送
[]( https://raw.githubusercontent...
点击“启动”
[]( https://raw.githubusercontent...
URL(服务器地址):填开发者服务器对应的url,如 https://xxxxxx/demo.php
token(令牌):这个随便填,要求3-32位。
encodingaeskey(消息加密密钥):这个点击“随机生成”即可。
消息加密方式:可以根据自己需要选择,本例选择”兼容模式“。
数据格式:json相对于xml来说,从压缩效率及传输效率更具优势,这里我们选json。
注意:以上操作完后先不要提交,等配置好开发者服务端后再提交。
2、配置开发者服务端
检验signature的php示例代码:
|
$signature = $_get [ "signature" ]; $timestamp = $_get [ "timestamp" ]; $nonce = $_get [ "nonce" ]; $echostr = $_get [ "echostr" ]; $token = token; //这里改成你第一步操作时填写的token $tmparr = array ( $token , $timestamp , $nonce ); sort( $tmparr , sort_string); $tmpstr = implode( $tmparr ); $tmpstr = sha1( $tmpstr ); if ( $tmpstr == $signature ) { return $echostr ; } else { return false; } |
官方示例没有返回 $echostr
,这个检验开发者服务端是否成功的关键,必须返回。
3、提交消息推送配置
如果没有报错,证明配置成功。
4、开发者服务端demo
|
<?php //验证signature //$signature = $_get["signature"]; //$timestamp = $_get["timestamp"]; //$nonce = $_get["nonce"]; //$echostr=$_get["echostr"]; // //$token = token;//这里改成你第一步操作时填写的token //$tmparr = array($token, $timestamp, $nonce); //sort($tmparr, sort_string); //$tmpstr = implode( $tmparr ); //$tmpstr = sha1( $tmpstr ); // //if ($tmpstr == $signature ) { // return $echostr; //} else { // return false; //} include_once './xcxmsg.php' ; $xcxmsg = new xcxmsg(); $poststr = file_get_contents ( 'php://input' ); if (! $poststr ) return false; $postarr = json_decode( $poststr , true); if (!isset( $postarr [ 'msgtype' ]) || !isset( $postarr [ 'fromusername' ])) return false; $data = [ "touser" => $postarr [ 'fromusername' ]]; $accesstoken = $xcxmsg ->getaccesstoken(); $url = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=" . $accesstoken ; switch ( $postarr [ 'msgtype' ]) { case "text" : //如用户发送的是文字信息,这里处理 //回复图文链接,也可以回复别的类型,根据需要 $data [ 'msgtype' ] = "link" ; $data [ 'link' ] = [ "title" => "hello" , "description" => "is really a happy day" , "url" => "link_url" , //连接url "thumb_url" => "thumb_url" //图片url ]; $json = json_encode( $data , json_unescaped_unicode); $xcxmsg ->curl( $json , $url ); break ; case "image" : //如用户发送图片消息,进入这里 //服务端回复 图片,也可以回复别的类型,根据需要 $data [ 'msgtype' ] = "image" ; $data [ 'image' ] = [ 'media_id' => 'media_id值' ]; // 执行 $xcxmsg->upload($accesstoken)返回的 media_id $json = json_encode( $data , json_unescaped_unicode); $xcxmsg ->curl( $json , $url ); case "miniprogrampage" : //如用户发送小程序卡片,进入这里 //这里服务端回复小卡片,也可以回复别的类型,根据需要 $data [ 'msgtype' ] = "miniprogrampage" ; $data [ 'miniprogrampage' ] = [ "title" => "title" , "pagepath" => "pages/index/index" , "thumb_media_id" => "media_id值" ]; // 执行 $xcxmsg->upload($accesstoken)返回的 media_id $json = json_encode( $data , json_unescaped_unicode); $xcxmsg ->curl( $json , $url ); break ; case "event" : //如用户进入会话事件 //这里可以回复文本 $data [ 'msgtype' ] = "text" ; $data [ 'text' ] = [ "content" => "hello world" , ]; $json = json_encode( $data , json_unescaped_unicode); $xcxmsg ->curl( $json , $url ); break ; default : } |
5、小程序前端
在需要的地方添加以下代码:
|
<button open-type= "contact" >客服消息</button> |
用微信开发工具的预览,生成二维码,扫描测试是否成功。
项目地址: https://github.com/guyan0319/...
总结
以上所述是小编给大家介绍的基于php实现微信小程序客服消息功能,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对开心学习网网站的支持!
如果你觉得本文对你有帮助,欢迎转载,烦请注明出处,谢谢!原文链接:https://segmentfault.com/a/1190000020030043
- thinkphp使用说明(thinkphp框架使用JWTtoken的方法详解)
- php如何创建二维数组(PHP二维索引数组的遍历实例分析2种方式)
- php上传文件的要求(PHP 文件上传限制问题)
- nginx和php怎么结合(php和nginx交互实例讲解)
- vuephp后台开发框架(Vue+thinkphp5.1+axios实现文件上传)
- thinkphp5对接支付宝扫码支付(ThinkPHP框架下整合支付宝支付功能图文教程)
- php开发pdo事务处理(Cpanel下Cron Jobs定时执行PHP的方法)
- dedecms注册怎么给权限(织梦DedeCms系统未审核文档禁止动态浏览修改方法view.php)
- python与php比较(浅谈php调用python文件)
- php探针哪个牌子好用(php探针使用原理和技巧讲解)
- php-fpm配置文件在哪里(PHP-FPM 设置多pool及配置文件重写操作示例)
- php查找文件存在(php判断目录存在的简单方法)
- phparray函数的用法(php array_chunk函数用法与注意事项)
- php新建文件夹代码(php新建文件的方法实例)
- phpstudy安装教程详解学习(phpstudy下载安装简明图文教程)
- dedecms验证码识别(dedecms 软件下载频道防盗链php代码)
- 小说 小伙穿越成刘备,用现代知识指挥作战,众谋士都看呆了(小伙穿越成刘备)
- 解析葡萄牙6-1瑞士 进攻多点开花,贡萨洛-拉莫斯一战成名(解析葡萄牙6-1瑞士)
- 这支 奇兵队 腕大 有范儿还各怀绝技,毒贩杀人犯见了都要仓皇而逃(这支奇兵队腕大)
- 雄藩崛起 奇兵队与幕末长州藩军事改革(雄藩崛起奇兵队与幕末长州藩军事改革)
- 九月初,爱如蜜糖,甜到心扉,迷恋彼此,一日不见兮,思之若狂(九月初爱如蜜糖)
- ()
热门推荐
- sqlserver日志目录是否过大(SQL Server利用sp_spaceused如何查看表记录存在不准确的情况)
- idea怎么在tomcat部署项目(IDEA 配置Tomcat服务器和发布web项目的图文教程)
- html5的语法变化(详解HTML5.2版本带来的修改)
- css3项目列表属性(像素密度与CSS3的viewport在移动端Web响应式布局中的运用)
- 阿里云盘挂载云服务器(阿里云主机的安装硬盘挂载数据盘加载或修改/www)
- idea 一键部署springboot docker(IDEA部署Docker到WSL2的详细过程)
- mysqldecimal类型转换(mysql中decimal数据类型小数位填充问题详解)
- 云主机和虚拟主机的区别(虚拟主机和云服务器有什么区别)
- entity framewrk访问数据库的封装类
- python里import的是什么(python中import与from方法总结推荐)
排行榜
- 1
- 2
- 3
- 4
- 5
- 6
- 7
- 8
- 9