易信公众平台自定义菜单及响应php

合集下载

微信公众平台各大接口详细功能演示与实现..

微信公众平台各大接口详细功能演示与实现..

json请求格式:
查询用户组所在分组
通过用户的OpenID查询其所在的GroupID。
openid为用户ID,用户关注或者发送消息时 <FromUserName></FromUserName>中的数据
修改分组名
通过分组查询中得到的groupId可以修改分组名 返回值,成功或失败
移动用户分组
通过用户的 openid和分组id修改 返回值,成功或失败
一、用户管理
4.获取用户地理位置
开通了上报地理位置接口的公众号,用户在关注后进入公众号会话 时,会弹框让用户确认是否允许公众号使Байду номын сангаас其地理位置。弹框只在关 注后出现一次,用户以后可以在公众号详情页面进行操作。
用户同意上报地理位置后,每次进入公众号会话时,都会在进入时 上报地理位置,上报地理位置以推送XML数据包到开发者填写的URL 来实现。
1 2 3 4 5
用户管理
多客服功能
自定义菜单 生成带参数的二维码 微信JS接口
一、用户管理
1.分组管理接口
2.获取用户信息 3.获取关注者列表
4.用户地理位置获取 5.网页授权获取用户基本信息
6.网页获取用户网络状态(JS接口)
一、用户管理
1.分组管理
对应公众平台模块:
创建管理:
一个公众账号,最多支持创建 500个分组。 程序实现方法: 1.获取acess_token:使用PHP方法 file_get_contents()将https:///cgibin/token?grant_type=client_credential&appid=APPID&secret=A PPSECRET获取acess_token接口作为参数则可。 2.如下例:

微信公众平台自定义菜单

微信公众平台自定义菜单

微信公众平台自定义菜单[导读] 最近微信公众平台挺火的,肯定好多公司像我们公司一样,要开发微信公众平台,在此记录一下在制作自定义菜单时遇到的问题,希望能给某些人点思路,或少走点弯路为了动态修改自定义菜单,把菜单项存入数据库中$arr是最近微信公众平台挺火的,肯定好多公司像我们公司一样,要开发微信公众平台,在此记录一下在制作自定义菜单时遇到的问题,希望能给某些人点思路,或少走点弯路.为了动态修改自定义菜单,把菜单项存入数据库中$arr是从数据库查询出来的经过处理后的数组格式为:?array(1) {["button"] => array(3) {[0] => array(3) {["type"] => string(4) "view"["name"] => string(12) "公司新闻"["url"] => string(24) ""}[1] => array(3) {["type"] => string(4) "view"["name"] => string(12) "公司案例"["url"] => string(20) ""}[2] => array(2) {["name"] => string(12) "智能家居"["sub_button"] => array(5) {["url"] => string(22) ""[0] => array(3) {["type"] => string(5) "click"["name"] => string(12) "功能描述"["key"] => string(10) "smart_desc"}[1] => array(3) {["type"] => string(5) "click"["name"] => string(12) "每日一点"["key"] => string(9) "day_click"}[2] => array(3) {["type"] => string(5) "click"["name"] => string(12) "一天一点"["key"] => string(13) "eve_day_click"}[3] => array(3) {["type"] => string(5) "click"["name"] => string(12) "休闲时刻"["key"] => string(11) "xiuxian_day"}[4] => array(3) {["type"] => string(5) "click"["name"] => string(12) "做人好难"["key"] => string(3) "nan"}}}}}在添加菜单的时候发现直接json_encode($arr);会提示40016错误:不合法的按钮个数在调用了json_encode函数之后所有中文被转换成"\u8fd9" 这种形式,为了使用json_encode处理后的结构而不改变中文可以使用如下函数(来源于互联网):?/**************************************************************** 使用特定function对数组中所有元素做处理* @param string &$array 要处理的字符串* @param string $function 要执行的函数* @return boolean $apply_to_keys_also 是否也应用到key上* @access public**************************************************************/function arrayRecursive(&$array, $function, $apply_to_keys_also = false){static $recursive_counter = 0;if (++$recursive_counter > 1000) {die('possible deep recursion attack');}foreach ($array as $key => $value) {if (is_array($value)) {self::arrayRecursive($array[$key], $function, $apply_to_keys_also);} else {$array[$key] = $function($value);}if ($apply_to_keys_also && is_string($key)) {$new_key = $function($key);if ($new_key != $key) {$array[$new_key] = $array[$key];unset($array[$key]);}}}$recursive_counter--;}/**************************************************************** 将数组转换为JSON字符串(兼容中文)* @param array $array 要转换的数组* @return string 转换得到的json字符串* @access public**************************************************************/function JSON($array) {self::arrayRecursive($array, 'urlencode', true);$json = json_encode($array);return urldecode($json);}执行添加:?function apply(){$token_str = self::get_access_token();$del_url = "https:///cgi-bin/menu/delete?access_token={$token_str}";file_get_contents($del_url);$apply_url = "https:///cgi-bin/menu/create?access_token={$token_str}";$data = self::JSON(self::get_menu());//json化中文不变$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $apply_url);curl_setopt($ch, CURLOPT_CUSTOMREQUEST, "POST");curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, FALSE);curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (compatible; MSIE 5.01; Windows NT 5.0)');curl_setopt($ch, CURLOPT_FOLLOWLOCA TION, 1);curl_setopt($ch, CURLOPT_AUTOREFERER, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $data);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$result = curl_exec($ch);curl_close($ch);$result = json_decode($result,true);$this->redirect("Menu/index",array('msg'=>($result['errcode']==0?'操作成功':'操作失败'),'state'=>$result['errcode']==0 ? 0 : 1));}OK添加成功^_^ ,仅供参考当然代码过多发到首页肯定是过不了的,不过为了让更多人看到还是厚着脸色发布到首页(不知道能在首页呆几分钟~。

第4章1 微信公众平台API详解:高级开发(自定义菜单)

第4章1 微信公众平台API详解:高级开发(自定义菜单)
程序本身在接收到访问请求时首先判断该请求使用的协议是 否符合本程序的要求,即来访请求是否使用HTTPS协议,如 果不是就将其访问协议重定向为HTTPS 。
内容 导航
CONTENTS
发送HTTPS请求
自定义菜单
9
接口访问凭证
自定义菜单接口
响应菜单单击事件
3.2 接口访问凭证
自定义菜单
10
是进入各种接口的钥 匙,是公众号的全局
3.1发送HTTPS请求
HTTPS保 护用户数 据的实现
方式
自定义菜单
5
01 内容加密
OPTION
浏览器到服务器的内容都是以加密形式传输的,中间人无法直接
查看原始内容.
02
OPTION
身份加密
保证用户访问的是真正想要访问的网站,即使被DNS劫持到了 第三方站点,也会提醒用户没有访问真实站点,可能是被劫持 了.
http请求方式: GET https:///cgibin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET
3.2 接口访问凭证
自定义菜单
12
3.2.2 获取接口凭证方法
手动获取 将请求内容放在浏览器的地址栏上进行直接访问。
3.1发送HTTPS请求
自定义菜单
8
3.1.2微信上的实现方法
01 静态超链接
OPTION
网站中使用最多也最简单的方法。它的好处在于容易实现,不需
要额外开发。但不容易维护管理。
02
OPTION
资源访问限制
为了保护Web应用中的敏感数据,防止资源的非法访问和保证 传输的安全性。

第9讲.PHP微信开发实例_PHP视频教程_“图片消息”和“ 回复图文消息”接口应用实例(下)

第9讲.PHP微信开发实例_PHP视频教程_“图片消息”和“ 回复图文消息”接口应用实例(下)
CREATE TABLE IF NOT EXISTS `users` ( `loginname` varchar(50) NOT NULL, `names` varchar(255) DEFAULT '0', `pwd` varchar(50) DEFAULT '0', `demand` varchar(255) DEFAULT '0', `longitude` varchar(255) DEFAULT '0', `latitude` varchar(255) DEFAULT '0', `mobile` varchar(255) DEFAULT '0', `create_time` datetime DEFAULT NULL, PRIMARY KEY (`loginname`) ) ENGINE=MyISAM DEFAULT CHARSET=utf8;

编写PHP程序,实现订餐过程中的交互(接收用户选择的套餐编号、手机号 码和当前位置) 完善代码(欢迎信息、帮助消息)
2
PHP微信开发教程: /goods-320.html
欢迎访问我们的官方网站
北风网
基于微信公众平台消息接口的应用开发
开发培训
第9讲 微信公众平台“),实现微信平台订餐系 统
讲师:fsdos (北风网版权所有)
服务器端PHP编程

