2023年7月10日发(作者:)
Python微信--分享接⼝(分享到朋友圈、朋友、空间)⽣成JS-SDK权限验证的签名获取signature(签名)⾸先要获得1、#获得jsapi_ticket2、#获取当前页⾯的url
#获取当前页⾯的url url="{}://{}{}".format(ol,,)
3、#获取timestamp(时间戳) #获取timestamp(时间戳) timestamp = int(())4、#获取noncestr(随机字符串) #获取noncestr(随机字符串) nonceStr = NonceStr()(见下函数)5、# 这⾥参数的顺序要按照 key 值 ASCII 码升序排序string = "jsapi_ticket={}&noncestr={}×tamp={}&url={}".format(jsapiTicket,nonceStr,timestamp,url)6、#得到signature(⽤sha1加密)signature = 1(string).hexdigest();1、获得jsapi_ticket要先获取access_token(不再细说)然后def getJsApiTicket(self): #获得jsapi_ticket #获得jsapi_ticket之后,就可以⽣成JS-SDK权限验证的签名了 import urllib2 # jsapi_ticket 应该全局存储与更新,以下代码以写⼊到⽂件中做⽰例 #cookie('ticket',null); #获取access_token accessToken = tokens() # 如果是企业号⽤以下 URL 获取 ticket # $url = "/cgi-bin/get_jsapi_ticket?access_token=$accessToken"; #获取jsapi_ticket url = "/cgi-bin/ticket/getticket?access_token={}&type=jsapi".format(accessToken) req = t(url) res_data = n(req) res = res_() res=json_decode(res) return str(res['ticket'])4、#获取noncestr(随机字符串)def createNonceStr(self,length = 16): #获取noncestr(随机字符串) import random chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" str = ""; for i in range(0,16): str += chars[t(0, len(chars)-1):t(0, len(chars)-1)+1] # for ($i = 0; $i < $length; $i++) { # $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); # } return str;
后台总代码整理为:
def index(self): """ 知识中⼼ :return: """ id = _argument('id','') getSignPackage=nPackage() ('getSignPackage',getSignPackage) y('knowledge/')
def getSignPackage(self) : import hashlib #获得jsapi_ticket jsapiTicket = piTicket() # 注意 URL ⼀定要动态获取,不能 hardcode. # protocol = (!empty($_SERVER['HTTPS']) && $_SERVER['HTTPS'] !== 'off' || $_SERVER['SERVER_PORT'] == 443) ? "" : ""; # $url = "$protocol$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"; #获取当前页⾯的url url="{}://{}{}".format(ol,,) #获取timestamp(时间戳) timestamp = int(()) #获取noncestr(随机字符串) nonceStr = NonceStr() # 这⾥参数的顺序要按照 key 值 ASCII 码升序排序 string = "jsapi_ticket={}&noncestr={}×tamp={}&url={}".format(jsapiTicket,nonceStr,timestamp,url) #得到signature signature = 1(string).hexdigest(); wxinfo = () signPackage = { "appId":wxinfo['appid'], "nonceStr":nonceStr, "timestamp":timestamp, "url":url, "signature":signature, "rawString":string } return signPackage;def createNonceStr(self,length = 16): #获取noncestr(随机字符串) import random chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" str = ""; for i in range(0,16): str += chars[t(0, len(chars)-1):t(0, len(chars)-1)+1] # for ($i = 0; $i < $length; $i++) { # $str .= substr($chars, mt_rand(0, strlen($chars) - 1), 1); # } return str;def getJsApiTicket(self): #获得jsapi_ticket #获得jsapi_ticket之后,就可以⽣成JS-SDK权限验证的签名了 import urllib2 # jsapi_ticket 应该全局存储与更新,以下代码以写⼊到⽂件中做⽰例 #cookie('ticket',null); #获取access_token accessToken = tokens() # 如果是企业号⽤以下 URL 获取 ticket # $url = "/cgi-bin/get_jsapi_ticket?access_token=$accessToken"; #获取jsapi_ticket url = "/cgi-bin/ticket/getticket?access_token={}&type=jsapi".format(accessToken) req = t(url) res_data = n(req) res = res_() res=json_decode(res) return str(res['ticket'])前台总代码整理:
评论列表(0条)