公众号¶
自定义菜单¶
限制:
1. 自定义菜单最多包括3个一级菜单,每个一级菜单最多包含5个二级菜单。
2. 一级菜单最多4个汉字,二级菜单最多7个汉字,多出来的部分将会以“...”代替。
3. 菜单的刷新策略是,在用户进入公众号会话页或公众号profile页时,如果发现上一次拉取菜单的请求在5分钟以前,就会拉取一下菜单
自定义菜单接口可实现多种类型按钮,如下:
1. click:点击推事件。
用户点击click类型按钮后,微信服务器会通过消息接口推送消息类型为event的结构给开发者(参考消息接口)
2. view:跳转URL。
微信客户端将会打开开发者在按钮中填写的网页URL,可与网页授权获取用户基本信息接口结合,获得用户基本信息。
3. scancode_push:扫码推事件。
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后显示扫描结果(如果是URL,将进入URL)
且会将扫码的结果传给开发者,开发者可以下发消息。
4. scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框。
用户点击按钮后,微信客户端将调起扫一扫工具,完成扫码操作后,将扫码的结果传给开发者,同时收起扫一扫工具
然后弹出“消息接收中”提示框,随后可能会收到开发者下发的消息。
5. pic_sysphoto:弹出系统拍照发图。
用户点击按钮后,微信客户端将调起系统相机,完成拍照操作后,会将拍摄的相片发送给开发者,并推送事件给开发者,
同时收起系统相机,随后可能会收到开发者下发的消息。
6. pic_weixin:弹出微信相册发图器。
用户点击按钮后,微信客户端将调起微信相册,完成选择操作后,将选择的相片发送给开发者的服务器,并推送事件给开发者,
同时收起相册,随后可能会收到开发者下发的消息。
7. pic_photo_or_album:弹出拍照或者相册发图。
用户点击按钮后,微信客户端将弹出选择器供用户选择“拍照”或者“从手机相册选择”。
用户选择后即走其他两种流程。
8. location_select:弹出地理位置选择器。
用户点击按钮后,微信客户端将调起地理位置选择工具,完成选择操作后,将选择的地理位置发送给开发者的服务器,
同时收起位置选择工具,随后可能会收到开发者下发的消息。
9. media_id:下发消息(除文本消息)
用户点击media_id类型按钮后,微信服务器会将开发者填写的永久素材id对应的素材下发给用户,
永久素材类型可以是图片、音频、视频、图文消息。
请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。
10. view_limited:跳转图文消息URL。
用户点击view_limited类型按钮后,微信客户端将打开开发者在按钮中填写的永久素材id对应的图文消息URL,
永久素材类型只支持图文消息。
请注意:永久素材id必须是在“素材管理/新增永久素材”接口上传后获得的合法id。
备注
3到8的所有事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。9和10,是专门给第三方平台旗下未微信认证(具体而言,是资质认证未通过)的订阅号准备的事件类型,它们是没有事件推送的,能力相对受限,其他类型的公众号不必使用。
JSSDK¶
步骤一:绑定域名:
先登录微信公众平台进入“公众号设置”的“功能设置”里填写“JS接口安全域名”。
步骤二:引入JS文件:
在需要调用JS接口的页面引入如下JS文件:http://res.wx.qq.com/open/js/jweixin-1.6.0.js
步骤三:通过config接口注入权限验证配置:
所有需要使用JS-SDK的页面必须先注入配置信息,否则将无法调用:
wx.config({
debug: true, // 开启调试模式,调用的所有api的返回值会在客户端alert出来,若要查看传入的参数,可以在pc端打开,参数信息会通过log打出,仅在pc端时才会打印。
appId: '', // 必填,公众号的唯一标识
timestamp: , // 必填,生成签名的时间戳
nonceStr: '', // 必填,生成签名的随机串
signature: '',// 必填,签名
jsApiList: [] // 必填,需要使用的JS接口列表
});
步骤四:通过ready接口处理成功验证:
wx.ready(function(){
// config信息验证后会执行ready方法,所有接口调用都必须在config接口获得结果之后,config是一个客户端的异步操作,
// 所以如果需要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。
// 对于用户触发时才调用的接口,则可以直接调用,不需要放在ready函数中。
});
步骤五:通过error接口处理失败验证:
wx.error(function(res){
// config信息验证失败会执行error函数,如签名过期导致验证失败,具体错误信息可以打开config的debug模式查看,
// 也可以在返回的res参数中查看,对于SPA可以在这里更新签名。
});
备注
jsapi_ticket是公众号用于调用微信JS接口的临时票据。正常情况下,jsapi_ticket的有效期为7200秒,通过access_token来获取。access_token(有效期7200秒)jsapi_ticket(有效期7200秒)
备注
卡券签名和JSSDK的签名完全独立,两者的算法和意义完全不同,请不要混淆。卡券 api_ticket 是用于调用卡券相关接口的临时票据,有效期为 7200 秒,通过 access_token 来获取。这里要注意与 jsapi_ticket 区分开来。