后台代码如下:
# 这部分来自官方demo
class SHA1:
"""计算公众平台的消息签名接口"""
def getSHA1(self, token, timestamp, nonce, encrypt):
"""用SHA1算法生成安全签名
@param token: 票据
@param timestamp: 时间戳
@param encrypt: 密文
@param nonce: 随机字符串
@return: 安全签名
"""
sortlist = [token, timestamp, nonce, str(encrypt)]
sortlist.sort()
sha = hashlib.sha1()
sha.update("".join(sortlist).encode('utf-8'))
return WXBizMsgCrypt_OK, sha.hexdigest()
# 这部分为业务代码,譬如我的 url 地址为 https://www.xxxxxxx.com:9999
# 然后 get 请求到 https://www.xxxxxxx.com:9999 这里到时候,会路由到 Message -> get 方法中
class Message(Resource):
def get(self):
"""客服消息自动回复
"""
signature = request.args.get('signature', '1')
echostr = request.args.get('echostr', '1')
timestamp = request.args.get('timestamp', '1')
nonce = request.args.get('timestamp', '1')
token = 'hackmonster'
sha1 = service.SHA1()
ret, signature = sha1.getSHA1(token, timestamp, nonce, '')
print(ret, signature)
return True
问题:
token 校验的具体逻辑到底是咋样的,我怀疑难道是我理解错了?
为啥我测试的时候,直接在 get 最末返回 true 也不行呢?
微信小程序开发问题解答
微信小程序开发者回答:
看起来用的是python?推荐用这个库 https://github.com/jxtech/wechatpy
本文网址:http://www.91bianli.com/weixinxiaochengxu/51963.html