微信公众号第三方开发之二获取预授权码(pre_auth_code)

     首先,我们作为第三方平台,在微信开放平台创建第三方公众号后,接下来首要处理的事情。就是获取预授权码。而微信上讲解一步一步做法,其实就是要写好一个一个方法,在引导授权页上,通过调用方法来得到这些参数。

 

     需要预授权码,首先要有接口调用凭据(component_access_token)

     而接口凭据又需要有微信的"推送component_verify_ticket"协议

 

     1、获取微信推送协议【推送component_verify_ticket】

     通过微信开放平台设置的授权事件url,我们需要写好方法来获取component_verify_ticket。

     首先知道微信推送过来的参数有哪些?经过测试,发现微信推送过来的参数有如下:【signature=d1b24f7072876ffe41c442dfa9bede8timestamp=1460691113 nonce=490874248 encrypt_type=aesmsg_signature=b2afd8c37040bace57c403c2d1

      但是,怎么都没发现什么加密过的消息体呢?几经破折,终于找到如下:



这里提到消息加解密做法有2歩:因此我们使用QueryString获取的只是一些额外参数,真正的消息体是在postdata【这个并不是参数名】里头。那么,到底怎么得到呢?我使用如下方法:

Stream inputStream =Request.InputStream;//

if (inputStream !=null)

{

    using(StreamReader sr = newStreamReader(inputStream))

    {

        p_req= sr.ReadToEnd();

    }

}

 

这里我建立了一张log表来检测授权流程获取的一系列字符串



因为Component_access_token有效期2小时,而且上限是2000次,这里我预先创建了3条记录,分别存储Component_verify_ticket、Component_access_token、pre_auth_code记录

以此进行以后的操作

 

特别是component_access_token存储的时候我直接将时间推迟了1.5小时,通过和当前系统时间比对,如果还在有效期内,就不再重新获取token串。具体做法如下:

 

存储方式是我自己研究想到这么做的,至于其他的核心方法实现都是参照上章节提到的博主的源码,请自行前往下载。

 

首先获取ticket:



其次,获取token值:


最后,获取预授权码:


最后,预授权码获取到这里结束了,当然上面代码只是参考,最终方案取决于你自己需求设计。

祝食用愉快,额,,讲解不到位之处,轻喷~~


  • 6
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值