步骤:先使用appid&secret获取access_token->再使用access_token获取ticket->获取时间戳->创建随机字符串—>将前面的后3个以及传值过来的实时url根据字符的ASCII值进行排序,拼接 ->最后对拼接的字符串作sha1加密,字段名和字段值都采用原始值,不进行URL 转义对字符串作sha1加密,字段名和字段值都采用原始值,不进行URL 转义参考链接:https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141115#!/usr/bin/python3# -*- coding: utf-8 -*-# @File    : share# @Author  : moucong# @Date    : 2019/2/17 14:35# @Software: PyCharmimport hashlibimport stringimport urllib.requestimport jsonimport timeimport random

#获取tokendef get_token(url): res = urllib.request.urlopen(url=url) page_source = res.read().decode('utf-8') data = page_source.split(",") token, value = data[0].split(":", 1) token = token.replace("{", '').replace('"', '') value = value.replace('"', '') expires, value_time = data[1].split(":", 1) value_time = value_time.replace("}", '').replace('"', '') expires = expires.replace('"', '') access_token = {token: value, expires: value_time}print(access_token) file_name = 'access_token.json' with open(file_name, 'w') as data_obj:# 使用函数json.dump()将数字列表存储到文件中 json.dump(access_token, data_obj)print("已经存入"+file_name)

#获取ticketdef get_ticket():with open("access_token.json", 'r') as load_f: load_dict = json.load(load_f) token =load_dict ["access_token"] ticket_url = " https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token={}&type=jsapi".format(token) get_ticket = urllib.request.urlopen(ticket_url) ticket_data = get_ticket.read().decode("utf-8") js_ticket = json.loads(ticket_data) ticket = js_ticket.get("ticket")print(ticket) file_name = 'jsapi_ticket.json' js_ticket = {'ticket': ticket, "expires_in": "7200"}with open(file_name, 'w') as data_obj:# 使用函数json.dump()将数字列表存储到文件中 json.dump(js_ticket, data_obj)print("已经存入" + file_name)# setex('wx:ticket', ticket, 7200) #ticket过期时间 # return ticket # print(ticket_url)

#创建时间戳def time_stamp(): timeStamp = int(time.time())return timeStamp

#创建随机字符串def create_nonce_str():return ''.join(random.choice(string.ascii_letters + string.digits) for _ in range(15)) # 创建随机字符串

#进行签名def sign(url):with open("./port/jsapi_ticket.json", 'r') as load_f: load_dict = json.load(load_f) ticket = load_dict["ticket"] noncestr = create_nonce_str() timestamp = time_stamp()

 resource = {'nonceStr': noncestr, 'jsapi_ticket': ticket, 'timestamp': timestamp, 'url': url } str_url = '&'.join(['%s=%s' % (key.lower(), resource[key]) for key in sorted(resource)]) # 根据字符的ASCII值进行排序,拼接 signature = hashlib.sha1(str_url.encode('utf-8')).hexdigest() resource_all ={'appId': '', 'nonceStr': noncestr, 'timestamp': timestamp, 'url': url, 'signature': signature }return resource_all

# if __name__ == '__main__': # get_token(url) # get_ticket() # time_stamp() # create_nonce_str() # sign()

备注小笔记:我使用的是Django进行后端部署和传值,之后使用ajax进行前端获取和传url回到后端,后来遇到跨域问题,使用nginx转发端口解决了,获取ticket和token使用while true,time.sleep(7200)解决,存为json.

转载于:https://www.cnblogs.com/setname/p/10404131.html

