微信公众平台开发步骤(包括自定义菜单、网页受权、分享功能)

第一步:填写服务器配置

第二步:验证服务器地址的有效性

第三步:依据接口文档实现业务逻辑

用户向公众号发送消息时,公众号方收到的消息发送者是一个OpenID,是使用用户微信号加密后的结果,每一个用户对每一个公众号有一个惟一的OpenID。此外,因为开发者常常有需在多个平台(移动应用、网站、公众账号)之间共通用户账号,统一账号体系的需求,微信开放平台(open.weixin.qq.com)提供了UnionID机制。开发者可经过OpenID来获取用户基本信息,而若是开发者拥有多个应用(移动应用、网站应用和公众账号,公众账号只有在被绑定到微信开放平台账号下后,才会获取UnionID),可经过获取用户基本信息中的UnionID来区分用户的惟一性,html

1.获取access_tokenapi

公众号可使用AppID和AppSecret调用本接口来获取access_token;服务器

接口调用:https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET微信

2.获知微信服务器的IP地址列表:https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKENapp

自定义菜单微信公众平台

自定义菜单接口可实现多种类型按钮,以下:异步

 一、click:点击推事件ide

用户点击click类型按钮后,微信服务器会经过消息接口推送消息类型为event 的结构给开发者(参考消息接口指南),而且带上按钮中开发者填写的key值,开发者能够经过自定义的key值与用户进行交互;

二、view:跳转URL
函数

用户点击view类型按钮后,微信客户端将会打开开发者在按钮中填写的网页URL,可与网页受权获取用户基本信息接口结合,得到用户基本信息。

三、scancode_push:扫码推事件
工具

四、scancode_waitmsg:扫码推事件且弹出“消息接收中”提示框

五、pic_sysphoto:弹出系统拍照发图

六、pic_photo_or_album:弹出拍照或者相册发图
七、pic_weixin:弹出微信相册发图器

八、location_select:弹出地理位置选择器

九、media_id:下发消息(除文本消息)

十、view_limited:跳转图文消息URL

请注意,3到8的全部事件,仅支持微信iPhone5.4.1以上版本,和Android5.4以上版本的微信用户,旧版本微信用户点击后将没有回应,开发者也不能正常接收到事件推送。9和10,是专门给第三方平台旗下未微信认证(具体而言,是资质认证未经过)的订阅号准备的事件类型,它们是没有事件推送的,能力相对受限,其余类型的公众号没必要使用。

 

微信网页受权
若是用户在微信客户端中访问第三方网页,公众号能够经过微信网页受权机制,来获取用户基本信息,进而实现业务逻辑。
1.到公众平台官网中的开发者中心页配置受权回调域名
snsapi_base 只获取到用户的openid
snsapi_userinfo 用来获取用户的基本信息

关于网页受权access_token和普通access_token的区别
一、微信网页受权是经过OAuth2.0机制实现的,在用户受权给公众号后,公众号能够获取到一个网页受权特有的接口调用凭证(网页受权access_token),经过网页受权access_token能够进行受权后接口调用,如获取用户基本信息;
二、其余微信接口,须要经过基础支持中的“获取access_token”接口来获取到的普通access_token调用。
网页受权获取用户基本信息也遵循UnionID机制,可经过获取用户基本信息中的unionid来区分用户的惟一性
具体而言,网页受权流程分为四步:
 
微信网页受权自我总结:

首先打开OAuth 配置;肯定Scopes是snsapi_base仍是snsapi_userinfo?

 
一、以snsapi_base为scope发起的网页受权,是用来获取进入页面的用户的openid的,而且是静默受权并自动跳转到回调页的。用户感知的就是直接进入了回调页(每每是业务页面)
二、以snsapi_userinfo为scope发起的网页受权,是用来获取用户的基本信息的。但这种受权须要用户手动赞成,而且因为用户赞成过,因此无须关注,就可在受权后获取该用户的基本信息。
 

而后可经过

 
$wechat = app('wechat');
$oauth = $wechat->oauth;
$wechat_user = $oauth->user();
实例来获取用户信息;从中拿去到对应微信的openid;
亦或者也可经过微信公众平台文档中的接口逐步获取code,access_token等

若是须要微信受权登陆的状况下,获取到用户的信息以后可继续逻辑操做。好比:判断用户若是有登陆过就直接跳转到网站首页或者我的中心;若未登陆需受权登陆方可继续下一步操做。

微信JS-SDK说明文档
微信JS-SDK是微信公众平台面向网页开发者提供的基于微信内的网页开发工具包。网页开发者可借助微信高效地使用拍照、选图、语音、位置等手机系统的能力,同时能够直接使用微信分享、扫一扫、卡券、支付等微信特有的能力,为微信用户提供更优质的网页体验。

JSSDK使用步骤

步骤一:绑定域名

步骤二:引入JS文件

步骤三:经过config接口注入权限验证配置

步骤四:经过ready接口处理成功验证

全部接口调用都必须在config接口得到结果以后,config是一个客户端的异步操做,因此若是须要在页面加载时就调用相关接口,则须把相关接口放在ready函数中调用来确保正确执行。对于用户触发时才调用的接口,则能够直接调用,不须要放在ready函数中
 

判断当前客户端版本是否支持指定JS接口

wx.checkJsApi({
    jsApiList: ['chooseImage'], // 须要检测的JS接口列表,全部JS接口列表见附录2,
    success: function(res) {
        // 以键值对的形式返回,可用的api值true,不可用为false
        // 如:{"checkResult":{"chooseImage":true},"errMsg":"checkJsApi:ok"}
    }
});

获取“分享给朋友”按钮点击状态及自定义分享内容接口

wx.onMenuShareAppMessage({
    title: '', // 分享标题
    desc: '', // 分享描述
    link: '', // 分享连接
    imgUrl: '', // 分享图标
    type: '', // 分享类型,music、video或link,不填默认为link
    dataUrl: '', // 若是type是music或video,则要提供数据连接,默认为空
    success: function () { 
        // 用户确认分享后执行的回调函数
    },
    cancel: function () { 
        // 用户取消分享后执行的回调函数
    }
});

相关例子:

相关文章
相关标签/搜索