微信开发,由于语言换成了node,原来的微信开发环境都得重来,顺便记录一下步骤。
前提:
需要在微信公众号上进行一系列的配置,这些可以参考微信教程,这里不再描述。
1、初始化
程序加载,初始化注册应用凭证信息。我这里直接获取了一次接口access_token,存放起来(access_token3小时过期,所以需要一个过期存放机制。)
2、网页基础授权
微信网页授权流程图如下:
微信授权流程.jpg
我的网页授权的基础实现图如下:
微信授权具体实现1.jpg
这样用过滤器或者说是路由拦截的方式实现了网页授权
3、改造网页基础授权
由于项目需求以及灵活性考虑,对实现进行简单改造。
改造后的基础实现图如下:
微信授权具体实现2.jpg
这样流程就变成了:
a、判断是否已经授权(openid存在判断)。
b、调用自己系统的公共授权页面(带上当前页面地址)。公共授权页面地址(功能:获取请求参数.授权页面jumpurl;拼接jumpurl到公共回调地址BaseCallback上;调用请求微信授权接口)。
c、BaseCallback监听微信回调请求,根据code,appid,appsecret获取accesstoken,openid,成功后,存储openid,带上openid做参数跳到jumpurl。这样多走自己的服务器的好处是授权可以外接给别人用。
4、jssdk调用jsapi_ticket
以前没注意了jsapi_ticket跟accesstoken一样有获取限制,导致请求爆掉的分享有bug的问题,好尴尬。
微信jssdk调用凭证(3小时过期,需要一个过期重取机制)。根据access_token获取。保存机制可以与accesstoken一致。