自学的python,下载了一段python测试对接的文件,我阿里云服务器里面运行程序后,测试对接提示配置失败url:http://47.108.211.44/ token=webchat
,我思考了几天觉得应该是端口转发的问题,但是我配置了nginx还是不行,下面是我nginx的conf,和python文件。新租的阿里云服务器只装了nginx,uwsgi,
from flask import Flask, request, make_response, abort
import hashlib
# 常量
'''微信的token令牌'''
WECHAT="webchat"
app=Flask(__name__)
@app.route("/")
def webchat():
'''对接微信服务器'''
# 接收微信服务器发送的参数
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,echostr]):
abort(400)
# 安装微信的流程进行计算签名
li=[WECHAT,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)
~
nginx.conf
user www-data;
worker_processes 4;
pid /run/nginx.pid;
events {
worker_connections 768;
# multi_accept on;
}
http {
##
# Basic Settings
##
server {
listen 80;
location / {
proxy_pass http://127.0.0.1:8000;
}
}
sendfile on;
tcp_nopush on;
tcp_nodelay on;
keepalive_timeout 65;
types_hash_max_size 2048;
# server_tokens off;
# server_names_hash_bucket_size 64;
# server_name_in_redirect off;
include /etc/nginx/mime.types;
default_type application/octet-stream;
##
# Logging Settings
##
access_log /var/log/nginx/access.log;