上一篇,介绍了与微信企业号建立连接的三种方式,下面我们一起来看一下具体该如何去建立连接
1、主动调用:
在上一篇中,我们知道在主动调用企业号的功能时,需要提供一个AccessToken,下面我们来获取这个AccessToken
获取AccessToken的接口是:https://qyapi.weixin.qq.com/cgi-bin/gettoken?corpid=CorpId&corpsecret=Corpsercert
这里我们需要获取两个参数corpId,corpsecret,这两个参数的获取方式如下图:
获取:
p2.png有了AccessToken,就可以去主动调用企业号接口了
2、回调模式:
1.在应用的模式选择里选择回调模式
2.设置“回调URL及密钥”
p4.png
当开启回调模式时,需要提供三个参数
URL,这个是企业用来接收企业号推送请求的地址(必须要要有一个外网环境,否则企业号是无法访问的)
Token,这个用于生成签名,可以随意填写(用提供的随机获取功能获取即可)
EncodingAESKey,这个是用于消息体加密,是AES密钥的Base64编码(用提供的随机获取功能获取即可)
当提交上面三个参数时,企业号会对Url进行验证。企业号会向提供Url发送一个Get请求,Get请求携带四个参数,将其中的echostr参数解密并返回明文,如果正确生效,回调模式才可以开启
p5.png
这里我创建了一个ashx文件,来处理URL的验证
p6.png
如果顺利的话,你会看到下面的样子
p8.png
在上面我们看到config里有一些必填项,其中有一项signature需要自己计算一下,
参与签名的字段包括
1.noncestr(随机字符串),
2.有效的jsapi_ticket(生成的方法:https://qyapi.weixin.qq.com/cgi-bin/get_jsapi_ticket?access_token=ACCESS_TOKE)
3.timestamp(时间戳),
4.url(需要调用api的页面地址)。
计算规则
对所有待签名参数按照字段名的ASCII 码从小到大排序(字典序)后,使用URL键值对的格式(即key1=value1&key2=value2…)拼接成字符串string1。这里需要注意的是所有参数名均为小写字符。对string1作sha1加密,字段名和字段值都采用原始值,不进行URL 转义。
例如:
nonceStr:93a81b0a-b9c2-42be-ac20-2c0236528285
jsapi_ticket:bxLdikRXVbTPdHSM05e5u0aVWGh5lD3aIRuXZsEKy4hOSXD1wbsylhvkOot1nqNIVG1bRa8BkNz0z3b2TLx_Kg
timestamp:1442373349
url:http://xxx.xxx.com/WXProject/index.htm
组织成string1
string1=jsapi_ticekt=bxLdikRXVbTPdHSM05e5u0aVWGh5lD3aIRuXZsEKy4hOSXD1wbsylhvkOot1nqNIVG1bRa8BkNz0z3b2TLx_Kg&noncestr=93a81b0a-b9c2-42be-ac20-2c0236528285×tamp=1442373349&url=http://xxx.xxx.com/WXProject/index.htm
做SHA1加密
signature=sha1(string1)
在微信的API文档里给出了PHP,Node,Java等签名的算法,这里我提供一个C#的签名算法 p9.png
配置好上面的内容,就可以在微信里的网页中调用API了
网友评论