云南区块链商户平台:抓包技术自制开票工具(二)

前言

上节我们分析了云南区块链商户平台的登录接口以及数据加密、解密,本节我们将构建一个项目框架,将大致的雏形制作出来

说明

由于我们使用开票软件都是在 云南区块链商户平台上操作,如果再开发电脑端就显得没必要,思考良久,最后打算开发移动端

本节成品图

在这里插入图片描述

接口列表

api
获取验证码https://yunnan-cloud-backend.wetax.com.cn/v3/user/picture-code?token=
获取微信扫码https://yunnan-cloud-backend.wetax.com.cn/v3/user/qr-code?token=
登录

登录流程图

在这里插入图片描述

获取验证码

由于接口返回的是base64的代码,且不带头,所以需要处理以下再进行渲染

<image :src="base64Image" mode="widthFix"  style="width: 150rpx;"></image>
					
yzm(){
			let that=this;
			uni.request({
			url: 'http://service.****.***/api/getcode.php',
			data: {
			id:'',
			},
			method: 'POST',
			header: {
			'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息
			},
			success: (res) => {
			console.log(res)
			if (res.data.code==0) {
			console.log(res.data.data['unique_code'])
			console.log(res.data.data['picture'])
			that.base64Image='data:image/jpeg;base64,'+res.data.data['picture']
			} else{
			uni.showToast({
			title:res.data.message,
			icon:'error'
			})
			}
			}
			})
			}

为了防止跨域的问题,需要将抓包的接口封装成本地访问,例如我的文件getcode.php,访问后可解析接口数据
在这里插入图片描述

刷新前端页面可以实时显示验证码数据
在这里插入图片描述
在这里插入图片描述

登录请求

解密

<?php
// 设置参数
$key_text = '1*****************D';
$iv_text = 'A**************412';
$plaintext = '9********7';
$encoding = 'utf-8';

// 使用PKCS7填充
$block_size = 16;
$pad_length = $block_size - (strlen($plaintext) % $block_size);
$plaintext .= str_repeat(chr($pad_length), $pad_length);

// 如果IV不足16字节,使用空字节填充至16字节
$iv_length = strlen($iv_text);
if ($iv_length < 16) {
    $iv_text = str_pad($iv_text, 16, "\0");
}

// 创建AES加密器
$ciphertext = openssl_encrypt($plaintext, 'aes-128-cbc', $key_text, OPENSSL_RAW_DATA | OPENSSL_ZERO_PADDING, $iv_text);

// 将加密结果进行Base64编码
$encrypted_base64 = base64_encode($ciphertext);

echo "加密后的Base64编码结果:".$encrypted_base64."\n";
?>

运算模式:CBC
填充模式:PKCS7
密钥长度:128bit
key(text):1D
iv(text): A
********2
需要加密:92*******27
字符编码:utf-8
输出base64编码

登陆后能够返回token及店铺信息
在这里插入图片描述

token处理

如果每次都要重新登陆,有点鸡肋,可以储存再本地,页面生命周期加载的同时检测是否过期

本地缓存

登陆成功后将token存储再本地,页面启动周期添加check_token()检查

that.token=res.data.data['token']
uni.setStorageSync('token',token)


onLoad() {
			this.yzm()
			this.check_token()
			
		},

失效检查

接口说明
https://yunnan-cloud-backend.wetax.com.cn/v3/user/user-info?token=6idt*********Ush通过token检查当前账号是否token过期

在这里插入图片描述

通过php进行模拟,失效返回结果

在这里插入图片描述

token状态码说明
401失效
0正常
check_token(tokens){
				
			let that=this;
			uni.request({
			url: 'http://*******/is_token.php',
			data: {
			token:tokens
			},
			method: 'POST',
			header: {
			'content-type': 'application/x-www-form-urlencoded' //自定义请求头信息
			},
			success: (res) => {
			console.log(res.data)
			if (res.data.code==401) {
			uni.showToast({
				title:'登陆失效',
				icon:'error'
			})
			uni.removeStorageSync('token')
			}
			 else if (res.data.code==0) {
			 uni.showToast({
			 	title:'登陆成功',
			 	icon:'success'
			 })
			 console.log(res.data.data['user'])
			 that.userinfo=res.data.data['user']
			 that.status='1'
			 }
			 else{
			uni.showToast({
			title:res.data.message,
			icon:'error'
			})
			}
			}
			})	
			},

检测token可用时,给userinfo数据,将status标记为1已登录

其他专题作品

《记一次云之家签到抓包》
《记一次视频抓包m3u8解密过程》
《抓包部分软件时无网络+过代理检测 解决办法 安卓黄鸟httpcanary+vmos》
《Python】记录抓包分析自动领取芝麻HTTP每日免费IP(成品+教程)》
《某课抓包视频 安卓手机:黄鸟+某课app+VirtualXposed虚拟框架》

推荐专栏:

《Python爬虫脚本项目实战》

该专栏往期文章:
《【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)》

🥦如果感觉看完文章还不过瘾,欢迎查看我的其它专栏
🥦作者对python有很大的兴趣,完成过很多独立的项目:例如滇医通等等脚本,但是由于版权的原因下架了,爬虫这一类审核比较严谨,稍有不慎就侵权违规了,所以在保证质量的同时会对文章进行筛选

如果您对爬虫感兴趣请收藏或者订阅该专栏哦《Python爬虫脚本项目实战》,如果你有项目欢迎联系我,我会同步教程到本专栏!

🚀Python爬虫项目实战系列文章!!
⭐⭐欢迎订阅⭐⭐

【Python爬虫项目实战一】获取Chatgpt3.5免费接口文末付代码(过Authorization认证)
【Python爬虫项目实战二】Chatgpt还原验证算法-解密某宝伪知网数据接口

⭐⭐欢迎订阅⭐⭐
在这里插入图片描述

Python爬虫脚本项目实战
在这里插入图片描述

评论 9
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

园游会永不打烊.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值