微信小程序制作
  • 微信小程序主要目录和文件的作用?

    微信小程序主要目录和文件的作用...2023-10-26

    制作微信小程序有很多的文件和目录那么我们就来谈谈微信小程序主要目录和文件的作用?下面我们就来一起简单的了解一下微信小程序主要目录和文件的作用。以下就是微信小程序主要目录和文件的作用内容整理,希望对你有所帮助。

    project.config.json:项目配置文件,用的最多的就是配置是否开启https校验

    App.js:设置一些全局的基础数据等
    App.json:底部tab,标题栏和路由等设置
    App.wxss:公共样式,引入iconfont等
    pages:里面包含一个个具体的页面
    index.json:配置当前页面标题和引入组件
    index.wxml:页面结构
    index.wxss:页面样式表

    index.js:页面的逻辑,请求和数据处理


  • 如何自己搭建一个小程序

    如何自己搭建一个小程序...2023-10-26

    微信小程序自2017年1月9日上线以来,极大的方便了人们的生活;也给很多商家提供了全新的推广、销售产品渠道。但是很多用户苦于不懂技术,想自己搭建又无从下手;
    那应该如何创建一个属于自己的小程序?今天分享一下小程序创建步骤,只要按照步骤操作,不懂技术也能自己搭建一个属于自己的小程序;
    NO·1 注册 众号
    划重点:申请小程序前,建议先注册一个公众号;因为使用已认证过的公众号主体做辅助认证,可以免300元年费。(秒通过)
    每年认证费300元 提供法人身份证、营业执照、对公账户等相关材料信息 认证周期约3个工作日 如涉及进嘴的商品,还需要提供食品经营许可证 
    NO·2 注册小程序
    登录认证过的公众号后台,点击小程序,按照提示步骤操作,开通小程序;
    NO·3 申请微信支付
    提供法人身份证、营业执照、对公账户等相关信息资料 如果涉及食品的,还需要提供食品经营许可证 每笔腾讯收取0.06%手续费 申请免费 审核时间大概1-3个工作日 
    NO·4 服务器
    价格一年1500元左右(只适合小量用户访问,稍微多点用户量,服务器直接蹦,卡住进不去) 注册阿里云、腾讯云或者其他服务商,实名认证需要3个工作日内 购买服务器后,需要进行备案。备案大概需要7-10个工作日 提供法人身份证、营业执照、等相关信息资料。 
    NO·5 注册域名
    如www.xxxx.com,一年30-150元不等(可通过万网、新网注册) 购买好域名后需要进行备案,备案大概需要20个工作日 提供法人身份证、营业执照、等相关信息资料。 
    2:不建议自己请技术开发;自己开发需要前端技术、UI设计、后端开发、办公场地等租金等,并且系统没有经过市场检验,会出现各种bug !后期维护成本也非常高
    NO·7 程序安装
    这里我就按已有源码的情况做解释
    NO·1-5都完成了,那我们接下来要做的工作
    第一步:先去小程序后台获取用户ID和秘钥,填写服务器配置信息、填写开发者
    第二步:再去微信支付后台填写支付秘钥,绑定支付目录、绑定对应的小程序ID
    第三步:安装后台,安装好后,填写小程序ID和秘钥,填写小程序服务器地址,填写支付秘钥信息。(这就是管理小程序的后台管理)
    第四步:去腾讯官方下载小程序开发者工具,把小程序商城前端代码打包上传到开发者工具,填写好小程序ID即可开始制作之旅。
    第五步:前后端各个功能测试、小程序商品上传、图片设计、小程序授权登录接口调试、小程序支付接口调试
    第六步:后台填充小程序商品、页面设计、图片设计
    第七步:提交前端代码到腾讯进行审核,审核周期1-7个工作日。
    通过后,恭喜您 小程序正式上线 
  • 如何规范设置的小程序名称、简称?

    如何规范设置的小程序名称、简称...2023-10-25

    如何规范设置的小程序名称?下面我们就来一起了解一下如何规范设置小程序的名称。以下是对如何规范设置的小程序名称的整理,希望对你有所帮助。

    1、名称设置方法

    1)小程序名称可以由中文、数字、英文、空格及部分特殊符号组成。长度在4-30个字符之间,一个中文字等于2个字符。
    2)公众号、小程序在微信公众平台上的名称是唯一的,且属于同一主体下,可以重名。
    3)不得与不同主体的公众号名称重名。
    2、简称设置方法
    1)小程序简称可以从小程序名称中按顺序截取字符创建。长度在4-10个字符之间,一个中文字等于2个字符。
    2)小程序简称在微信公众平台是不唯一的,可以重名。但对于仿冒、侵权等恶意情况,平台仍会做出相关处罚。开发者也可通过侵权投诉维护自己的正当权益。
    3)小程序简称设置后,将在客户端任务栏向用户展示。开发者可以凭借此功能,更好地实现产品品牌价值和展示。目前暂不支持名称的其他功能。
    3、小程序改名方法
    修改方法:登录【微信公众平台小程序】-> 【设置】->【基本信息】->【小程序名称】->【修改】->通过管理员扫码验证后即可进入修改页面,当修改名称命中保护词的时候,需要进一步审核通过方可修改成功,名称修改成功后,原名称会立即释放。
    类型 
    个人 
    非个人 
    发布前修改机会 
    2次 
    2次 
    发布后修改机会 
    2次/年 
    通过微信认证修改 
    温馨提示: 
    1)个人类型的小程序已发布后一自然年内可有2次修改名称的机会。(例:2016年1月1日至2016年12月31日内可修改2次名称) ;
    2)同一个主体的小程序和公众号可以同名;
    3)若修改名称涉嫌命中保护词的情况,审核时间为7个工作日内。
    4)名称修改超过2次小程序要先发布后,再去微信认证,认证过程中会有改名入口,如果小程序未发布,即使小程序去微信认证也不会有改名入口。
    4、小程序简称修改方法
    修改方法:登录【微信公众平台小程序】-> 【设置】->【基本信息】->【小程序简称】->【修改】->通过管理员扫码验证后即可进入修改页面,当修改简称命中保护词的时候,需要进一步审核通过方可修改成功。
    修改频次:发布前修改机会:2次;发布后修改机会:2次/年。
    温馨提示: 
    1)小程序已发布后一自然年内可有2次修改简称的机会。(例:2018年1月1日至2018年12月31日内可修改2次简称);
    2)小程序名称修改期间,简称不可进行修改操作。
    5、小程序简称删除方法
    删除方法:登录【微信公众平台小程序】-> 【设置】->【基本信息】->【小程序简称】->【修改】->通过管理员扫码验证后进入修改页面 ->不填写输入框,直接【确定】提交->弹窗【确定】
    温馨提示: 
    1)每次小程序简称删除操作也占用一次修改次数;
    2)简称删除后,任务栏将展示小程序名称。
    6、小程序改名名称释放时间 
    发布前 小程序名称从A改到B,名称A立即释放。
    发布后 帐号改名成功后,原来的名称会有一个2*24小时(即2天)的保护期,在此期间,符合命名唯一规则情况下,只有同一主体下的其他帐号可以使用该名称,主体不一致的,则需要在保护期满后才能申请使用该名称。
    7、同一个主体的小程序和公众号可以同名
    如果公众号、小程序在微信公众平台上的名称是唯一的,且属于同一主体下,那么它们可以同名。
    若小程序名称在审核环节中发现不符合名称命名规则,即使同主体同名,其名称申请亦可能会被驳回,小程序完整的名称规则可具体参照:《微信小程序平台运营规范》2. 基本信息规范
    例如:公司A拥有公众号【微信公开课】,同时可申请小程序【微信公开课】,反过来也成立。
    8、同一主体下存在多个重名公众号,可以同名
    由于历史原因,你可能在早期申请了多个重名公众号,那么你的小程序依旧能申请使用这个名称。
    例如:公司A早期申请了多个公众号【微信公开课】(第一个)、【微信公开课】(第二个)、【微信公开课】(第三个),仍可申请小程序【微信公开课】。
    9、不同主体重名公众号,不能同名 
    要是存在这样一种情况:你和其他一个或多个主体使用相同的公众号名称(由于微信公众平台早期允许),那么这个名称在小程序内就不能被使用。
    例如:个人A和公司B同时拥有公众号【张三】,则【张三】的名称在小程序内不可被申请使用。
    10、同主体下,名称后缀“+”仍然可用 
    公众号和小程序名称均不与其他重复的情况下,可支持同主体申请名称添加“+”后缀,这一点对公众号和小程序都适用。
    例如:公众号【微信公开课】的主体,支持申请【微信公开课+】小程序。
  • 小程序必须要有后台吗?

    小程序必须要有后台吗?...2023-10-25

    小程序必须要有后台吗?下面我们一起来了解一下小程序是否必须要后台。以下是对小程序是否需要后台的资料整理,希望对你有所帮助。小程序是一种运行在微信客户端的应用程序,它可以用来展示产品信息、提供服务、进行交互等。小程序通常由前端代码和后台代码组成。前端代码指的是运行在用户端的代码,它负责处理界面显示、用户交互等功能。后台代码指的是运行在服务端的代码,它负责处理数据存储、数据处理等功能。因此,小程序是可以没有后台的,但是如果要实现更多功能,比如数据存储、数据处理等,就需要使用后台代码。另外,小程序也可以使用第三方后台服务,比如云函数等,来实现后台功能。
    如果你的小程序涉及到数据的存储、读取、更新和删除(例如用户账户、交易历史、商品信息等),那么你需要一个后台来管理这些数据。后台服务器可以接收和响应来自小程序的请求,提供数据的处理以及其他需要在服务器端执行的功能。 
    如果你的小程序需要进行用户身份验证、数据分析、消息推送等功能,也需要一个后台服务器进行处理和管理。
    如果你的小程序只包含一些静态的信息展示,比如一个简单的公司信息介绍,无需实时更新或者交互,那么这样的小程序可能不需要后台。
  • 小程序开发完之后如何进行维护?

    小程序开发完之后如何进行维护?...2023-10-25

    小程序开发之后如何进行维护?下面我们就来一起了解一下小程序开发完之后如何进行维护。小程序开发完之后,维护是非常重要的,以确保小程序的正常运行和持续改进。下面是一些详细说明,可以帮助你进行小程序的维护:
    1. 监测和修复问题:定期监测小程序的运行情况,包括功能是否正常、页面加载速度、用户反馈等。如果发现问题,及时修复并发布更新版本。可以使用日志分析工具、错误监控工具等来帮助发现和解决问题。
    2. 更新和改进功能:根据用户反馈、市场需求和竞争情况,持续改进和更新小程序的功能。可以通过用户调研、数据分析等方式了解用户需求,然后进行相应的功能改进和新增。
    3. 优化性能:小程序的性能对用户体验至关重要。定期进行性能优化,包括减少页面加载时间、优化代码、缓存数据等,以提升小程序的运行速度和响应能力。
    4. 安全和防护:确保小程序的安全性,包括保护用户隐私信息、防止恶意攻击、防范数据泄露等。定期进行安全审查和漏洞扫描,及时修复安全漏洞。
    5. 进行版本管理:维护小程序的版本管理,记录每个版本的改动和发布说明。这有助于跟踪和管理小程序的开发历程,方便团队合作和回滚操作。
    6. 定期发布更新:根据需求和改进,定期发布小程序的更新版本。更新版本可以修复问题、改进功能、提升性能等,同时也向用户展示小程序的持续发展和改进。
    7. 用户支持和反馈:建立用户支持渠道,及时回复用户的问题和反馈。可以通过小程序内的客服系统、邮件、社交媒体等方式与用户互动,了解用户需求和问题,并及时作出回应。
    8. 跟踪数据和分析:使用数据分析工具来跟踪用户行为、使用情况和市场趋势等。通过数据分析,可以了解用户的喜好和行为习惯,为小程序的改进提供依据。
    9. 持续学习和更新技术:小程序技术和市场环境都在不断变化,保持对新技术和趋势的学习是维护小程序的重要一环。跟踪行业动态,学习新的开发技术和最佳实践,以保持小程序的竞争力。
    总之,小程序的维护是一个持续的过程,需要关注用户需求、技术变化和市场趋势。通过定期监测、修复问题、改进功能、优化性能、保护安全、发布更新、回应用户反馈等方式,可以确保小程序的稳定运行和持续发展。
  • 微信小程序,你必须知道的安全分析

    微信小程序,你必须知道的安全分...2023-10-25

    近期微信小程序重磅发布,在互联网界掀起不小的波澜,已有许多公司发布了自己的小程序,涉及不同的行业领域。大家在体验小程序用完即走便利的同时,是否对小程序的安全性还存有疑虑。日前对微信小程序进行初步的安全技术分析,在此整理出来抛砖引玉,如有描述不当的地方,欢迎纠正。
    本文中,将从小程序的框架、功能模块安全、账户使用安全方面进行剖析,希望能为各位泽友带来不一样的认知。
    一、小程序框架概述
    在第一部分小程序框架概述中,将介绍小程序抽象框架、小程序调用框架和小程序初始化流程。下面让来逐一介绍。
    1、小程序抽象框架
    1.1视图层
    包含WXML、WXSS和页面视图组件。
    WXML是一种类似XML格式的语言,支持数据绑定、条件渲染、列表渲染、自定义模板、事件回调和外部引用;
    WXSS是一种类似CSS格式的语言,用于描述WXML的组件样式,决定WXML中的组件如何显示;
    组件是框架提供的一系列基础模块,是视图层的基本组成单元,包含表单组件、导航、地图、媒体组件等常用元素,如图1说明当前小程序支持的的视图组件;
    图1 小程序视图组件
    1.2逻辑接口
    包含小程序注册、页面注册和功能API。程序注册代码位于app.js,页面框架注册位于app.json,小程序的app.js和app.json。功能API当前包含网络请求功能、文件处理功能、数据存储功能、微信的开放接口功能等,详见微信官方说明。
    图2 小程序注册代码示例
    图3 小程序功能API示例
    1.3 原生实现层
    承载小程序依赖的具体操作,由微信APP支撑实现,包括tbs内核、JSAPI框架、初始化小程序配置、功能接口实现等,实现代码主要位于com.tencent.mm.plugin.appbrand包,关联功能有微信平台原有的数据存储能力、二维码能力、网络请求能力、支付能力等。
    2、小程序调用框架
    图4 微信小程序调用框架简图
    上图主要说明小程序功能逻辑框架流程,由顶层的小程序实现代码(类似js),到微信底层支撑实现模块的调用流程,通过微信JSAPI框架支撑页面到本地实现的桥接调用。小程序缓存数据存放在Storage中,对应文件为DB数据库;小程序文件操作通过Hash机制进行映射,并存储在外部存储空间。
    承载小程序展示的组件有.plugin.appbrand.ui.AppBrandUI、.plugin.appbrand.ui.AppBrandUI1、.plugin.appbrand.ui.AppBrandUI2、.plugin.appbrand.ui.AppBrandUI3、.plugin.appbrand.ui.AppBrandUI4共五个组件,五个组件实现逻辑相同,AppBrandUI1- AppBrandUI4继承自AppBrandUI,图5为每个承载小程序的Android组件定义。
    图5 承载每个小程序展示的组件定义
    支持最多同时有五个小程序在加载运行状态,每个小程序使用独立进程运行,如果当前开启的小程序已位于缓存进程中,则无需重新加载直接开启(速度快),否则重新加载并替换(如果已有五个缓存进程存在)存在时间最久的缓存进程,若当前未满五个缓存进程,则从未用进程中随机取得一个使用。下图展示微信APP同时已开启过五个小程序的对应进程。
    图6 小程序的进程缓存示意图
    3、小程序初始化流程
    小程序初始化流程可分为开发者后台控制关键配置和安全的配置更新流程。
    3.1开发者后台控制关键配置
    小程序后台控制的配置信息主要包括小程序名称、图标、最大webview深度、最大请求数、请求合法域名列表、下载合法域名列表和上传合法域名列表、socket合法域名列表以及APP包的基本信息等,动态加载的配置信息相关代码详见【附录1】。
    3.2安全的配置更新流程
    启动小程序检查是否需从服务端更新最新配置,如果需更新则下载最新配置到本地APP。在初始化阶段完成小程序的关键属性更新和配置,此部分属性配置完全由后端配置控制,在更新传输和本地存储被恶意篡改的可能性极低,提取配置信息的实现代码详见【附录2】。
    综上内容,为泽友们介绍了小程序的框架部分,接下来,要讲的就是小程序功能模块安全分析了,来围观哦!
    二、功能模块安全分析
    功能模块安全分析将分为6小部分介绍,分别是:
    1、网络传输安全
    2、数据存储安全
    3、文件存储安全
    4、扫码二维码安全
    5、微信开放接口安全
    6、小程序钓鱼风险
    7、泄露数据到微信隐患
    下面我们先看一下网络传输安全。
    2.1网络传输安全
    支持发起通用请求、文件上传下载、WebSocket通讯机制。
    Https校验安全
    通用request网络请求仅支持采用https,处理请求的接口位于com.tencent.mm.plugin.appbrand.g.c中,包含url校验、域名校验、发起请求和处理响应结果。图7图8分别为官方正式DEMO和某银行APP请求包示意图。
    图7 官方DEMO request功能请求包
    图8 某银行APP request功能请求包
    Https校验采用类似浏览器的策略,通过系统原生的URL.openConnection()方式请求,证书校验的策略为校验公钥证书的根证书是否在合法CA列表凭证中。因此自签名证书无法使用;针对特定终端设备,即是校验公钥证书的根证书是否在受信任的凭据中,在设备被恶意安装代理根证书的前提下,存在被中间人攻击的风险。Request网络请求实现代码详见【附录3】。
    通过域名控制可以访问的url
    由后台配置小程序支持的域名(见1.3),仅可访问已配置域名的url,校验过程会将配置的域名先下载到本地,然后每次请求时本地做域名检查通过后才发起。域名检查代码实现详见【附录4】,图9展示了域名不匹配进行错误请求的示例。
    图9 小程序域名控制检查
    此外,对于通用request请求平台会进行请求超时控制(当前应该是5s),当请求超过5s即会被中断(文件上传操作也有超时中断控制),如下图所示超时后请求将被抛掉。
    图10 请求超时中断控制
    网络下载
    同样仅支持从含有已配置域名的url下载资源,不是走http/https协议。下载成功后临时存放,通过自定义协议wxfile进行访问,映射到SD卡上目录/sdcard/tencent/MicroMsg/wxafiles/wx_id/tmp_[hash_value]。
    图11 网络下载文件示意图
    文件上传
    上传至小程序合法域名下的服务器上,并保存临时文件在SD卡的文件存储区域/sdcard/tencent/MicroMsg/wxafiles/wx_id/tmp_[hash_value]。
    图12 文件上传示意图
    小程序外链url规范
    图13 小程序不允许外链url规定说明
    小程序在微信的生态下运行,不开放给个人使用(需要企业)。在小程序中不允许调整到外部网站,也不允许放链接。同时微信在小程序发布前会对小程序进行审核。
    2.2数据存储安全
    以(key,value)形式存放在本地缓存,将小程序需要存储的key/value数据直接存储到Storage DB缓存,小程序进行数据保护需要自行做加密处理。数据存储在本地DB,微信APP会对DB数据整体做本地加密保护,所以小程序本地存储数据的安全性依赖于微信数据库加密方案的安全,策略与EnMicroMsg.db类似,如下图所示。
    图14 本地数据存储示意
    2.3 文件存储安全
    文件保存在SD卡/sdcard/tencent/MicroMsg/wxafiles/wx_id/目录下,通过wxfile://协议指向SD卡目录下的文件。
    存放SD卡的文件有做完整性校验,无法被篡改。首先,最终存储的文件名是:对称加密(文件流内容Alder32校验和|原始文件名)生成的,最终文件名和文件内容会通过自校验判断完整性;其次,本地缓存是通过HASH映射查找文件。所以即使能破解文件名和文件内容,绕过文件自身签名校验,篡改为攻击者的伪造文件,小程序APP也无法映射到该伪造文件进行使用。
    2.4 扫码二维码安全
    扫码功能(wx.scanCode)依赖微信APP的原生的扫码功能;生成小程序特定页面的直达二维码,依赖于ACCESS_TOKEN,而ACCESS_TOKEN是通过小程序(公众号)私有的APPID和appsecret请求得到,攻击者无法获知到该信息伪造生成二维码。
    2.5 微信开放接口安全
    用户信息获取,包含以下信息:
    接口返回的明文数据会进行签名校验,需要依赖登录session_key;接口返回的敏感数据会通过密文返回,解密算法依赖登录session_key。攻击者无法获知用户的session_key进行破解,窃取用户数据。
    此外分享、客服消息、模板消息中输入的内容仅会以文本形式输出;模板消息会将数据通过https传输到服务器,而后推送到客户微信服务通知;微信支付功能继承微信平台原有的功能,安全性较为可靠。
    开放平台大部分功能会先通过wx.login获得code;然后使用该code换取openid;以此openid进行既定的微信功能操作,比如发送模板消息推送、发起微信支付等。
    图15 开放平台发布模板请求示意图
    2.6 小程序钓鱼风险
    微信小程序以唯一appid标识身份,不同小程序拥有不同的appid。如果恶意开发者伪造流行的小程序APP,如美团、大众点评,制作一个仿冒的微信小程序,且使用不同的appid,有可能绕过微信的审核流程发布到市场。小白用户如无辨识能力,极可能被钓鱼受骗。但由于小程序无法嵌入url跳转,同时有访问域名的控制,使得钓鱼风险在一定程度上减轻。小程序钓鱼风险依赖于微信平台的发布审核、监管控制。
    2.7泄露数据到微信隐患
    微信小程序的网络请求通过微信APP实现转发,微信平台可能可以获取到小程序的所有网络请求和存储数据,因此对于小程序业务敏感的数据,建议由小程序再做一层保护;小程序的操作轨迹日志会加密传送到腾讯TBS后台,如下图所示。
    图16 操作轨迹日志监控上传
    三、小程序账户使用安全
    通过目前使用体验,发现当前存在三种账户形式:
    方式一:通过wx.getUserInfo获取的微信用户信息,以openid标识一个用户应用到小程序;
    方式二:通过公众平台appid+appsecret+code,换取session_key/openid,并生成小程序第三方session,在小程序的服务器维护第三方session和微信session_key/openid的关联;客户端使用第三方session进行请求;
    方式三:通过小程序内部自实现的登录模块,如手机号+动态验证码登录
    方式一是一种弱账户体系设计,小程序本身无法获得微信用户的标识信息,如手机号、身份证或银行卡,依赖于微信开放平台接口可以提供的用户信息,详见2.5节,一般会在页面上展示微信用户昵称和头像,如下图17所示。
    图17 使用微信信息登录
    方式二和方式三是强账户体系,方式二类似微信公众号的授权机制,通过小程序获得的code和微信用户基本信息,到第三方服务器获取访问的token(第三方session),第三方服务器维护用户使用的session与微信session_key/openid的关联关系。图18为微信官方提供的登录实现时序图,图19为某餐饮小程序授权登录的请求过程。
    图18 官方提供的授权登录实现方案
    图19 某餐饮小程序授权登录过程
    以上第一个请求通过code和微信基本用户信息到第三方服务器换取token,而后的请求通过token请求用户个人数据,如团购代金券使用历史记录。方式二不能将微信公众平台的appsecret或者session_key(属于敏感信息)传递到客户端,否则可能导致安全攻击。方式三属于小程序自身实现方式,依赖自身实现的安全性,与微信平台无关。
    四、总结
    说了这么多,也该总结一下了,大致如下8点:
    1、框架上继承了微信成熟的JSAPI框架和底层的TBS浏览器内核;
    2、小程序的关键信息完全由后台控制进行配置,如可访问的域名信息;
    3、通用网络传输使用Https,并对访问域名进行校验控制,无法抵御攻击者在本地安装代理证书实施中间人攻击的威胁;
    4、本地数据存储采用(KEY,VALUE)形式存放在DB,数据的保护继承了微信的数据库加密防护策略;
    5、本地文件存储采用HASH映射机制进行文件定位,文件存储在外部存储,本身通过自定义算法实现完整性校验;
    6、存在仿冒钓鱼小程序的可能,依靠于微信平台的审核监管能力;
    7、针对特定小程序,由于是在微信平台生态中运行,小程序自身仍需对敏感数据进行安全防护;
    8、小程序登录体系可以依赖微信接口和公众号平台,也可以由小程序自行实现。前者需要根据微信平台的安全规范实施,后者则由小程序自行控制安全性。
029-86195145 180 6652 8545 西安嘉瑞德网络科技公司
工作时间:周一到周六 8:30-18:30
邮箱:2528823962@qq.com
QQ:2528823962
地址:陕西省西安市未央元朔路明丰伯马都A座10820室
  • 微信小程序制作微信二维码
    扫码咨询
Copyright © 2015 西安嘉瑞德网络科技有限公司 陕ICP备17015187号-1