业务场景:
通常我们需要通过手机扫描二维码进行签到确认到访,为了提高测试效率,我们可以通过接口实现快速签到
首先可以通过抓包获取接口之间业务参数关系,方可进行动态关联处理签到。
例如:我这里的二维码实际上是上一个客户报备接口返回的一个二维码图片地址,而我下一个签到接口所需要的一个参数值 不知道从哪里来?分析了半天才发现这个参数值是在上一个接口返回的结果里,我们所需要的这参数就在这个二维码图片地址里 如下图:

‘https://xfb-materia-test.obs.cn-south-1.myhuaweicloud.com/dc-openonline-file/ea2a1fbb-384d-400b-866e-e5b6308ab990.jpg’
下面着重解决如何解析上一个接口的二维码,通过解析这个二维码获取二维码里我们需要的参数

‘visitQrCodeUrl’: ‘https://xfb-materia-test.obs.cn-south-1.myhuaweicloud.com/dc-openonline-file/ce1fa49f-0ef3-40d6-99bb-7d31e7f702f8.jpg’}

我们通过调用上一个接口提取出这个二维码图片地址,可以看的出此图片地址是云服务器返回来的,我们需要将此图片地址下载到本地方可查看到二维码图片,代理处理如下:

#通过get请求从云服务器下载图片到本地保存# 下载二维码到本地imgresponse = requests.get("{}".format(add_reserve_info()["data"]["visitQrCodeUrl"]), stream=True)  # 以流的方式打开with open(r"C:\Users\28071\Desktop\Desktop\分销二维码图片\1.jpg", "wb") as jpg:jpg.write(imgresponse.content)

下载完后可在本地目录查看到此二维码图片的显示,如下图:

现在我们需要将此二维码图片通过第三方包进行解析获取二维码里的参数:
需要用到以下3个包

from pyzbar.pyzbar import decode
from PIL import Image
from urllib import parse# 解析二维码-从本地打开此图片img = Image.open(r"C:\Users\28071\Desktop\Desktop\分销二维码图片\1.jpg")barcodes = decode(img) #解析第三方包解析二维码print(barcodes)#打印解析结果如下:#[Decoded(data=b'orgId=181&appId=1001&clueId=6e028157-3dd6-4d92-8a6e-dd15918fbc59&teamId=&productId=&productName=&projectId=3274&firstChannelIdentity=10011&secondChannelIdentity=181&referrerAccountId=100020241&referrerName=\xe9\xab\xaf\xe5\xbe\xa1\xef\xbd\xb8\xe9\xa1\x94\xe8\x84\x82\xe9\x84\x82\xef\xbd\xae\xe8\x8d\xb3\xe5\xa4\x90\xef\xbd\xa1\xef\xbd\xbe\xe9\xab\xa3\xef\xbd\xae&referrerMobile=18811111117&clueAccountId=100037774&name=\xe9\x82\x89\xef\xbd\xbb-\xe8\xb0\xba\xef\xbd\xa7\xe9\xab\xa6\xef\xbd\xb3\xe9\xab\xae\xef\xbd\xaa&gender=1&mobile=13494829720', type='QRCODE', rect=Rect(left=12, top=12, width=276, height=276), polygon=[Point(x=12, y=12), Point(x=12, y=288), Point(x=287, y=287), Point(x=288, y=12)], quality=1, orientation='UP')]a = [code.data.decode("utf-8") for code in barcodes][0]print(a)#打印如下:#orgId=181&appId=1001&clueId=adccf318-ca4f-4cf7-8497-bdf6ee4ff0d5&teamId=&productId=&productName=&projectId=3274&firstChannelIdentity=10011&secondChannelIdentity=181&referrerAccountId=100020241&referrerName=陌上玉置业顾问&referrerMobile=18811111117&clueAccountId=100037787&name=系-刘秀兰&gender=1&mobile=18159815903clueId = parse.parse_qs(a).get("clueId")[0] #通过第三方包提取我们想要的值clueidprint(clueId)#打印结果如下:#adccf318-ca4f-4cf7-8497-bdf6ee4ff0d5

拿到我们的clueid 后 我们可以放在下一个接口引用进行签到

