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

摘要:
微信网页授权如果用户在微信客户端访问第三方网页,公众号可以通过微信网页的授权机制获取用户的基本信息,从而实现业务逻辑。WeChat JS-SDK描述文档WeChat JS-SDK是一个基于微信的web开发工具包,由微信公共平台为web开发人员提供。

第一步:填写服务器配置

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

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

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

1.获取access_token

公众号可以使用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_TOKEN

自定义菜单

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

 1、click:点击推事件

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

2、view:跳转URL

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

3、scancode_push:扫码推事件

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

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

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

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

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

10、view_limited:跳转图文消息URL

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

 

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

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

首先打开OAuth 配置;确定Scopes是snsapi_base还是snsapi_userinfo?

1、以snsapi_base为scope发起的网页授权,是用来获取进入页面的用户的openid的,并且是静默授权并自动跳转到回调页的。用户感知的就是直接进入了回调页(往往是业务页面)
2、以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 () { 
        // 用户取消分享后执行的回调函数
    }
});

相关例子:

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

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

 

免责声明:文章转载自《微信公众平台开发步骤(包括自定义菜单、网页授权、分享功能)》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇MySQL各版本的区别(转)Ubuntu 14.04 安装Visual studio Code下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

Modbus RTU测试遇到的问题

硬件平台:硬石 YS-F1Pro 软件工具:STM32CubeMX 5.6.0 开发IDE: SW4STM32 串口工具: USB转485/232/422(宏宇泰) 在移植完Freemodbus到开发板上后进行测试: 连接开发板RS485端子A,B,GND到 转换工具的A,B,GND 打开测试软件Modbus Poll如下图: 波特率115200,无奇偶校...

C语言之生产者与消费者模型

多线程并发应用程序有一个经典的模型,即生产者/消费者模型。系统中,产生消息的是生产者,处理消息的是消费者,消费者和生产者通过一个缓冲区进行消息传递。生产者产生消息后提交到缓冲区,然后通知消费者可以从中取出消息进行处理。消费者处理完信息后,通知生产者可以继续提供消息。 要实现这个模型,关键在于消费者和生产者这两个线程进行同步。也就是说:只有缓冲区中有消息时,...

爱普生EPSON打印机 ME1+ (ME1)清零软件及方法

        今天单位有台EPSON ME1+出现“打印机的部件到了使用寿命。请与爱普生授权服务中心联系,可浏览爱普生公司主页”提示,呵。。。,又是打印计数器问题,出现问题,解决问题,咱打印计数器清零啰。。。。。。。。。。。         清零步骤 当您的爱普生ME1打印机出现绿色电源指示灯和红色错误指示灯交替闪烁的时候,就表示打印机内置的废墨计数器...

Windows10系统服务优化及分析(批处理)

对于Win10来说,除了UI的变动外,微软还根据用户体验做了一些功能的增强和更改,在我看来,Win10本身启动的服务都是为了系统运作更加完美而增加的,但是对于很多人来说,Win10的很多功能很少用,甚至用不到,对于这样的功能如果不关闭的话,只能占用我们的系统资源。 如何用批处理对系统的服务进行开关? 服务停止 net stop "服务名称"   停止服务...

Kafka消费者-从Kafka读取数据

(1)Customer和Customer Group (1)两种常用的消息模型 队列模型(queuing)和发布-订阅模型(publish-subscribe)。 队列的处理方式是一组消费者从服务器读取消息,一条消息只由其中的一个消费者来处理。 发布-订阅模型中,消息被广播给所有的消费者,接收到消息的消费者都可以处理此消息。 (2)Kafka的消费者和消...

ActiveMQ入门介绍

 1.JMS简介     JMS的全称是Java Message Service,即Java消息服务。它主要用于在生产者和消费者之间进行消息传递,生产者负责产生消息,而消费者负责接收消息。把它应用到实际的业务需求中可以在特定的时候利用生产者生成消息,并进行发送,对应的消费者在接收到对应的消息后去完成对应的业务逻辑。对于消息的传递有两种类型,一种是点对点的,...