微信开放平台代公众号开发

     最近因为业务需要,跟我们合作的客户很多都有自己的公众号或者希望把用户掌握在自己的手里(自己申请公众号),他们没有开发能力,又想借助我们的平台实现自己的业务,研究了一下微信开放平台,发现这是一个不错的选择。下面我就从代公众号实现业务这个场景来讲解开放平台的开发流程:

一、概述

公众平台第三方平台是为了让公众号或小程序运营者,在面向垂直行业需求时,可以一键授权给第三方平台(并且可以同时授权给多家第三方),通过第三方平台来完成业务,开放给所有通过开发者资质认证后的开发者使用。

二、开发前的准备

1、首选你得在https://open.weixin.qq.com/开放平台申请一个账号;

2、申请完之后在“管理中心”-“第三方平台”创建一个第三方平台

3、按照说明填写对应的参数

登录授权的发起也域名:这个用来给授权方授权给第三方平台的操作域名,填授权页面对应的域名

授权测试公众号列表:全网发布之前用来测试的授权方公众号原始Id,在微信公众号平台“公众号设置”下面的“注册信息”栏目可以查看到。

授权事件接收URL:这个很关键,用来接收微信推送的component_verify_ticket,以及后续的授权相关通知(包括授权成功,取消授权,授权更新等等)

后面的token和key是开放平台的参数,后续要用到的地方会提及。

消息与事件接收URL:代公众号处理消息和事件入口,比如用户在公众号发消息或者关注公众号等都会调用这个地址

注:以上的这些域名和地址都是同一个,可以理解为开放平台应用部署对应的域名。

下面还有一个关键的参数就是Ip白名单

切记,只有你的ip在这个白名单里面才能正常的收发消息。

三、授权流程技术说明

授权有两种方式,一种是在公众平台“开发”->基本配置->开放平台账号那里去搜索开放平台进行绑定;另外一种是在第三方开放平台提供的授权页面进行微信扫码绑定。大部分都是通过第二种方式绑定,这里就讲解一下第二中怎么实现的。

首先要准备一个授权页面,授权页面提供一个url链接给授权方点击,类似这样的:

<a href="https://mp.weixin.qq.com/cgi-bin/componentloginpage?component_appid=${componentAppid}&pre_auth_code=${preAuthCode}&redirect_uri=${redirectUri}&auth_type=1">登录授权</a>

效果如右图所示: ,授权方点击这个登录授权按钮会出现一个扫码授权页面。

微信扫码会自动读取你这个微信绑定的公众号,点击授权即可完成授权操作。这里有几点注意一下:

1、开发平台开发阶段(未全网发布之前)需要提前在“ 授权测试公众号列表 ”填写要测试的授权公众号原始id,类似gh_开头的那一串字符串。

2、授权的时候要提供一个回调地址,上面提供的redirect_uri,授权方同意授权之后会微信会回调这个地址,同时把auth_code返回给你, 在得到授权码后,第三方平台方可以使用授权码换取授权公众号或小程序的接口调用凭据(authorizer_access_token,也简称为令牌),再通过该接口调用凭据,按照公众号开发者文档小程序开发文档的说明,去调用公众号或小程序相关API。 这里的authorizer_access_token就相当于你微信公众号开发里面用到的access_token。

3、pre_auth_code怎么得到? 第三方平台通过自己的接口调用凭据(component_access_token)来获取用于授权流程准备的预授权码(pre_auth_code) ;那么component_access_token怎么得到? 第三方平台通过自己的component_appid和component_appsecret(即在微信开放平台管理中心的第三方平台详情页中的AppID和AppSecret),以及component_verify_ticket(每10分钟推送一次的安全ticket)来获取自己的接口调用凭据(component_access_token);component_verify_ticket怎么得到?这个ticket在你的开放平台审核通过之后微信会自动推送到你在开放平台填写的事件接收URL,这样反推一波是不是很清晰了?

4、component_access_token是要缓存起来的, 第三方平台component_access_token是第三方平台的下文中接口的调用凭据,也叫做令牌(component_access_token)。每个令牌是存在有效期(2小时)的,且令牌的调用不是无限制的,请第三方平台做好令牌的管理,在令牌快过期时(比如1小时50分)再进行刷新。 刷新就没必要了,因为微信会每隔10分钟推送一次安全ticket,你可以根据ticket去获取component_access_token,这样就可以做到定时的去刷新component_access_token了

5、authorizer_access_token也是要缓存起来的, 授权方接口调用凭据(在授权的公众号或小程序具备API权限时,才有此返回值),也简称为令牌,这个也是2小时失效,在得到这个的同时也会得到一个 authorizer_refresh_token, 可以用它调用接口来获得新的 authorizer_access_token ,从而保证 authorizer_access_token 不过期。

授权流程完毕之后我们就可以进入下一步代公众号实现业务了。

未完待续。。。

猜你喜欢

转载自my.oschina.net/zhoujy/blog/1799869