如何解析二维码,获取二维码里的参数供下一个接口使用相关推荐

  1. wechat-0050,微信公众号,带参数的二维码获取与扫码事件推送

    demo:https://github.com/wenrongyao/wechat-demo 摘要:这篇帖子讲述如何获取带参数的二维码,以及扫码带参数的二维码后的事件接收. 微信开发者文档:https ...

  2. 获取当前月份的上一月月份,下一个月份

    1.当前月份 Date date=new Date();DateFormat df = new SimpleDateFormat("yyyy-MM");String str = d ...

  3. 婚恋相亲源码-视频相亲app将会是直播的下一个风口吗?

    互联网已经成为了人们生活中必不可少的一部分,网上购物.网上看电影.网上聊天都已经是习以为常的事情了.最近,网络相亲交友越来越流行.俗话说"物以类聚.人以群分",门当户对.三观一致. ...

  4. jmeter获取上一个接口的返回值作为下一个接口的传入参数

    1.新建一个HTTP请求,获取这个接口返回的电话号码. 此接口的返回数据: 右击这个HTTP请求,添加–后置处理器–正则表达式提取器 引用名称:shop_phone 后面接口用到的变量名称 正则表达式 ...

  5. 微信小程序获取二维码中URL中带的参数

    解析微信小程序获取二维码中的url参数 onLoad: function (options) { console.log(options) let qrUrl = decodeURIComponent ...

  6. 用 java 读取获取 二维码上的文字内容

    最近公司做一个物联网的项目,由于设备硬件编码复杂,因此业务人员提出能否使用手机扫一扫识别设备上二维码获取二维码上的编号,进而录入设备信息,在手机app上操作.因此写了如下的程序,希望对大家有帮助. 1 ...

  7. 微信小程序获取二维码接口整理,.Net Core后台获取小程序二维码

    2019独角兽企业重金招聘Python工程师标准>>> 一.关于二维码接口说明 参考:https://my.oschina.net/tianma3798/blog/1811307 获 ...

  8. 企业实战, java、spingboot微信扫码支付,页面生成微信二维码,微信扫码付款,websocket通知,处理订单!复制粘贴代码直接开干

    一  功能描述:    前端选择商品后生成二维码,用户微信扫码支付 备注: 红色为后台给前端的接口 1.前端 选择确认商品 2.调后台生成订单接口 (状态未付款) 3.返回订单的详情(订单确认页面  ...

  9. [转载] pythonjson构建二维数组_python二维键值数组生成转json的例子

    参考链接: python json 10: Datetime与json的相互转化 python二维键值数组生成转json的例子 今天出于需要,要将爬虫爬取的一些数据整理成二维数组,再编码成json字符 ...

  10. 微信小程序-获取不限制的小程序码(二)

    一.获取小程序码 获取小程序码 | 微信开放文档 与 createQRCode 总共生成的码数量限制为 100,000,请谨慎调用 调用方式 HTTPS 调用 POST https://api.wei ...

最新文章

  1. 这个椅子哪里卖?我也想买啊!
  2. ubuntu 网卡双网口 配置_Ubuntu 18.04 设置多网卡多端口聚合
  3. React Native登录注册页面实现空白处收起键盘
  4. 内存申请与一级二级指针
  5. Java开发Web Service的几种解决方案
  6. webpack-internal:///./node_modules/vue/dist/vue.esm.js:629 [Vue warn]: Invalid prop: type check fail
  7. 学子商城电子产品销售系统
  8. 在Kali系统配置临时IP和静态IP
  9. 值得总结!推荐10款超实用的神级办公网站和软件,效率翻倍
  10. 一万年很长,所以只争朝夕
  11. c语言编程新思路知道答案,C语言编程新思路知道答案公众号
  12. 关于SIGHCLD和SIGCLD
  13. papers-06-07
  14. Ardupilot固件之Flightgear模拟仿真
  15. 面试题61. 扑克牌中的顺子
  16. Revi插件技巧:管道【风口下延】自定义长度?
  17. 魅族商城html模板,jQuery实现Meizu魅族官方网站的导航菜单效果
  18. mysql 事务数据分批_mysql 如何分批 读取数据
  19. wordpress(DUX主题)怎么给文章添加历史上的今天
  20. 网新恒天2014校园招聘笔试编程题

热门文章

  1. 各浏览器驱动webdriver下载
  2. java放大镜_Java写的屏幕放大镜
  3. 设置服务器网站播放flv视频文件,网页制作 flvplayer.swf无法播放服务器上flv文件 如何设置...
  4. cmd 环境下载文件的几种方法
  5. Unity插件——Odin 学习笔记(三)
  6. 质疑江民电脑保护系统,涉嫌抄袭
  7. 运算符之前加加后加加的运算规则
  8. Java 苹果支付applepay服务端验证
  9. 设置linux默认音频设备,ubuntu设置默认声音设备
  10. 计算机主机有自带的声音吗,Windows XP 系统中没有音频设备,怎么办?