准备好餐馆的菜单图片,将图片FTP到服务器上 编写PHP程序,实现回复图文消息接口以显示菜单图片(直接修改图片数据 库,然后调用上一节课的程序) 创建用户表 users

易信公众平台

易信公众平台
验证功能:凡是在易信公众平台注册的时候,都有一个选项“验证”,如果选择是,那 公众号注册完之后在高级功能里会多了一个权限设置的,这样只有您设定的人才能关注该帐 号。相反就不能关注该帐号。而选择否的时候,就跟普通的微信公众号一样,没有权限设定, 谁关注都不用进行验证。 媒体资讯 品牌、个人、媒体,通过易信与粉丝互动,向大家传递更多资讯信息。
注册 与微信公众号注册大同小异,需要审核。(易信公众平台尚处于试运行阶段,我们会对
申请者逐步开放,感谢你对易信的支持。)
认证加 V 关注人数 500+申请。
自定义菜单 易信公众平台所有公众号都可以使用自定义菜单(PHP 代码)。
易信公众ቤተ መጻሕፍቲ ባይዱ台
针对不通的类群增加了几个功能:客户服务、工具助手、内部分享以及媒体资讯。
四大特色服务 客服服务 易信向用户提供免费即时通讯服务,帮助企业建立维护用户关系。 工具助手 易信开放接口,支持更多开发者向用户提供更加丰富的实用工具。 内部分享 易信提供关注验证权限,更好的向企业组织提供内部分享交流服务。

微信自动回复与自定义菜单操作流程(PPT 57张)

微信自动回复与自定义菜单操作流程(PPT 57张)