利用python开发微信JS-JDK(基于python3.6)相关推荐

  1. python微信爬取教程_PYTHON爬虫之旅系列教程之【利用Python开发微信公众平台一】...

    感谢大家的等待,好啦,都准备好瓜子.板凳,老司机要发车啦-- 本系列课程讲述"PYTHON爬虫之旅",具体大纲可参考:[PYTHON爬虫之旅]概要目录. 本节课讲述如何利用Pyth ...

  2. python开发微信公众号自动回复音乐

    利用python开发微信公众号,对接实现自动回复音乐,并下载音乐,是公众号更自动化. 本次采用新浪sae部署,新浪sae 1.新浪SAE 创建python应用 1)选择共享环境,使用多少扣费多少,不适 ...

  3. 基于python 开发 微信机器人自动回复 app

    基于python 开发 微信机器人自动回复 app # coding:utf-8 __author__ = "zhou" # create by zhou on 2020/3/3 ...

  4. 用python开发微信公众平台聊天机器人

    最近用python写了一个聊天机器人的微信公众号,网上找的开发文档参差不齐,官方文档也比较老旧,还有部分小问题.于是,分享一下我的思路. 开发环境 windows sever 2008+python3 ...

  5. 利用Python制作微信机器人(三)实现爬取JD商品价格

    从前两篇的博客来看,目前已经实现了机器人单向给微信发消息,和与机器人进行交互式发消息,详情如下: 利用Python制作微信机器人(一)机器人单向发消息 利用Python制作微信机器人(二)与机器人进行 ...

  6. 利用Python制作微信机器人(二)

    上次写了利用Python制作微信机器人,其中只实现了通过api来控制微信机器人来给自己发送消息,具体详情可查看: 利用Python制作微信机器人(一) 本篇博客主要编写如何是实现给微信机器人发送消息, ...

  7. python开发微信小程序-Python 开发者的微信小程序开发实践

    导读 在知乎上,有人提问"如何使用 Python 开发微信小程序". 其实微信小程序作为一个前端的机制,Python 并不能插上边.只不过可以作为后端接口为微信小程序提供数据服务而 ...

  8. 用python做头像_如何利用python制作微信好友头像照片墙?

    这个不难,主要用到itchat和pillow这2个库,其中itchat用于获取微信好友头像照片,pillow用于拼接头像生成一个照片墙,下面我简单介绍一下实现过程,代码量不多,也很好理解,实验环境wi ...

  9. 利用Python开发App

    我很早之前就想开发一款app玩玩,无奈对java不够熟悉,之前也没有开发app的经验,因此一直耽搁了.最近想到尝试用python开发一款app,google搜索了一番后,发现确实有路可寻,目前也有了一 ...

  10. 利用Python制作微信跳一跳外挂,微信好友装逼神器!

    导语 前几天在GitHub上看到有人利用Python玩一款名为"跳一跳"的微信小程序,于是打算自己也来试一试,进群:711944363 获取微信跳一跳源码! 演示工具 电脑系统:W ...

最新文章

  1. Haproxy Nginx cluster构建
  2. 依赖类型dependency type在maven中的作用
  3. 关于bat中使用rar压缩命令
  4. 谁来护航储能电池安全?
  5. 【idea中debug的使用】
  6. python rpa_(RPA学习)Python 之 Pathlib 模块
  7. C++基础总结(4)-----指针
  8. 如何做一个基于微信评选投票小程序系统毕业设计毕设作品
  9. 数学建模竞赛网站汇总
  10. linux 网络慢 dns,Linux DNS客户端解析域名慢解决
  11. 阿里云最新可申请试用云产品汇总(免费领阿里云服务器)
  12. oracle控制文件的复用,ORACLE 10g ASM 控制文件多路复用
  13. 在网络世界中如何才能保护好自己的安全?
  14. 排序算法系列:归并排序算法
  15. Echarts 图表不能渲染问题整理
  16. 计算机丢失d3dcompile,电脑d3dcompiler43.dll文件丢失怎么办 文件丢失解决方法
  17. Java中文汉字排序
  18. 讲解视频质量,视频质量测试,主观客观评价视频质量
  19. Java语言的三大特性
  20. IntelliJ IDEA 查找和替换操作

热门文章

  1. 20165329 Java实验四 Android程序设计
  2. 数据结构37:线索二叉树的创建
  3. 1_线性表之顺序存储
  4. MakeDirZ.bat
  5. 网络协议端口号说明(转)
  6. (日常搬砖)ubuntu18.04风扇断断续续响,提示 ‘GPU fan error‘
  7. .sig 签名文件怎么使用
  8. Runtime之消息转发
  9. webpack中package-lock.json的作用
  10. 中文路径读取乱码,json乱码