这个php方法怎么改写成 python

privatefunctioncheckSignature(){$signature=$_GET["signature"];$timestamp=$_GET["times... private function checkSignature()
{
$signature = $_GET["signature"];
$timestamp = $_GET["timestamp"];
$nonce = $_GET["nonce"];

$token = TOKEN;
$tmpArr = array($token, $timestamp, $nonce);
sort($tmpArr, SORT_STRING);
$tmpStr = implode( $tmpArr );
$tmpStr = sha1( $tmpStr );

if( $tmpStr == $signature ){
return true;
}else{
return false;
}
}
验证URL有效性
开发者提交信息后,微信服务器将发送GET请求到填写的URL上,GET请求携带四个参数:

参数
描述

signature 微信加密签名,signature结合了开发者填写的token参数和请求中的timestamp参数、nonce参数。
timestamp 时间戳
nonce 随机数
echostr 随机字符串
开发者通过检验signature对请求进行校验(下面有校验方式)。若确认此次GET请求来自微信服务器,请原样返回echostr参数内容,则接入生效,成为开发者成功,否则接入失败。
加密/校验流程如下:
1. 将token、timestamp、nonce三个参数进行字典序排序
2. 将三个参数字符串拼接成一个字符串进行sha1加密
3. 开发者获得加密后的字符串可与signature对比,标识该请求来源于微信

检验signature的PHP示例代码:
展开
 我来答
匿名用户
推荐于2016-01-08
展开全部
OK,首先我不懂PHP,但是看你补充的描述大致能明白。
其次,如果这里的$_GET可以理解为字典,对于$nonce = $_GET["nonce"],[]中的nonce是属性,而$nonce是属性的值的话,那么我下面写的应该问题不大。
第三,private function,这个应该是写在类里的吧,python里除非你通过对方法和属性的名字进行处理,否则是没有私有的概念的。

代码:
import hashlib
def checkSignature(_GET): #如果不传参的话,也可以用全局变量,但不推荐
signature = _GET["signature"]
timestamp = _GET["timestamp"]
nonce = _GET["nonce"]
token = TOKEN # 这个不清楚是什么
tmpArr = [token, timestamp, nonce]
tmpArr.sort()
tmpStr = hashlib.sha1(''.join(tmpArr)) # ''.join ,前面是个空字符,不是空白字符,"",引号中间没有任何字符。
# 这里有个问题,我对你原来的php下sha1后的字符串什么样不了解。python的sha1处理后会返回一个sha1对象,如何从这个对象获得字符串,可以用两个方法:digest(),hexdigest()。digest我不太了解,hexdigest返回一个每一个字符都是16进制字符的字符串。
if tmpStr.hexdigest() == signature:
return ture
else:
return false
最后,注意统一缩紧方式,only space or only tab.
本回答被提问者采纳
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
yycgis
2014-07-12 · TA获得超过8267个赞
知道大有可为答主
回答量:6831
采纳率:63%
帮助的人:1602万
展开全部
你好:
你能解释下:
这个php是用来干什么的吗?
追问
在原问题那里更新了 做微信公众号
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友2d7f702
2014-07-12 · 超过12用户采纳过TA的回答
知道答主
回答量:47
采纳率:0%
帮助的人:23.9万
展开全部
你贴的这个php代码压根不完整!!!!
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(1)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式