(1)首先,登陆第三方平台,找到已添加 好的账号,点击“编辑”,即可查看对应接 口地址(URL)与TOKEN。
(2)然后回到微信公众平台,点击主页面开 发者中心按钮,进入配置项,点击修改配置。
(3)将第三方平台的URL和Token粘贴复制进去,点 击提交,微信公众平台接口就与第三方平台接口连接 起来了。(无论使用哪一种第三方平台,只需要将你 使用的第三方平台的服务器配置即URL和TOKEN连接 到微信公众平台,则可使用第三方平台功能。)
激励学生学习的名言格言 220、每一个成功者都有一个开始。勇于开始,才能找到成功的路。 221、世界会向那些有目标和远见的人让路(冯两努——香港著名推销商) 222、绊脚石乃是进身之阶。 223、销售世界上第一号的产品——不是汽车,而是自己。在你成功地把自己推销给别人之前,你必须百分之百的把自己推销给自己。 224、即使爬到最高的山上,一次也只能脚踏实地地迈一步。 225、积极思考造成积极人生,消极思考造成消极人生。 226、人之所以有一张嘴,而有两只耳朵,原因是听的要比说的多一倍。 227、别想一下造出大海,必须先由小河川开始。 228、有事者,事竟成;破釜沉舟,百二秦关终归楚;苦心人,天不负;卧薪尝胆,三千越甲可吞吴。 229、以诚感人者,人亦诚而应。 230、积极的人在每一次忧患中都看到一个机会,而消极的人则在每个机会都看到某种忧患。 231、出门走好路,出口说好话,出手做好事。 232、旁观者的姓名永远爬不到比赛的计分板上。 233、怠惰是贫穷的制造厂。 234、莫找借口失败,只找理由成功。(不为失败找理由,要为成功找方法) 235、如果我们想要更多的玫瑰花,就必须种植更多的玫瑰树。 236、伟人之所以伟大,是因为他与别人共处逆境时,别人失去了信心,他却下决心实现自己的目标。 237、世上没有绝望的处境,只有对处境绝望的人。 238、回避现实的人,未来将更不理想。 239、当你感到悲哀痛苦时,最好是去学些什么东西。学习会使你永远立于不败之地。 240、伟人所达到并保持着的高处,并不是一飞就到的,而是他们在同伴们都睡着的时候,一步步艰辛地向上爬 241、世界上那些最容易的事情中,拖延时间最不费力。 242、坚韧是成功的一大要素,只要在门上敲得够久、够大声,终会把人唤醒的。 243、人之所以能,是相信能。 244、没有口水与汗水,就没有成功的泪水。 245、一个有信念者所开发出的力量,大于99个只有兴趣者。 246、环境不会改变,解决之道在于改变自己。 247、两粒种子,一片森林。 248、每一发奋努力的背后,必有加倍的赏赐。 249、如果你希望成功,以恒心为良友,以经验为参谋,以小心为兄弟,以希望为哨兵。 250、大多数人想要改造这个世界,但却罕有人想改造自己。

Php 微信自定义菜单接口

Php 微信自定义菜单接口

Php 微信自定义菜单接口简介开发者获取使用凭证(如何获取凭证)后,可以使用该凭证对公众账号的自定义菜单进行创建、查询和删除等操作。

自定义菜单接口可实现以下类型按钮:click(点击事件):用户点击click类型按钮后,微信服务器会通过消息接口(event类型)推送点击事件给开发者,并且带上按钮中开发者填写的key值,开发者可以通过自定义的key值进行消息回复。

view(访问网页):用户点击view类型按钮后,会直接跳转到开发者指定的url中。

创建自定义菜单后,由于微信客户端缓存,需要24小时微信客户端才会展现出来。

建议测试时可以尝试取消关注公众账号后,再次关注,则可以看到创建后的效果。

菜单创建接口说明通过POST一个特定结构体,实现在微信客户端创建自定义菜单。

请求说明(PS:PHP Q扣峮:276167802,验证:WK)http请求方式:POSThttps:///cgi-bin/menu/create?access_token=ACCESS_TOKEN请求示例:{"button":[{"type":"click","name":"今日歌曲","key":"V1001_TODAY_MUSIC"},{"type":"view","name":"歌手简介","url":"/"},{"name":"菜单","sub_button":[{"type":"click","name":"hello word","key":"V1001_HELLO_WORLD"},{"type":"click","name":"赞一下我们","key":"V1001_GOOD"}]}]}创建后效果:参数说明参数是否必须说明button 是按钮数组,按钮个数应为2~3个sub_button 否子按钮数组,按钮个数应为2~5个type 是按钮类型,目前有click类型name 是按钮描述,既按钮名字,不超过16个字节,子菜单不超过40个字节key 类型为click必须按钮KEY值,用于消息接口(event类型)推送,不超过128字节返回说明正确的Json返回结果:{"errcode":0,"errmsg":"ok"}错误的Json返回结果{"errcode":40018,"errmsg":"invalid button name size"}统一返回码说明菜单查询接口说明查询当前使用的自定义菜单结构。

微信公众平台使用教程fx

微信公众平台使用教程fx

• 实践:
• • • 发布图文消息的流程 准备素材 处理素材
• • • • 处理文字 处理图片 处理音频和视频 本地素材管理 后台素材管理 上传图片 上传音频 上传视频 发布原创图文消息 发布带有网盘链接的图文消息 转载其它公众号的图文消息 转载其它网站新闻 保存 预览 保存并群发 群发功能
• 管理后台基本功能

上传素材
• • • •

编辑新闻
• • • •
• 管理后台基本设置
• • • • • 公众号设置 安全中心 自动回复 自定义菜单 素材管理 •
发布新闻
• • • •
本案编辑于2016年11月,因微信后台不断更新,所以本案仅供学习参考,具体功能如有变化请以后台使用帮助为准源自本课件中链接的视频教程列表
提前想好: 1.公众号名字(一年改一次,注册时设置) 2.微信号(永远改不了,后台设置) 3.进公众号的密码 提醒:以上信息记在手机备忘录中
实际操作 注册订阅号的方法
注册订阅号:其它组织(学校)——准备材料
• 组织机构代码证(可注册50个) • 管理员身份证 • 对公银行账户(若无,校长名下的银行卡也可) • 邮箱(邮箱密码一定要记住) • 手机(管理员的手机)(手机可以用五次)
公众平台服务号、订阅号、企业号的相关说明 /faq/120911VrYVrA130805byM32u.html
订阅号、服务号、企业号的功能与区别
注册订阅号:明确概念
• 1.账号主体是什么? • 2.认证的作用? • 3.订阅号和服务号用哪个合适? • 4.主体类型对比
微信认证费用可以开发票吗? /faq/120911VrYVrA131101i2MjQf.html
公众平台注册如何选择帐号主体类型? /faq/120911VrYVrA141119MfeYjy.html

