填坑记录:1.个人微信公众订阅号是不能申请微信认证的。公众号的类型在注册时一旦选择就不能更改,微信公众号认证的功能除个人订阅号外,都可以申请认证,因而个人订阅号不能申请认证。这句话的意思就是个人订阅号无法开发小程序。

2.个体户营业执照(个体户)可申请微信服务号并申请开发小程序,但需微信认证复用资质并用新邮箱注册小程序账号

3.微信开发工具创建微信小程序填写的appid是小程序的appid(不是微信公众号的),不能是个人小程序的appid,个人小程序没有获取用户信息的权限

4.调用接口获取用户信息时填写的appid要与创建时填写的一样

5.openid只能后台获取,提高安全性

6.只获取openid,只调用wx.login获取code交给后台即可,如果还要获取用户详细信息还要接着调用wx.getUserInfo获取encryptedData,iv提交后台解密用户信息

小程序代码:

//登录获取code

login: function () {//1、调用微信登录接口,获取code

wx.login({

success: function (r) {var code = r.code;//登录凭证

if(code) {//2、调用获取用户信息接口

wx.getUserInfo({

success: function (res) {//3.请求自己的服务器,解密用户信息 获取unionId等加密信息

wx.request({

url: app.globalData.loginWXUrl,//自己的服务接口地址

method: 'post',

header: {'content-type': 'application/json'},

data: { encryptedData: res.encryptedData, iv: res.iv, code: code },

success: function (res) {//4.解密成功后 获取自己服务器返回的结果

if (res.data.return_code == 0) {

console.log(res.data.data)

}else{

console.log('解密失败')

}

},

fail: function () {

console.log('系统错误')

}

})

},

fail: function () {

console.log('获取用户信息失败')

}

})

}else{

console.log('获取用户登录态失败!' +r.errMsg)

}

},

fail: function () {

console.log('登陆失败')

}

})

}

python后台代码:

@app.route('/code', methods=["POST"])

def get_code():

JSCODE= request.get_json()["code"]

encryptedData= request.get_json()["encryptedData"]

iv= request.get_json()["iv"]

APPID= "小程序appid"SECRET= "小程序secret"url= 'https://api.weixin.qq.com/sns/jscode2session?appid={appid}&secret={secret}&js_code={code}&grant_type=authorization_code'.format(appid=APPID,secret=SECRET,code=JSCODE)

res= requests.get(url)

openid= res.json().get('openid')

session_key= res.json().get('session_key')

pc=WXBizDataCrypt(APPID, session_key)

data=pc.decrypt(encryptedData, iv) #data中是解密的用户信息return json_response(0,data=data)

WXBizDataCrypt中具体解密方法下载官方多种语言示例代码:https://res.wx.qq.com/wxdoc/dist/assets/media/aes-sample.eae1f364.zip

如果导包出现 from Crypto.cipher import AES错误

python 在 Windows下使用AES时要安装的是pycryptodome 模块 pip install pycryptodome

python 在 Linux下使用AES时要安装的是pycrypto模块 pip install pycrypto

