鱼C论坛

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

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

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

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

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

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

  1. # coding:utf-8


  2. from flask import Flask, request, abort
  3. import hashlib

  4. # 常量
  5. # 微信的token令牌
  6. WECHAT_TOKEN = "test"


  7. app = Flask(__name__)


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

  16.     # 校验参数
  17.     if not all([signature, timestamp, nonce]):
  18.         abort(400)

  19.     # 按照微信的流程进行计算签名
  20.     li = [WECHAT_TOKEN, timestamp, nonce]
  21.     # 排序
  22.     li.sort()
  23.     # 拼接字符串
  24.     tmp_str = "".join(li)
  25.     # 进行sha1加密, 得到正确的签名值
  26.     sign = hashlib.sha1(tmp_str).hexdigest()

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


  33. if __name__ == '__main__':
  34.     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, 2024-5-3 22:29

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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