微信自动回复与自定义菜单操作流程(PPT 57页)

微信自动回复与自定义菜单操作流程(PPT 57页)

(2)消息自动回复
如果用户发送一些你没有在后台设定好的关键字或无效信息,系统就会发送这里的内容给用 户,用于提醒和帮助引导用户使用正确的关键字进行查询。这个功能就如同网站404错误页 面一样,提示没有该信息,并引导用户回到正确的使用途径上。所以这里也是必须要设置的, 否则当用户发送一些你没有设置的关键字,系统是不会反馈任何信息给用户的,这样会给用 户一个错觉,你的账号不能用了,从而导致取消关注。
(3)选中【回复文字】,即可进入编辑界面,在“自动回复内容”编辑框里可以添加文字 与表情,对关注用户的一些欢迎与引导。
必须提出的是,第三方平台关注时可回复超链接,超链接能够使关注用户能够快速的到达所指定 的界面,如活动界面,方面快捷体验好。具体设置如下。
*1.选中所要指定给用户的文章或活动链接,复制下来。
(2)配置好后,即可进行自定义菜单的设置。乐享自定义菜单设置简单明了。点击【添加主菜 单】,即可进行编辑,如图中“御景半岛”“房贷计算”“联系我们”均为主菜单,主菜单显示 顺序“从左到右”分别为数字“由小到大”
注:若“主菜单”下无“子菜单”, 可直接填写“关键词”或者“网址链 接”,用户点击后即可直接跳转。
6章
乐享接口配置
目前微信平台内的基础功能已经远远不能满足用户的需求,因此第三方平台的使用就显得尤为 重要。目前主要讲的第三方平台为“乐享”。
(1)首先,登陆第三方平台,找到已添加 好的账号,点击“编辑”,即可查看对应接 口地址(URL)与TOKEN。
(2)然后回到微信公众平台,点击主页面开 发者中心按钮,进入配置项,点击修改配置。
(2)点击主菜单的加号,在弹出窗口输入菜单名,就可以添加一个新的子菜单。
(子菜单选项:铅笔为修改菜单名,废纸篓为删除该子菜单,子菜单下无法再建子菜单,每个主菜单最多只能新建5个子 菜单。)

微擎目录结构介绍

微擎目录结构介绍

