微信第三方平台授权

目的:

        微信第三方公众平台是为了让公众号和小程序的运营者,可以一建授权给第三方平台,通过第三方平台来完成业务。

业务特征:

  • 提供通用的解决方案;
  • 基于安全的公众号授权机制;
  • 是公众号外包团队的商业机会。

UnionID: 为了识别用户,每个用户针对每个公众号会产生一个安全的OpenID,如果需要在多公众号、移动应用之间做用户共通,则需前往微信开放平台,将这些公众号和应用绑定到一个开放平台账号下,绑定后,一个用户虽然对多个公众号和应用有多个不同的OpenID,但他对所有这些同一开放平台账号下的公众号和应用,只有一个UnionID。可以通过第三方平台调用接口获取到用户的unionID,不过需要提供用户的openID。

公众号授权给微信第三方平台流程:

第三方平台的一些设置:

授权流程技术说明

  • 首先,我们要弄清楚这个途中用户的主体是谁,刚开始看的时候以为是使用公众号的粉丝用户,不过意识到很不合理,如何让每个用户都去做授权操作。所以在此说明这个用户的主体是公众号的管理员,只要管理员做了授权的操作即可;事实上,第三方平台是作为微信服务器和公众号之间信息传递的桥梁,授权之后,可以代替公众号完成业务,方便公众号的管理和某些业务的统一整合。
  • 公众号管理员进入我们第三方平台的网站(http://bill.fj118114.com/wxthird/third/toAuthorize.htm),点击授权按钮,第三平台在后台同伙api获取预授权码,平台返回一个授权链接,点击回让管理员扫码授权,授权完成后会返回授权码,第三方平台凭此授权码可以获取公众号的信息。

    扫描二维码关注公众号,回复: 4391569 查看本文章

  • 获取预授权码

  • 推送component_verify_ticket,第三方平台创建之后,微信服务器每隔10分钟会向第三方平台的接收地址推送一次 component_verify_ticket,用于获取第三方平台接口调用凭据。

          其中遇到的坑:

           []微信api的说明信息没有完整返回参数说明,只有一个xml格式的返回数据。网上查了一下知道了参数;

           []返回的data数据是放在request的header中的,需要先读取出来;

消息解密,返回的参数需要解密才可以获取到xml格式的明文;微信会提供加解密方法。

    <xml>

    <AppId> </AppId>

    <CreateTime>1413192605 </CreateTime>

    <InfoType> </InfoType>

    <ComponentVerifyTicket> </ComponentVerifyTicket>

    </xml>

           []解密后的xml明文需要解析,最终得到component_verify_ticket。

           []component_verify_ticket需要保存下来,用于获取 component_access_token。


  • 获取到预授权码后,就可以让管理员扫码授权了。微信提供两种授权方式,在此用的方式一。
  • 方式一:授权注册页面扫码授权

https://mp.weixin.qq.com/cgi-bin/componentloginpage?component\_appid=xxxx&pre\_auth\_code=xxxxx&redirect\_uri=xxxx&auth\_type=xxx。

            []坑三

            一开始以为这个是直接把这个链接生成二维码,让管理员去扫,然后扫了几下都是报错。正确的操作是把链接返回到页面,点击会跳出一个二维码,然后管理员扫码授权。微信会判断来源域名是否,即第三方平台设置时的后台域名。因此要在网站内发起授权。

            []这个链接有一个回调url(redirect_url),必须填写,也是接收授权码的方法路径。


  • 获取到授权码就可以换取公众号或小程序的接口调用凭据(有效期2小时)

           会返回一个调用凭据(authorizer_access_token)和一个刷新凭证(authorizer_refresh_token)

            刷新凭证用户刷新调用凭据。

           这个调用凭据(access_token)是可以用来调用公众号的api

           https://api.weixin.qq.com/cgi-bin/user/get?access_token=这个例子是公众号获取用户列表的api,因此获取到凭据之后,第三方平台就可以代替公众号实现业务。


至此,就可以用第三平台代公众号实现一些业务,比如推送消息等。

猜你喜欢

转载自blog.csdn.net/rb601100136/article/details/81326115