微信小程序python解析获取用户手机号_python获取微信小程序openid及用户信息相关推荐

  1. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号

    获取微信用户绑定的手机号,需先调用wx.login接口. 小程序获取code. 后台得到session_key,openid. 组件触发getPhoneNumber 因为需要用户主动触发才能发起获取手 ...

  2. 微信小程序python解析获取用户手机号_微信小程序获取用户手机号详解

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  3. 微信小程序python解析获取用户手机号_微信小程序如何获取用户手机号

    最近在做一款微信小程序,需要获取用户手机号,具体步骤如下: 流程图: 1.首先,客户端调用wx.login,回调数据了包含jscode,用于获取openid(用户唯一标识)和sessionkey(会话 ...

  4. h5微信f分享链接给对方获取对方手机号_企业微信可以搜索微信号添加好友/客户吗?怎样主动添加通过率高?...

    文丨语鹦企服原创,未经授权不得转载 企业微信推出3.0版本后,已经实现了和微信消息互通.那么在企业微信可以搜索微信号添加好友/客户吗?怎样主动添加通过率比较高?一起来看看. 首先,企业微信目前暂不支持 ...

  5. python怎么调用c语言_Python调用C语言程序方法解析

    Python调用C语言程序方法解析 首先我们需要将编写好的c程序文件编译为动态库文件(后缀名为.so) 使用下面的命令: gcc 原文件名.c -shared -o 新文件名.so 然后在python ...

  6. python逻辑运算的一些流程图_Python猜数小游戏

    使用random变量随机生成一个1到100之间的数 采集用户所输入的数字,如果输入的不符合要求会让用户重新输入. 输入符合要求,游戏开始.如果数字大于随机数,输出数字太大:如果小于随机数,输出数字太小 ...

  7. python 朋友圈自动回复评论_Python自动回复微信好友新年祝福

    马上就要过年了,好多小伙伴都已经顺利到家,准备过新年,公众号也将暂停更新,今天这篇文章是年前最后一篇原创文章.在这提前祝大家:新年快乐.公众号会在除夕夜给大家发支付宝口令红包哟. 昨天发现自己的itc ...

  8. python输入end退出循环_python练习:从入门到实践——用户输入和while循环

    目录 一.函数 input() 的原理 1.1 编写清晰的程序 1.3 求模运算 二.while 循环简介 2.1 使用 while 循环 2.2 让用户选择何时退出 2.3 使用标志 2.4 使用 ...

  9. python解析器的作用_Python 解析器

    2008-01-07 17:55 星期一 嵌入Python解析器执行一些简单的Python 脚本脚本很容易,但是当python解析器用到扩展模块时和多个线程都需要Python解析器执行脚本时,遇到了一 ...

最新文章

  1. 谷歌Analytics添加到您的SharePoint 2010网站的2种方法
  2. Orleans初战(用分布式解决高并发购物场景)
  3. 外网访问XAMPP失败 解决方案
  4. mac 设置默认python为python3
  5. 加个ing是什么意思_take的意思竟然是“要求”?奇奇怪怪的熟词僻义打卡终于来了!...
  6. [react] React中如何监听state的变化?
  7. tomcat安装成功页面翻译
  8. Uber Go语言编码规范
  9. python脚本转二进制_使用此Python脚本在Base94中编码二进制文件
  10. access中case替代方法
  11. vue打包后CSS中引用的背景图片不显示问题
  12. 如何书写IT行业的个人简历
  13. 微信小程序中引入 UI 组件库(Vant Weapp)
  14. 计算机硬件产品增值税率,软件产品增值税即征即退税额如何计算?申报增值税时应该如何填报呢?...
  15. citespace:分析wos数据时显示“the timing slicing setting is outside the range of your data”解决方案
  16. zoj题目分类详细的
  17. pytorch--初识张量与常见基础函数(1)
  18. 《管理长歌行》—— 小花狗的错误
  19. c++语言 tcp例子,C++ boost::asio编程-同步TCP详解及实例代码
  20. 区块链开发先达区块链跨境支付系统解决方案

热门文章

  1. 用udp协议通讯时怎样得知目标机是否获得了数据包?_和相亲对象聊天,你属于UDP还是CDP?...
  2. Qt图形界面编程入门(信号和槽通信机制)
  3. 行健设计_行健要闻|“第四届‘天行健创新创业设计大赛”培训班成功举办
  4. weblogic启动慢
  5. Angular 8之升级和新功能摘要
  6. ubuntu进行apt-get时候出现Package ssh is not available, but is referred to by another package 错误...
  7. cocos2dx3.2文件结构和代码结构
  8. 最长递增子序列和网易去除最少使从左向右递增又递减问题
  9. android button的selector
  10. php 自定义打印模板下载,PHP – 创建自定义模板系统?