pro├─ addons …………………………………………【模块安装目录】 (意为附加组件)│├─ business ……………………………………模块的名称 (示例) ││├─ images 建议 css 文件也放此目录.││├─ template 模板目录│││├─ mobile APP 端模板目录││││└─ ... *.html APP 端模板文件│││└─ ... *.html Web 端模板文件││├─ inc 引用的 php 文件目录│││├─ mobile Mobile端目录││││├─ xxx.inc.php 微站入口││││└─ ... .│││└─ web Web端模板目录│││├─ xxx.inc.php 微站管理入口│││└─ ... .││├─ icon.jpg 模块图标││├─ preview.jpg 模块预览││├─ manifest.xml 安装清单││├─ module.php 模块设置││├─ processor.php 消息处理││├─ receiver.php 消息订阅││└─ site.php 微站页面│└─ ... ……………………………………………其他扩展模块├─ api ………………………………………………… .│└─ uc.php .├─ attachment ………………………………………附件文件夹│├─ audios ………………………………………音频附件文件夹│└─ images ………………………………………图片附件文件夹│├─ global …………………………………系统公共文件夹││└─上传年份││└─上传月份││└─随机文件名│└─ $uniacid ... ……………………………按公众号年月组织的图片文件├─ app ……………………………………………【微站(Mobile)入口】│├─ common .││├─ bootstrap.app.inc.php .││├─ common.func.php .││└─ template.func.php .│├─ resource .││├─ css .││├─ fonts .││└─ js .│├─ source .││├─ activity .││├─ auth 身份验证││├─ channel 频道││├─ entry 入口││├─ home 个人││├─ mc 会员中心││└─ utility .│├─ themes 微站皮肤││├─ default 系统默认││└─ ... 自定义皮肤│├─ index.php 微站入口│└─ test.php 微站测试页面├─ data ……………………………………………… .│├─ config.php.default .│├─ config.php 系统配置│└─ db.php .├─ framework ………………………………………【微擎系统通用的工具类和方法】│├─ builtin ……………………………………【微擎内建模块】││├─ basic 文字回复模块││├─ core 会话消息统计│││└─ receiver.php .││├─ cover 通用封面回复││├─ default 默认回复模块││├─ music 音乐回复模块││├─ news 图文回复模块││├─ userapi 自定义接口回复模块│││├─ api 功能文件目录││││├─ baike.php 百科││││├─ calendar.php 万年历││││├─ express.php 快递││││├─ news.php 新闻││││├─ translate.php 翻译││││├─ weather.php 天气││││└─ ... 可扩展│││├─ images .││││└─ ... .│││├─ template .││││└─ ... .│││├─ icon.jpg .│││├─ preview.jpg .│││├─ module.php .│││├─ processor.php .│││└─ site.php .││└─ ... .│├─ class …………………………………………工具类││├─ loader.class.php 文件加载器││├─ db.class.php 数据库操作类││├─ account.class.php 公众号业务操作基类, ││├─ weixin.account.class.php 微信公众号业务操作││├─ yixin.account.class.php 易信││└─ laiwang.account.class.php 来旺 .│├─ function ……………………………………工具函数││├─ global.func.php 【全局通用函数】││├─ cache.file.func.php 文件缓存││├─ cache.func.php 缓存功能││├─ cache.memcache.func.php 插件缓存││├─ cache.mysql.func.php mysql缓存││├─ communication.func.php http 通信││├─ .func.php 兼容函数(业务功能) ││├─ compat.func.php 兼容函数(逻辑功能) ││├─ file.func.php 文件操作││├─ logging.func.php 日志记录││├─ pdo.func.php 数据库访问操作││├─ db.func.php 数据库信息相关操作││└─ tpl.func.php 自定义模板控件│├─ library ………………………………………其他函数库││├─ json .││├─ pdo .││├─ phpmailer .││├─ qrcode .││└─ uc .│├─ model …………………………………………业务功能模块││├─ account.mod.php 公众号相关操作││├─ activity.mod.php 营销活动││├─ app.mod.php APP 端相关操作││├─ cache.mod.php 缓存││├─ cloud.mod.php 云服务││├─ extension.mod.php 扩展功能││├─ mc.mod.php 会员功能││├─ module.mod.php 公众号││├─ payment.mod.php 支付功能││├─ reply.mod.php 规则回复││├─ setting.mod.php 读写系统设置缓存││├─ user.mod.php 操作用户││└─ utility.mod.php .│├─ bootstrap.inc.php .│├─ const.inc.php .│└─ version.inc.php├─ payment ……………………………………………支付功能│├─ alipay 支付宝支付││└─ ...│├─ wechat 微擎支付││└─ ... .│└─ config.php 支付配置文件├─ web ………………………………………………【后台管理(Web)入口】│├─ common ………………………………………公用文件││├─ bootstrap.sys.inc.php .││├─ common.func.php .││├─ frames.inc.php .││└─ template.func.php .│├─ resource ……………………………………资源文件││├─ components 引用外部组件│││├─ colorpicker 拾色器│││├─ daterangerpicker 日期范围│││├─ datetimepicker 日历│││├─ emotions 自定义表情│││├─ jplayer 音乐播放器│││├─ kindeditor 富文本编辑器│││├─ switch 开关│││├─ tinymce ??│││└─ zclip ??││├─ css 样式文件││├─ fonts 字体资源││├─ images 图片文件││└─ js ……………………………………… js函数库││├─ app …………………………………自定义模块│││├─ biz.js 业务工具类│││├─ config.js 模块化编程配置│││├─ district.js 省市县│││├─ domReady.js .│││└─ util.js 各种功能对话框││├─ lib …………………………………│││├─ angular-sanitize.min.js .│││├─ angular.min.js .│││├─ bootstrap-filestyle.min.js .│││├─ bootstrap.min.js .│││├─ chart.min.js .│││├─ css.min.js .│││├─ jquery-1.11.1.min.js .│││├─ jquery-ui-1.10.3.min.js .│││├─ jquery.caret.js .│││├─ moment.js .│││└─ underscore-min.js .││└─ require.js ……………………… .│├─ source ………………………………………后台管理控制器││├─ account 【controller|c】公众号管理│││├─ __init.php 公众号菜单管理│││├─ post.ctrl.php 【action|a】 .│││└─ ... 公众号业务功能││├─ activity 营销活动││├─ cloud 云服务(一键更新、云服务等)││├─ extension 扩展功能││├─ home 基础设置,(模块)快捷导航││├─ mc 会员中心││├─ platform 基础设置,(模块规则,数据统计,入口设置)││├─ profile 功能选项,系统配置││├─ site 微站功能││├─ system 系统管理││├─ user 操作用户管理││└─ utility 系统业务逻辑│├─ themes ………………………………………后台管理视图││├─ default …………………………………内建后台管理样式││└─ ... ………………………………………定制界面样式│├─ index.php 后台入口│└─ test.php 后台测试单元├─ api.php …………………………………………【公众平台与微擎系统通信的接口】├─ index.php …………………………………………微擎入口└─ install.php ………………………………………微擎安装程序。

易信公众平台demo代码php(含验证接口)

易信公众平台demo代码php(含验证接口)

<?php//易信公众平台地址https://plus.yixin.im/login,复制后后缀改为.phpdefine("TOKEN", "yixin");$wechatObj = new wechatCallbackapiTest();if (isset($_GET['echostr'])) {$wechatObj->valid();}else{$wechatObj->responseMsg();}class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDA TA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$type = $postObj->MsgType;$customevent = $postObj->Event;$latitude = $postObj->Location_X;$longitude = $postObj->Location_Y;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDA TA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";switch ($type){ case "event";if ($customevent=="subscribe"){$contentStr = "感谢你的关注\n回复1查看账号简介\n回复2查看联系方式\n回复3查看法律文书";}break;case "image";$contentStr = "你的图片很棒!";break;case "location";$contentStr = "你的纬度是{$latitude},经度是{$longitude},我已经锁定!";break;case "text";switch($keyword){case "1";$contentStr = "易伟律师,擅长交通事故、保险纠纷、医疗损害";break;case "2";$contentStr = "联系方式:汕头市金平区华乾大厦703,1341702551,email:30090032@。

微信公众平台DEMO(PHP)

微信公众平台DEMO(PHP)

