wnhuiyou 发表于 2021-3-16 12:00:19

python搭建微信服务器老是失败

为什么我在设置微信接口配置的时候老是提示报错呀?我是按照网上的教学视频一步一步的做的,他们的却可以,我自己测试却不行,怎么回事呢?

# coding:utf-8


from flask import Flask, request, abort
import hashlib

# 常量
# 微信的token令牌
WECHAT_TOKEN = "test"


app = Flask(__name__)


@app.route("/wh", methods=["GET", "POST"])
def wechat():
    """对接微信公众号服务器"""
    # 接收微信服务器发送的参数
    signature = request.args.get("signature")
    timestamp = request.args.get("timestamp")
    nonce = request.args.get("nonce")
    echostr = request.args.get("echostr")

    # 校验参数
    if not all():
      abort(400)

    # 按照微信的流程进行计算签名
    li =
    # 排序
    li.sort()
    # 拼接字符串
    tmp_str = "".join(li)
    # 进行sha1加密, 得到正确的签名值
    sign = hashlib.sha1(tmp_str).hexdigest()

    # 将自己计算的签名值与请求的签名参数进行对比,如果相同,则证明请求来自微信服务器
    if signature != sign:
      # 表示请求不是微信发的
      abort(403)
    else:
      return echostr


if __name__ == '__main__':
    app.run(port=8000, debug=True)

wp231957 发表于 2021-3-18 07:37:25

你令牌是咋弄来的,花银子了没

西瓜味的苹果 发表于 2021-3-18 17:04:14

你令牌是咋弄来的,花银子了没

wnhuiyou 发表于 2021-3-19 11:37:59

wp231957 发表于 2021-3-18 07:37
你令牌是咋弄来的,花银子了没

好像找到问题原因了,是下面这段加密写法错了
# 进行sha1加密, 得到正确的签名值
sign = hashlib.sha1(tmp_str).hexdigest()

我改成这样就好了,微信就提示配置成功了
# 进行sha1加密, 得到正确的签名值
    sha1 = hashlib.sha1()
    sha1.update(tmp_str.encode('utf-8'))
    text1_sha1 = sha1.hexdigest()
    sign = text1_sha1

但我好像也没看出什么区别呀,难道一定要编码下吗?

wnhuiyou 发表于 2021-3-19 11:38:29

西瓜味的苹果 发表于 2021-3-18 17:04
你令牌是咋弄来的,花银子了没

好像找到问题原因了,是下面这段加密写法错了
# 进行sha1加密, 得到正确的签名值
sign = hashlib.sha1(tmp_str).hexdigest()

我改成这样就好了,微信就提示配置成功了
# 进行sha1加密, 得到正确的签名值
    sha1 = hashlib.sha1()
    sha1.update(tmp_str.encode('utf-8'))
    text1_sha1 = sha1.hexdigest()
    sign = text1_sha1

但我好像也没看出什么区别呀,难道一定要编码下吗?能解释下吗?
页: [1]
查看完整版本: python搭建微信服务器老是失败