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

填坑记录: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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/543227.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用 React和webpack开发和打包发布

建议在 React 中使用 CommonJS 模块系统,比如 browserify 或 webpack,本次使用 webpack。 第一步、安装全局包 $ npm install babel -g $ npm install webpack -g $ npm install webpack-dev-server -g 第二步、创建根目录 创建一个根目录,目…

java cpu 内存使用情况_java高cpu占用和高内存占用问题排查 (转)

高cpu占用1、top命令:Linux命令。可以查看实时的CPU使用情况。也可以查看最近一段时间的CPU使用情况。2、PS命令:Linux命令。强大的进程状态监控命令。可以查看进程以及进程中线程的当前CPU使用情况。属于当前状态的采样数据。ps -mp pid -o THREAD,tid,…

python3 装饰器_python3_装饰器_异常处理

装饰器: def auth(func): def wrapper(name): 如果函数带参数,要加在这里 userraw_input("input passwd:").strip() if user‘test‘: print "welcome login" func(name) 如果函数带参数,要加在这里 else: print "a…

ZeroMQ--使用jzmq进行编程

一、环境搭建 wget http://download.zeromq.org/zeromq-2.1.7.tar.gz tar -xzf zeromq-2.1.7.tar.gz cd zeromq-2.1.7 ./configure make sudo make installgit clone https://github.com/nathanmarz/jzmq.git cd jzmq ./autogen.sh ./configure make sudo make install如果没有…

java 循环对比_Java stream 和 for 循环效率对比问题

针对同一个集合,用 stream 操作两次得到两个不同条件筛选出来的集合和map,和一次for循环就搞定搞定的效率对比。虽然stream写起来链式操作很舒服,但效率在不同数据量下的体现效果是不一样的,以下为我的测试代码:Testpu…

python多线程框架_基于python和bash的多线程任务框架 不要让cpu闲着了

[Bash shell] 纯文本查看 复制代码#! /bin/bash ########################################################################################################## #part1:defile your job(第一部分,定义单核任务,需要根据你的实用任务改动&a…

FreeSWITCH第三方库(视频)的简单介绍(二)

FreeSWITCH使用了大量的第三方库,本文档主要介绍视频相关库的信息: 音频相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5486753.html 其他相关库的信息介绍参考:http://www.cnblogs.com/yoyotl/p/5489315.html ① openh2…

python单步调试的方法_python断点调试方法

pdb 是 python 自带的一个包,为 python 程序提供了一种交互的源代码调试功能,主要特性包括设置断点、单步调试、进入函数调试、查看当前代码、查看栈片段、动态改变变量的值等。pdb 提供了一些常用的调试命令,详情见表 1。下面结合具体的实例…

053(七十七)

381、 381.Which pseudo column could you use to identify a unique row in a Flashback Versions Query? A. XID B. VERSIONS_PK C. VERSIONS_XID D. VERSIONS_UNIQUE 382、 382.Which of the following can be used in conjunction with a Flashback Versions Query to fil…

java正则表达式 ppt_Java正则表达式演示

//正则表达式 regular expression regex//空白符有: ,\t,\n,\n,\r,\h;\s等于[\t\n\r\f];\S[^\t\n\r\f]// 常用的正则表达式//// 正则表达式 匹配//-------------------------------…

数加移动定向营销:如何快速搭建不完全依赖用户历史行为的个性化服务

移动定向营销是一款基于规则引擎面向移动应用做流量精准运营的数据服务,能帮助使用者灵活划分用户群体、细分用户流量。移动定向营销原理它是一种定向的、人为可控的、可解释的,并且不完全依赖于用户历史行为、不受投放内容约束、面向用户的个性化服务方…

python读写json_python 读写json数据

json 模块提供了一种很简单的方式来编码和解码JSON 数据。 字符串操作 其中两个主要的函数是json.dumps() 和json.loads() ,要比其他序列化函数库如pickle 的接口少得多。下面演示 1.如何将一个Python 数据结构转换为JSON 2.如何将一个JSON 编码的字符串转换回一个P…

java web逻辑删除代码_MyBatis-Plus之逻辑删除的实现

特别是互联网项目,对于数据一般是不能删除的(涉及到后面的数据分析),这就涉及到逻辑删除。所谓逻辑删除指的是数据并不是真正的删除,只是改数据表对应数据的状态(数据表中通常有一列叫delFlag,以此标识正常状态或删除状态)。逻辑删除一般都是…

debian安装java jdk_Linux(Centos、Debian)之安装Java JDK及注意事项(转)

a.因为Java JDK区分32位和64位系统,所以在安装之前必须先要判断以下我们的Centos、Debian系统为多少位系统,命令如下:uname -a解释:如果有x86_64就是64位的,没有就是32位的。后面是X686或X86_64则内核是64位的&#xf…

python程序化 k线指定时间更新_Python之路 14 K线时间序列管理器

在上一章中介绍了如何通过实时行情推送的Tick数据合成1分钟K线,并且如何通过1分钟K线来合成更大周期的K线。本章主要介绍如何将K线通过numpy缓存到Array,形成时间序列,并且同时生成一些技术指标。 首先 导入包 talib主要用于计算各种技术分析…

python手把手教程_【Python 1-7】Python手把手教程之——详解列表List

列表 作者 | 弗拉德 来源 | 弗拉德(公众号:fulade_me) 列表,在其他语言中又被称为数组,是由一系列按特定顺序排列的元素组成。你可以创建包含字母表中所有字母、数字0~9或所有家庭成员姓名的列表。你也可以创建几个列表&#xff0…

[Typecho主题] modernist

Modernist 主题来自 Hexo. 是基于 modernist theme 修改 演示站点 安装 git clone https://github.com/uidea/typecho-theme-modernist.git themes/modernist 启用 外观 -> Modernist Theme -> 启用即可 更新 cd themes/modernist git pull 下载地址:https://…

python预定义_【Python】python类中方法的预定义

知乎问题:像这个图片里面显示的,self.prediction首先声明了下然后下面给出了定义,然后optimize又调用这个函数但是没有用self.prediction()这样的方式而是像用变量一样直接用self.prediction,,像请教一下这是什么操作?…

python md5加密_Python MD5加密实例详解

详解Python MD5加密 Python 3下MD5加密 # 由于MD5模块在python3中被移除 # 在python3中使用hashlib模块进行md5操作 import hashlib # 待加密信息 str this is a md5 test. # 创建md5对象 hl hashlib.md5() # Tips # 此处必须声明encode # 若写法为hl.update(str) 报错为&…

【IOS-COCOS2D-X 游戏开发之四】COCOS2DX创建ANDROID NDK新项目并编译导入ECLIPSE中正常运行!...

本站文章均为 李华明Himi 原创,转载务必在明显处注明: 转载自【黑米GameDev街区】 原文链接: http://www.himigame.com/android-game/645.html此篇针对较早的-x引擎讲解的,最新的可以参考: 【Cocos2d-X(2.x) 游戏开发系列之二】cocos2dx最新2…