微信公众平台DEMO(PHP)本⼈在SAE环境下搭建了CI框架(其实这个⼩东西⽤不着⽤框架的),直接把代码写在了控制器⾥⾯<?php if ( ! defined('BASEPATH')) exit('No direct script access allowed');//define your tokendefine("TOKEN", "109");class Welcome extends CI_Controller {public function index(){/*$this->load->helper('url');$this->load->view('welcome_message');*/// use chat response$this->responseMsg();}// chat responsepublic function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDATA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$MsgType = $postObj->MsgType;$time = time();switch($MsgType){case('text'):$keyword = trim($postObj->Content);$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";switch($keyword){case(1):// Need to optimize// random read data from jokes$sql = 'SELECT * FROM jokes';$query = $this->db->query($sql);$res = $query->result_array();$num_rows = $query->num_rows();$key = rand(0, $num_rows - 1); // Notice: The value of key is from 0.//$contentStr = $key.'#'.$res[$key ]['content']; // debug$contentStr = $res[$key ]['content'];break;case(2):$contentStr = 'Your fromUsername is: '.$fromUsername;break;case(3):$newsTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><ArticleCount>2</ArticleCount><Articles><item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item><item><Title><![CDATA[%s]]></Title><Description><![CDATA[%s]]></Description><PicUrl><![CDATA[%s]]></PicUrl><Url><![CDATA[%s]]></Url></item></Articles></xml> ";$resultStr = sprintf($newsTpl, $fromUsername, $toUsername, $time,'news','百度','', '/img/bdlogo.gif', '','Google','', '', ''); // Notice: Google's logo is not suitable.echo $resultStr;exit; // Notice: It's exit, not break.case(4):$contentStr = "该功能正在开发中,敬请期待...";break;/* others */default:$contentStr = "回复数字选择服务\n";$contentStr .= "1 笑话精选\n";$contentStr .= "2 获取您的Username...\n";$contentStr .= "3 图⽂消息⽰例\n";$contentStr .= "4 开发中...\n";break;}$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, 'text', $contentStr);break;case('image'):$media_id = $postObj->MediaId;$imgTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Image><MediaId><![CDATA[%s]]></MediaId></Image></xml>";$resultStr = sprintf($imgTpl, $fromUsername, $toUsername, $time, 'image', $media_id);break;// try get the id of the receive image and analyse/*$media_id = $postObj->MediaId;$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";$length = strlen($media_id);$contentStr = "I have received the image message you sent, the id of this image is # $media_id #, and the length of media_id is # $length #"; $resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, 'text', $contentStr);break;*/case('voice'):$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDATA[%s]]></MsgType><Content><![CDATA[%s]]></Content></xml>";$contentStr = '你说啥?俺听不见...';$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, 'text', $contentStr);break;/* others */default:$resultStr = "Input something..."; break;}echo $resultStr;}else {echo "";exit;}}}。

微信公众平台关键词自动回复解决方案

微信公众平台关键词自动回复解决方案

3)多条回复设置方法:进入编辑 者模式,点击关键词自动回复=》 添加规则=》输入关键词匹配内容 后,再添加内容,然后选择“回复
全部”即可。
完全匹配功能设置
1、若选择了全匹配,在编辑页 面则会显示“已回复, 不能多一个字符也不能少一个字符。 比如设置“123”,仅回复“123”才
订阅用户。
关键字自动回复设置方法
登录微信公众平台=》功能=》自动 回复=》关键词自动回复=》添加规 则,即可添加相应的关键词自动回
复信息。
温馨提示:
1、文字中可以输入网页链接地 址,但不支持设置超链接。
2、关注用户发送消息命中设置关 键字回复规则后会有5秒钟的响应
时间。
3、规则名称自己设定(作为区 分作用);
微信公众平台关键词自动回复 解决方案
关键词自动回复功能的介绍
在微信公众平台设置关键词自动回 复,可以通过添加规则(规则名最 多为60字数),订阅用户发送的消 息内如果有您设置的关键字(关键 字不超过30字数,可选择是否全匹 配如设置了全匹配则必须关键字全 部匹配才生效),即可把您设置在 此规则名中回复的内容自动发送给
4、关键字配置(作为粉丝发来 命中的关键字);
5、回复信息(命中关键字后自 动回复的信息内容);
6、勾选了“回复全部”,只要粉 丝命中关键就会自动回复该规则内 的所有回复;若未勾选,会随机回
复;
7、建议在一个规则里设置一个关 键字,以便粉丝获得想要的答案。
关键字自动回复的规则
1、字数限制:
微信公众平台认证与非认证用户的 关键字自动回复设置规则上限为 200条规则(每条规则名,最多可 设置60个汉字),每条规则内最多 设置10条关键字(每条关键字,最 多可设置30个汉字)、5条回复 (每条回复,最多可设置300个汉

认证后的服务号及订阅号自定义菜单设置

认证后的服务号及订阅号自定义菜单设置

认证后的服务号/未认证的服务号及认证后订阅号自定义菜单设置
1、在微信公众平台点击“添加功能插件”
2、在右侧点击“自定义菜单”
3、点击右侧绿色模块“开通”
4、然后在跳出框点击“确定”
5、在跳出框点击“查看功能”
6、在上面点击绿框“开启+确定”
7、在菜单管理点击“+”
8、在跳出框输入“微官网”,点击确定
9、点击“微官网”跳出以下界面,点击“跳转到网页”
10、进入微官网点击“系统连接”→“复制链接”
11、将地址链接粘贴到页面地址里点击“保存”
12、在一级菜单下创建二级菜单,在一级菜单后点击“+”
13、进入微官网点击“系统连接”→“复制链接”将链接粘贴到页面地址里点击“保存”或点击“文章分类”→“复制链接”粘贴到页面地址里点击“保存”
14、直至将所有的自定义菜单设置结束以后,点击下端“预览”观看正常再点击“发布”在手机即可看到此效果。

自定义菜单的创建及菜单事件响应

自定义菜单的创建及菜单事件响应

⾃定义菜单的创建及菜单事件响应引⾔及内容概要在微信5.0以前,⾃定义菜单是作为⼀种内测资格使⽤的,只有少数公众帐号拥有菜单,因此出现很多企业为了弄到菜单不惜重⾦求购。

现如今,⼀⼤批帐号从订阅号转为服务号,很多都是奔着⾃定义菜单去的。

⽽且,经发现,微信最近的审核放松很多,只要申请服务号、⾃定义菜单的基本都成功了,根本不管填写的资料真伪。

不知道以后微信会不会翻脸,要求补全企业资料,那将会是⼀种给⼩孩⼀颗糖吃再把他打哭的感觉。

⾃定义菜单是申请到了,到底该怎么创建、怎么使⽤呢?最近⼏天不管是微信官⽅交流群,还是在我博客留⾔⾥,都能够看到不少开发者都在为这个发愁。

本篇⽂章就为⼤家解决这个难题。

⾃定义菜单的创建步骤1、找到AppId和AppSecret。

⾃定义菜单申请成功后,在“⾼级功能”-“开发模式”-“接⼝配置信息”的最后两项就是;2、根据AppId和AppSecret,以https get⽅式获取访问特殊接⼝所必须的凭证access_token;3、根据access_token,将json格式的菜单数据通过https post⽅式提交。

分析创建菜单的难点原来创建菜单这么简单,三步就能搞定?跟把⼤象放冰箱差不多。

呵呵,当然没有这么简单,那我们⼀步步来看,到底难在哪⾥?⾸先,第1步肯定都没有问题,只要成功申请了⾃定义菜单,⼀定能拿到AppId和AppSecret这两个值。

再来看第2步,由于是get⽅式获取access_token,很多⼈直接把拼好的url放在浏览器⾥执⾏,access_token就拿到了。

抛开是不是⽤编程⽅式实现的来说,这真是个好办法,显然⼤家在第⼆步上也没有问题。

最后再看第3步,拼装json格式的菜单数据,虽然繁锁⼀点,但基本上也都没有什么问题的,因为官⽅给了个例⼦,照猫画虎就⾏了。

那问题⼀定就出现在https post提交上了。

结论:不知道如何创建⾃定义菜单的朋友,⼤都可以归为以下三种情况:1)根本不看或者没看懂中关于“”、“”和“”部分的说明;2)不知道如何发起HTTPS请求(平时的http请求,直接使⽤HttpUrlConnection就可以轻松搞定,但https请求要复杂⼀点);3)不知道如何通过POST⽅式提交json格式的菜单数据。

