【成都鱼住未来身份证】 身份证读取与解析———未来之窗行业应用跨平台架构——智能编程——仙盟创梦IDE

 

 读取身份证开发配置

 function readerid鱼住未来科技(){const webUrl = 'http://' + "127.0.0.1:30004" + '/api/info'$.ajax({url: webUrl,type: 'GET',dataType: 'json',success: function (result) {// processContent.text('web api接口:' + webUrl + ' 读取身份证信息成功')const szparam = result身份证渲染_鱼住未来科技(szparam);},error: function (jqXHR, textStatus, errorThrown) {//  processContent.text('web api接口:' + webUrl + ' 读取身份证失败,原因:' + hex2a(window.atob(errorThrown)))alert("读取身份证失败"+ hex2a(window.atob(errorThrown)));}})}

身份证解析代码 

function 身份证渲染_鱼住未来科技(szparam){//  alert(szparam.CardType);if (szparam.CardType == 74){// 切换背景图片   83是台湾cardFront.removeClass()cardBack.removeClass()cardFront.addClass('GAT-card')cardFront.addClass('card-hongkong-macao-taiwan-front')cardBack.addClass('GAT-card')let no = hex2a(window.atob(szparam.CardInfo.No))if (no && no.startsWith('83')){cardBack.addClass('card-taiwan-back')}else{cardBack.addClass('card-hongkong-macao-back')}strLog = '读取 港澳台居民居住证 成功\r\n';strLog += 'SN:' + szparam.CardInfo.SN + '\r\n';strLog += '中文名:' + hex2a(window.atob(szparam.CardInfo.Name)) + '\r\n';strLog += '证件号码:' + no + '\r\n';strLog += '性别:' + hex2a(window.atob(szparam.CardInfo.Sex)) + '\r\n';strLog += '出生日期:' + hex2a(window.atob(szparam.CardInfo.Birthday)) + '\r\n';strLog += '民族:' + hex2a(window.atob(szparam.CardInfo.Nation)) + '\r\n';strLog += '地址:' + hex2a(window.atob(szparam.CardInfo.Address)) + '\r\n';strLog += '签发机关:' + hex2a(window.atob(szparam.CardInfo.SignedDepartment)) + '\r\n';strLog += '开始日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin)) + '\r\n';strLog += '结束日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)) + '\r\n\r\n';strLog += '通行证号码:' + hex2a(window.atob(szparam.CardInfo.OtherNO)) + '\r\n';strLog += '签发次数:' + hex2a(window.atob(szparam.CardInfo.SignNum)) + '\r\n';//processContent.text(strLog)// 港澳台通行证号码console.log(szparam.CardInfo)// cardFront.find('.name').text(hex2a(window.atob(szparam.CardInfo.Name)))// cardFront.find('.sex').text(hex2a(window.atob(szparam.CardInfo.Sex)) ==='1'? '男':'女')const Birthday = hex2a(window.atob(szparam.CardInfo.Birthday))const birthArr = parseDateString(Birthday , ".", true).split(".")// cardFront.find('.year').text(birthArr[0])// cardFront.find('.month').text(birthArr[1])// cardFront.find('.date').text(birthArr[2])// cardFront.find('.address').text(hex2a(window.atob(szparam.CardInfo.Address)))//  cardFront.find('.number').text(hex2a(window.atob(szparam.CardInfo.No)))//  cardBack.find('.department').text(hex2a(window.atob(szparam.CardInfo.SignedDepartment)))const ValidityPeriodBegin = hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin))const ValidityPeriodEnd = hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)).trim()const expiryBegin = parseDateString(ValidityPeriodBegin, '.')const expiryEnd = ValidityPeriodEnd !== '长期' ? parseDateString(ValidityPeriodEnd, '.') : ValidityPeriodEnd// cardBack.find('.expiry').text( expiryBegin + '-' + expiryEnd)//  cardBack.find('.pass-number').text(  hex2a(window.atob(szparam.CardInfo.OtherNO)))}else if (szparam.CardType == 73){// 切换背景图片   83是台湾cardFront.removeClass()cardBack.removeClass()cardFront.addClass('WGR-card-1')cardFront.addClass('card-old-foreigner-front')cardBack.addClass('WGR-card-1')cardBack.addClass('card-old-foreigner-back')strLog = '读取 外国人永久居留身份证(旧版) 成功\r\n';strLog += 'SN:' + szparam.CardInfo.SN + '\r\n';strLog += '中文名:' + hex2a(window.atob(szparam.CardInfo.Name)) + '\r\n';strLog += '英文名:' + hex2a(window.atob(szparam.CardInfo.EnName)) + '\r\n';strLog += '证件号码:' + hex2a(window.atob(szparam.CardInfo.No)) + '\r\n';strLog += '性别:' + hex2a(window.atob(szparam.CardInfo.Sex)) + '\r\n';strLog += '出生日期:' + hex2a(window.atob(szparam.CardInfo.Birthday)) + '\r\n';strLog += '国籍:' + hex2a(window.atob(szparam.CardInfo.Country)) + '\r\n';strLog += '签发机关:中华人民共和国移民管理局\r\n';strLog += '开始日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin)) + '\r\n';strLog += '结束日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)) + '\r\n\r\n';strLog += '版本号:' + hex2a(window.atob(szparam.CardInfo.Version)) + '\r\n';processContent.text(strLog)let name = hex2a(window.atob(szparam.CardInfo.Name))let enName = hex2a(window.atob(szparam.CardInfo.EnName))let nameText = enName + (name.trim()? ' / '+ name : '')//  cardFront.find('.name').text(nameText)//  cardFront.find('.sex').text(hex2a(window.atob(szparam.CardInfo.Sex)) === '1'? '男': '女')const Birthday = hex2a(window.atob(szparam.CardInfo.Birthday))const birthArr = parseDateString(Birthday , ".", true).split(".")cardFront.find('.year').text(birthArr.join('-')) //出生年月cardFront.find('.month').text(hex2a(window.atob(szparam.CardInfo.Country)))//国籍const ValidityPeriodBegin = hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin))const ValidityPeriodEnd = hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)).trim()const expiryBegin = parseDateString(ValidityPeriodBegin, '.')const expiryEnd = ValidityPeriodEnd !== '长期' ? parseDateString(ValidityPeriodEnd, '.') : ValidityPeriodEnd//  cardFront.find('.date').text(expiryBegin + '-' + expiryEnd)// cardFront.find('.address').text('中华人民共和国移民管理局') //// cardFront.find('.number').text(hex2a(window.atob(szparam.CardInfo.No)))}else if (szparam.CardType == 89){// 切换背景图片   83是台湾cardFront.removeClass()cardBack.removeClass()cardFront.addClass('WGR-card')cardFront.addClass('card-new-foreigner-front')cardBack.addClass('WGR-card')cardBack.addClass('card-new-foreigner-back')strLog = '读取 外国人永久居留身份证(新版) 成功\r\n';strLog += 'SN:' + szparam.CardInfo.SN + '\r\n';strLog += '中文名:' + hex2a(window.atob(szparam.CardInfo.Name)) + '\r\n';strLog += '英文名:' + hex2a(window.atob(szparam.CardInfo.EnName)) + '\r\n';strLog += '证件号码:' + hex2a(window.atob(szparam.CardInfo.No)) + '\r\n';strLog += '性别:' + hex2a(window.atob(szparam.CardInfo.Sex)) + '\r\n';strLog += '出生日期:' + hex2a(window.atob(szparam.CardInfo.Birthday)) + '\r\n';strLog += '国籍:' + hex2a(window.atob(szparam.CardInfo.Country)) + '\r\n';strLog += '签发机关:中华人民共和国移民管理局\r\n';strLog += '开始日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin)) + '\r\n';strLog += '结束日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)) + '\r\n\r\n';strLog += '通行证号码:' + hex2a(window.atob(szparam.CardInfo.OtherNO)) + '\r\n';strLog += '签发次数:' + hex2a(window.atob(szparam.CardInfo.SignNum)) + '\r\n';//  processContent.text(strLog)let name = hex2a(window.atob(szparam.CardInfo.Name))let enName = hex2a(window.atob(szparam.CardInfo.EnName))//  cardFront.find('.name').text(name)//  cardFront.find('.enName').text(enName)// cardFront.find('.sex').text(hex2a(window.atob(szparam.CardInfo.Sex)) === '1'? '男': '女')const Birthday = hex2a(window.atob(szparam.CardInfo.Birthday))const birthArr = parseDateString(Birthday , ".", true).split(".")//  cardFront.find('.year').text(birthArr.join('-')) //出生年月//  cardFront.find('.month').text(hex2a(window.atob(szparam.CardInfo.Country)))//国籍const ValidityPeriodBegin = hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin))const ValidityPeriodEnd = hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)).trim()const expiryBegin = parseDateString(ValidityPeriodBegin, '.')const expiryEnd = ValidityPeriodEnd !== '长期' ? parseDateString(ValidityPeriodEnd, '.') : ValidityPeriodEnd// cardFront.find('.date').text(expiryBegin + '-' + expiryEnd)// cardFront.find('.number').text(hex2a(window.atob(szparam.CardInfo.No)))}else{// cardFront.removeClass()// cardBack.removeClass()//cardFront.addClass('ID-card')// cardFront.addClass('card-front')// cardBack.addClass('ID-card')// cardBack.addClass('card-back')strLog = '读取 身份证 成功\r\n';strLog += 'SN:' + szparam.CardInfo.SN + '\r\n';strLog += '中文名:' + hex2a(window.atob(szparam.CardInfo.Name)) + '\r\n';strLog += '证件号码:' + hex2a(window.atob(szparam.CardInfo.No)) + '\r\n';strLog += '性别:' + hex2a(window.atob(szparam.CardInfo.Sex)) + '\r\n';strLog += '出生日期:' + hex2a(window.atob(szparam.CardInfo.Birthday)) + '\r\n';strLog += '民族:' + hex2a(window.atob(szparam.CardInfo.Nation)) + '\r\n';strLog += '地址:' + hex2a(window.atob(szparam.CardInfo.Address)) + '\r\n';strLog += '签发机关:' + hex2a(window.atob(szparam.CardInfo.SignedDepartment)) + '\r\n';strLog += '开始日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin)) + '\r\n';strLog += '结束日期:' + hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)) + '\r\n\r\n';strLog += '通行证号码:' + hex2a(window.atob(szparam.CardInfo.OtherNO)) + '\r\n';strLog += '签发次数:' + hex2a(window.atob(szparam.CardInfo.SignNum)) + '\r\n';// alert(strLog);// processContent.text(strLog)//  内容填充// cardFront.find('.name').text(hex2a(window.atob(szparam.CardInfo.Name)))// cardFront.find('.sex').text(hex2a(window.atob(szparam.CardInfo.Sex)))//  cardFront.find('.nation').text(hex2a(window.atob(szparam.CardInfo.Nation)))const Birthday = hex2a(window.atob(szparam.CardInfo.Birthday))const birthArr = parseDateString(Birthday , ".", true).split(".")// cardFront.find('.year').text(birthArr[0])// cardFront.find('.month').text(birthArr[1])// cardFront.find('.date').text(birthArr[2])// cardFront.find('.address').text(hex2a(window.atob(szparam.CardInfo.Address)))// cardFront.find('.number').text(hex2a(window.atob(szparam.CardInfo.No)))// cardBack.find('.department').text(hex2a(window.atob(szparam.CardInfo.SignedDepartment)))const ValidityPeriodBegin = hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin))const ValidityPeriodEnd = hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)).trim()const expiryBegin = parseDateString(ValidityPeriodBegin, '.')const expiryEnd = ValidityPeriodEnd !== '长期' ? parseDateString(ValidityPeriodEnd, '.') : ValidityPeriodEnd// cardBack.find('.expiry').text( expiryBegin + '-' + expiryEnd)const 姓名 = hex2a(window.atob(szparam.CardInfo.Name));const 证件号 =hex2a(window.atob(szparam.CardInfo.No));var 性别 =hex2a(window.atob(szparam.CardInfo.Sex)) ;const 地址 = hex2a(window.atob(szparam.CardInfo.Address)); // alert(地址);if(性别 == 1){性别="男";}else{性别="女";}var 身份证信息={username:姓名,userid:证件号,usersex:性别,address:地址};未来之窗_人工智能_前端口_数据渲染到界面(身份证信息,"");}// SNContent.text(szparam.CardInfo.SN)// cardFront.find('.image').attr('src','data:image/jpg;base64,' + szparam.BmpInfo)// if (szparam.CardInfo.Name){//   cardFront.find('.name').text(hex2a(window.atob(szparam.CardInfo.Name)))// }// if (szparam.CardInfo.Sex){//   cardFront.find('.sex').text(hex2a(window.atob(szparam.CardInfo.Sex)))// }// if (szparam.CardInfo.Nation){//   cardFront.find('.nation').text(hex2a(window.atob(szparam.CardInfo.Nation)))// }//// const Birthday = hex2a(window.atob(szparam.CardInfo.Birthday))// const birthArr = parseDateString(Birthday , ".", true).split(".")// cardFront.find('.year').text(birthArr[0])// cardFront.find('.month').text(birthArr[1])// cardFront.find('.date').text(birthArr[2])//// if (szparam.CardInfo.Address){//   cardFront.find('.address').text(hex2a(window.atob(szparam.CardInfo.Address)))// }//// if (szparam.CardInfo.No){//   cardFront.find('.number').text(hex2a(window.atob(szparam.CardInfo.No)))// }//// if (szparam.CardInfo.SignedDepartment){//   cardBack.find('.department').text(hex2a(window.atob(szparam.CardInfo.SignedDepartment)))// }//// const ValidityPeriodBegin = hex2a(window.atob(szparam.CardInfo.ValidityPeriodBegin))// const ValidityPeriodEnd = hex2a(window.atob(szparam.CardInfo.ValidityPeriodEnd)).trim()// const expiryBegin = parseDateString(ValidityPeriodBegin, '.')// const expiryEnd = ValidityPeriodEnd !== '长期' ? parseDateString(ValidityPeriodEnd, '.') : ValidityPeriodEnd// cardBack.find('.expiry').text( expiryBegin + '-' + expiryEnd)}

相关函数

function hex2a(hex) {let str_list = ''for (let i = 0; i < hex.length && hex.substr(i, 2) !== '00'; i += 2) {const a = hex.charCodeAt(i)const b = hex.charCodeAt(i + 1)const c = b * 256 + astr_list += String.fromCharCode(c)}return str_list.toString()}function parseDateString(str, deco, zero) {let year = str.substr(0,4)let month = str.substr(4,2)let date = str.substr(6)if(zero) {month = month.substr(0,1) === "0" ? month.substr(1) : monthdate = date.substr(0,1) === "0" ? date.substr(1) : date}return `${year}${deco}${month}${deco}${date}`}

智能编程

智能编程能大幅提升编程效率,自动完成重复代码编写、精准提供代码建议,还可借助数据分析优化代码性能,并降低编程门槛,让更多人参与开发,加速创新进程

阿雪技术观
让我们积极投身于技术共享的浪潮中,不仅仅是作为受益者,更要成为贡献者。无论是分享自己的代码、撰写技术博客,还是参与开源项目的维护和改进,每一个小小的举动都可能成为推动技术进步的巨大力量

Embrace open source and sharing, witness the miracle of technological progress, and enjoy the happy times of humanity! Let's actively join the wave of technology sharing. Not only as beneficiaries, but also as contributors. Whether sharing our own code, writing technical blogs, or participating in the maintenance and improvement of open source projects, every small action may become a huge force driving technological progress.

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

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

相关文章

开启并连接redis以及端口占用问题

开启命令行 redis-server.exe redis.windows.conf 端口占用问题 查看端口&#xff1a; 输入命令行&#xff1a; netstat -ano | findstr :6379 找到并停止pid号&#xff1a; 这个要用到cmd管理员身份打开 taskkill /f /pid 你的端口号 重新开启就行了 再用另一个cmd进行连…

MCP数据可视化服务器配置依赖

# requirements.txt # MCP数据可视化服务器依赖包# 核心MCP包 mcp>=0.1.0# 数据处理 pandas>=2.0.0 numpy>=1.24.0# 可视化 matplotlib>=3.7.0 seaborn>=0.12.0# 异步支持 asyncio-mqtt>=0.13.0# JSON处理 jsonschema>=4.17.0# 图像处理 Pillow>=9.5.0…

量化面试绿皮书:14. 钟表零件

文中内容仅限技术学习与代码实践参考&#xff0c;市场存在不确定性&#xff0c;技术分析需谨慎验证&#xff0c;不构成任何投资建议。 14. 钟表零件 一个时钟(顺时针编号为 1-12)从墙上掉了下来&#xff0c;摔成三块你发现每块上的数字之和是相等的。 Q: 每块上的数字是多少&…

AndroidR平台ToastPresenter引出BinderProxy泄漏

一、问题描述 针对SA8155车机系统Qnx+Android,自动化测试模拟发送CAN信号测试,压测报出多例BinderProxy leak引起system_server重启 问题1 [CRASH] system_server osVersion: V1.2.***,提交时间:2025-06-05 ***,复现了2次java.lang.AssertionError: Binder ProxyMap has…

windows11中切换到其他桌面再切回当前桌面,任务栏的WPS有好几个窗口

感谢知乎的网友 原文链接 新建一个后缀为 .reg 的文本文件&#xff0c;将以下内容粘贴进去&#xff0c;保存&#xff0c;然后双击运行 Windows Registry Editor Version 5.00[HKEY_CURRENT_USER\Software\kingsoft\Office\6.0\wpsoffice\Application Settings]"enable_m…

从汇编的角度揭开C++ this指针的神秘面纱(下)

<接上篇> 我们接着来看一段C的代码&#xff1a; class A { public:int func(int j){return j _i;} private:int _i; };int main() {A a;a.func(3);return 0; } 这里定义了一个类A&#xff0c;在main函数中定义了A类的对像a。同时用a调用了成员函数func。我们来看一…

Kafka代码模板

Kafka 服务器&#xff08;Broker&#xff09; 的配置 server.properties # broker.id: 每个 Kafka Broker 的唯一标识符。broker.id 必须在整个 Kafka 集群中唯一。 broker.id0# 配置 Kafka Broker 监听客户端请求的地址和端口。这个配置决定了 Kafka 服务将接受来自生产者、…

最大子数组和C++

给你一个整数数组 nums &#xff0c;请你找出一个具有最大和的连续子数组&#xff08;子数组最少包含一个元素&#xff09;&#xff0c;返回其最大和。 子数组是数组中的一个连续部分。 示例 1&#xff1a; 输入&#xff1a;nums [-2,1,-3,4,-1,2,1,-5,4] 输出&#xff1a;…

centos 7单机安装ceph并创建rbd块设备

1. 安装依赖包 新增阿里云源ceph下载地址 vim /etc/yum.repos.d/ceph.repo [ceph] nameceph baseurlhttp://mirrors.aliyun.com/ceph/rpm-jewel/el7/x86_64/ gpgcheck0 [ceph-noarch] namecephnoarch baseurlhttp://mirrors.aliyun.com/ceph/rpm-jewel/el7/noarch/ gpgcheck…

Jenkins搭建、权限管理、参数化、流水线等详细教程!

部署Jenkins 一、jenkins 安装 官网&#xff1a; https://jenkins.io yum 安装 jenkins *jenkins 依赖 java 环境 #注意2.346之后的版本不再支持jdk8 卸载旧jenkins #查询以前是否安装jenkins rpm -qa |grep jenkins #卸载 jenkins yum -y remove jenkins rpm -e jenkins…

百度飞桨(PaddlePaddle)案例分享:基于 PaddleOCR 的图像文字提取系统

一、案例背景 在实际教学、办公及政务系统中&#xff0c;纸质材料&#xff08;如手写作文、表格、试卷等&#xff09;仍广泛存在。为提升信息处理效率&#xff0c;采用 OCR&#xff08;Optical Character Recognition&#xff09;技术将图像中的文字提取为可编辑文本已成为刚需…

python操控鼠标

在已知屏幕坐标的情况下&#xff0c;可以通过 Python 的 pyautogui 或 pynput 等库实现网页上的鼠标点击操作。以下是具体步骤和代码示例&#xff1a; 1. 使用 PyAutoGUI&#xff08;推荐&#xff09; pyautogui 是一个简单易用的库&#xff0c;可以直接通过屏幕坐标控制鼠标点…

UV 与 Bun 深度解析

UV 与 Bun 深度解析&#xff1a;现代开发工具的安装与使用指南 什么是 UV&#xff1f; UV&#xff08;Ultra-Velocity&#xff09;是由 Astral 公司&#xff08;Ruff 的创建者&#xff09;开发的超高速 Python 包管理工具&#xff1a; 用 Rust 编写&#xff0c;速度极快&…

【算力网络】多样化算力感知

一、算力网络 ​ 算力网络&#xff08;Computing Power Network&#xff09;是我国率先提出的原创性技术理念&#xff0c;其核心是通过高速网络整合分散的算力资源&#xff08;如云端、边缘、终端等&#xff09;&#xff0c;实现算力的动态感知、智能调度和一体化服务&#x…

Greenplum/PostgreSQL pg_hba.conf 认证方法详解

Greenplum/PostgreSQL pg_hba.conf 认证方法详解 pg_hba.conf 文件中的 METHOD 字段指定了客户端认证方式&#xff0c;以下是各种认证方法的详细说明和配置示例。 常用认证方法 1. trust - 无条件允许连接 说明&#xff1a;不需要密码&#xff0c;完全信任连接 适用场景&am…

分布式数据库中间件-Sharding-JDBC

前言 学习视频&#xff1a;深入Sharding-JDBC分库分表从入门到精通【黑马程序员】本内容仅用于个人学习笔记&#xff0c;如有侵扰&#xff0c;联系删除 1、概述 1.1、分库分表是什么 小明是一家初创电商平台的开发人员&#xff0c;他负责卖家模块的功能开发&#xff0c;其中…

pycharm2020.2版本给项目选择了虚拟环境解释器,项目文件都运行正常,为什么terminal文件路径的前面没有虚拟解释器的名称

解决问题&#xff1a; 1.打开 Anaconda Prompt输入 conda init cmd.exe 或者 pycharm终端直接 conda init cmd.exe 重启动 CMD和pycharm&#xff0c;使配置生效。

2025商旅平台排行:国内主流商旅平台解析

在数字化转型加速2025年&#xff0c;企业商旅管理正从“成本中心”向“智能管控枢纽”升级。如何通过技术赋能实现商旅成本精准优化与管理效率跃升&#xff1f;本文聚焦国内五大主流商旅平台&#xff0c;以“综合型头部平台创新型平台”双维度解析&#xff0c;结合数据实证与场…

CNS无线电信号覆盖分析系统v0.1

#系统终端有的版本号了# 开发一套类EMACS的专业软件任重道远&#xff0c;经过慢吞吞的开发&#xff0c;我们已经将目标定位大幅下调了&#xff0c;不再对标EMACS系统了&#xff0c;改为瞄行业老二WRAP软件了。当然WRAP软件在电磁信号仿真分析领域也是神一样的存在&#xff0c;其…

单视频二维码生成与列表二维码生成(完整版)

视频二维码有有两种情况&#xff1a;一种是单个视频的生成一个二维码&#xff1b;另一种是一组视频&#xff08;多个视频&#xff09;生成一个列表二维码。用户按自己的实际需求生成&#xff0c;即可&#xff0c;很方便。 STEP1 注册帐号 使用视频二维码&#xff0c;您需要注…