鱼C论坛

 找回密码
 立即注册
查看: 2115|回复: 4

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

[复制链接]
发表于 2021-3-16 12:00:19 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
为什么我在设置微信接口配置的时候老是提示报错呀?我是按照网上的教学视频一步一步的做的,他们的却可以,我自己测试却不行,怎么回事呢?
# 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([signature, timestamp, nonce]):
        abort(400)

    # 按照微信的流程进行计算签名
    li = [WECHAT_TOKEN, timestamp, nonce]
    # 排序
    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)

22.png
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2021-3-18 07:37:25 From FishC Mobile | 显示全部楼层
你令牌是咋弄来的,花银子了没
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2021-3-18 17:04:14 | 显示全部楼层
你令牌是咋弄来的,花银子了没
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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

但我好像也没看出什么区别呀,难道一定要编码下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 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

但我好像也没看出什么区别呀,难道一定要编码下吗?能解释下吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-16 07:43

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表