PHP微信公众平台开发高级篇—自定义菜单课件PPT模板

PHP微信公众平台开发高级篇—自定义菜单课件PPT模板
php微信公众平台开发 高级篇—自定义菜单
演讲人
202x-11-11
目录
01. 第1章自定义菜单的使用技巧 02. 第2章自定义菜单代码实现
part one
01
第1章自定义菜单的使用技巧
第1章自定义菜单 的使用技巧
1-1内容详解 1-2自定义菜单简介及注意点 1-3自定义菜单-按钮类型click和 view 1-4测试账号功能详解
part one
02
第2章自定义菜单代码实现
第2章自定义菜单代码 实现
2-1创建自定义菜单
2-2自定义菜单代码实现
2-3自定义菜单微信端验 证及排错技巧
2-4自定义菜单的事件推 送介绍及代码实现
2-5自定义菜单的事件推 送验证及总结
感谢聆听

微擎介绍

微擎介绍
同时统一会员中心可以同时整合微信,易信,支付宝公众号,自 有APP等终端。
对CRM的一些功能的支持
新版 介绍
会员中心可以独立管理一个项目的所有用户. 可以理解为一个基 础的CRM,这个CRM是开放的, 不是只管理微信公众号的粉丝, 是可以接入其他平台绑定在一起来统一管理. 甚至是绑定多个微信公众号在一次来管理(这样: 一个项目同时有
行业 应用
案例 展示
适合于各类车展、房展、展会、庆典、年会、晚会等。
方式新颖:微信几乎每个智能手机都有,将个人微信与摇一摇结合新颖独到。
参与感强:所有用户同时参加活动,并且大屏幕实时显示分值和排名,活动结 束后所有用户都可以查询总的排名,所有用户都有强烈的参与感。
效果酷炫:所有环节都有音效,此外屏幕实时滚动带有特效,活动最后添加有 颁奖页面。
行业 应用
微医疗
移动医疗,让医疗服务 “随手可得”。改变了过去 人们只能前往医院“看病” 的传统生活方式。无论在家 里还是在路上,人们都能够 随时听取医生的建议 信技术的加入,不仅将节省 之前大量用于挂号、排队等 候乃至搭乘交通工具前往的 时间和成本,而且会更高效 地引导人们养成良好的生活 习惯,变治病为防病。
1. 全新的界面改版 2. 扩展机制 3. 多用户支持 4. 微站 5. 社区
历程 回顾
1. 更规范的开发扩展机制 2. 文档的完善 3. 整体的界面变更 4. 很多官方的模块
历程 回顾
重构底层代码
新版 介绍
1.规整很多系统代码和目录结构。 2.解决了很多代码和数据方面的冗余问题。 3.争对表结构的一些优化及索引的优化。 4.重新规划模块的机制。
统一会员中心
新版 介绍
统一会员中心(MemberCenter),可以说是0.6的一个核心功 能。将大量的重要的用户数据整合在一起,方便各功能之间的调 用。

微信公众平台自定义菜单设置方法

微信公众平台自定义菜单设置方法

微信公众平台自定义菜单设置方法:
进入公众平台=》功能=》高级模式=》编辑模式=》自定义菜单设置=》添加菜单=》点击“+”添加子菜单=》设置动作=》发布。

1、最多创建3个一级菜单,一级菜单名称名字不多于4个汉字或8个字母。

2、每个一级菜单下的子菜单最多可创建5个,子菜单名称名字不多于8个汉字或16个字母。

3、在子菜单下设置动作,可在“发布消息”中编辑内容(文字中可输入600字或字符),或者在“跳转到网络”中添加链接地址。

温馨提示:编辑中的菜单不会马上被用户看到,点击发布后,会在24小时后在手机端同步显示,粉丝不会收到更新提示,若多次编辑,以最后一次保存为准。

公众平台自定义菜单设置页面:。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

<?php//将本部分代码保存为menu.php,填写自己的appid和appsecret,在post处修改自己的菜单,在浏览器端输入..../menu.php,返回errmsg":"请求成功","errcode":0,即为成功。

$appid="";//填写appid$secret="";//填写appsecret$url = "https://api.yixin.im/cgi-bin/token?grant_type=client_credential&appid={ $appid}&secret={$secret}";$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);$a = curl_exec($ch);$strjson=json_decode($a);$token = $strjson->access_token;$post = ' { "button":[ { "name":"在线客服", "sub_button":[ { "name":"召唤精灵", "type":"click", "key":"/dt2/ai.yx" }, { "name":"人工服务", "type":"click", "key":"/dt2/chat.yx" } ] }, { "name":"自助服务", "type":"click", "key":"/dt2/self.yx?id=36001" }, { "name":"帐号服务", "type":"click", "key":"/dt2/self.yx" }, { "name":"其他","sub_button":[ { "name":"將军令", "type":"click", "key":"/dt2/self.yx?id=77011" }, { "name":"防盜教程", "type":"click", "key":"/dt2/self.yx" }, { "name":"防骗教程", "type":"click", "key":"/dt2/self.yx" }, { "name":"其他介紹", "type":"click", "key":"/dt2/self.yx" }, { "name":"切换帐号", "type":"click", "key":"/dt2/logout.yx" } ] } ] } ';$url = "https://api.yixin.im/cgi-bin/menu/create?access_token={$token}"; $ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POST, 1);curl_setopt($ch, CURLOPT_POSTFIELDS, $post);curl_exec($ch);curl_close($ch);?>以下为响应自定义菜单,在elseif($customevent=="CLICK")部分添加。

<?php//易信公众平台地址https://plus.yixin.im/login,复制后后缀改为.phpdefine("TOKEN", "yixin");$wechatObj = new wechatCallbackapiTest();if (isset($_GET['echostr'])) {$wechatObj->valid();}else{$wechatObj->responseMsg();}class wechatCallbackapiTest{public function valid(){$echoStr = $_GET["echostr"];//valid signature , optionif($this->checkSignature()){echo $echoStr;exit;}}public function responseMsg(){//get post data, May be due to the different environments$postStr = $GLOBALS["HTTP_RAW_POST_DATA"];//extract post dataif (!empty($postStr)){$postObj = simplexml_load_string($postStr, 'SimpleXMLElement', LIBXML_NOCDA TA);$fromUsername = $postObj->FromUserName;$toUsername = $postObj->ToUserName;$type = $postObj->MsgType;$key=$postObj->EventKey;$customevent = $postObj->Event;$latitude = $postObj->Location_X;$longitude = $postObj->Location_Y;$keyword = trim($postObj->Content);$time = time();$textTpl = "<xml><ToUserName><![CDATA[%s]]></ToUserName><FromUserName><![CDATA[%s]]></FromUserName><CreateTime>%s</CreateTime><MsgType><![CDA TA[%s]]></MsgType><Content><![CDATA[%s]]></Content><FuncFlag>0</FuncFlag></xml>";switch ($type){ case "event";if ($customevent=="subscribe"){$contentStr = "感谢你的关注\n回复1查看账号简介\n回复2查看联系方式\n回复3查看法律文书";}elseif($customevent=="CLICK"){if ($key== "/dt2/ai.yx"){$contentStr = "召唤精灵示例";}}break;case "image";$contentStr = "你的图片很棒!";break;case "location";$contentStr = "你的纬度是{$latitude},经度是{$longitude},我已经锁定!";break;case "text";switch($keyword){case "1";$contentStr = "易伟律师,擅长交通事故、保险纠纷、医疗损害";break;case "2";$contentStr = "联系方式:汕头市金平区华乾大厦703,1341702551,email:30090032@。

";break;case "3";$contentStr = "31离婚协议\n32租房合同\n33交通事故协议书";break;default;$contentStr ="hi";}break;default;$contentStr ="此项功能尚未开发";}$msgType="text";$resultStr = sprintf($textTpl, $fromUsername, $toUsername, $time, $msgType, $contentStr);echo $resultStr;}else {echo "";exit;}}private function checkSignature(){$signature = $_GET["signature"];$timestamp = $_GET["timestamp"];$nonce = $_GET["nonce"];$token = TOKEN;$tmpArr = array($token, $timestamp, $nonce);sort($tmpArr);$tmpStr = implode( $tmpArr );$tmpStr = sha1( $tmpStr );if( $tmpStr == $signature ){return true;}else{return false;}}}?>。

相关文档
最新文档