微信第三方平台的开发文档是真的看到令人自闭, wechatpy 的文档也没有详细的解释。记录一下疯狂看文档的两天。
开发语言:Python (使用 wechatpy 来调用微信的各种接口)
outline
接收微信每十分钟发出的
component_verify_ticket
-
使用
wechatpy
来进行后续开发- 授权微信公众号
接收微信每十分钟发出的 component_verify_ticket
微信第三方平台审核通过后,微信服务器会每 10 分钟向所填写的 授权事件接收URL
发送一个 POST
请求(请求参数如下),用于作为第三方平台调用接口的凭证。微信文档参考
signature:
timestamp:
nonce:
encrypt_type:
msg_signature:
所以后端开发要做的事情就是写一个函数去获取微信所发出的 msg。
获取请求参数
虽然是一个POST
请求但是传参的方式还是?
后附加参数解密并存储这个
ticket
这一步就完全是用的 wechatpy 里的 component 的函数 wechatpy 文档参考
cache_component_verify_ticket
。这个函数需要传入四个参数:
cache_component_verify_ticket(msg, signature, timestamp, nonce):
"""
msg: request.body
signature: msg_signature
timestamp: timestamp
nonce: nonce
"""
- 返回
success
返回一个HttpResponse
,内容为success
到这里面向微信的验证部分就算是完成了,因为文档写的比较混乱所以摸索了两天,其实5分钟就能解决的事情,气是真的气。
使用 wechatpy 进行后续开发
授权公众号流程
- 获取
pre_auth_code
:
wechat_component.create_preauthcode() # {'pre_auth_code': , 'expires_in': 1800}
- 拼接获得授权 url , 微信给出的示例 url 如下:
https://mp.weixin.qq.com/safe/bindcomponent?action=bindcomponent&auth_type=3&no_scan=1&component_appid=xxxx&pre_auth_code=xxxxx&redirect_uri=xxxx&auth_type=xxx&biz_appid=xxxx#wechat_redirect
具体参数设置详见 微信授权流程,注意这里的回调 uri 需要是处理请求的 uri
- 处理用户点击后所发送请求