微信小程序开发流程记录
一、代码处理
最近一大学同窗开了家自习室,需要一个自习室的预约微信小程序,又恰好手上没有什么代码项目在写,本着少一事不如多一事的原则,尝试了第一次的微信小程序开发。白天要上班,只能利用晚上时间编写,反正他也不着急开业,于是前前后后用了大概半个月的时间,故做记录。
刚开始写,确实没什么经验,不知从何下手,每当这时,当然是坚持一个原则,划重点,开源无国界(天下代码一大抄)。当然,不管哪种语言,初学者都是从看会别人的代码开始的。
在这里,我不说明具体的代码,也不分析具体的代码,只大概分析一下,一个自习室预约软件的需求。总的来说,两点,前端微信小程序和后台服务器。
(一)微信小程序(前端显示)
前端显示当然是不可或缺的,如果是不需要与后台进行数据交换的小程序,也就只需要前端显示了。简单记录流程。
翻阅帮助文档,开发小程序的最重要的一个文档,是腾讯官方的《微信开放文档》,里面有非常详细的指南、框架以及各种开发说明。选择开发工具,基本没得选,开发微信小程序,翻阅微信开放文档可知,基本就是“微信开发者工具”,文档里有传送口,传送你去下载页面,不支持linux系统,具体使用方法,自己探索,或者百度吧。语言代码基础,微信小程序其实就是网页开发,用的也是js,json,wxml,wxss,对应网页开发的js,xml,css,语言几乎就是一模一样;申请你的APPID,在小程序官方网站上申请,小程序网站,注册,登录,一套流程不说了。这个APPID是一个非常重要的身份认证信息,是开发者的身份认证ID,标识了这个小程序是谁开发的,很多地方都会用到,怎么获取,网上可以搜到很多教程,此处不表;导入别人的项目,在微信开发者工具中的“项目”选择“导入项目”,目录选择你的项目位置,appid就是第4点中你申请的APPID。 微信小程序项目的架构
根据文件目录,简单介绍一下,开局几大板斧:
app.js,这个是在进入微信小程序时,小程序启动阶段的运行的内容,里面最具特色的就是(),这个函数就是启动函数,如果有什么需要跟着小程序启动运行的函数,都放在这下面。在这里面,会对一些全局变量,全局函数进行定义并赋初值,在后续每个js文档需要调用时,只需要在js开头加一句const app = getApp(),即可通过诸如app..imgUrl的形式,调用值。app.json也是一些全局的定义,需要将每一个page页在"pages": []中进行声明,在"window": {}中定义小程序的名称和背景颜色等一些参数,在"tabBar": {}中定义每个tab页的具体属性,另外,常见的定义,比如,如果你需要使用到导航定位,需要在这里定义一个"":{}相关的内容。app.wxss,就是小程序的一些全局的样式定义,我没怎么用到,看个人喜好。pages文件夹,这个文件夹下,就是小程序中显示的每一页的内容了,一般每一页的内容包含三个部分,即js(实现功能),wxml(实现页面布局),wxss(定义一些具体的样式)。 部分特点说明
微信小程序虽然类似于网页,但也有其特别之处,尤其是几点内容,需要特别说明。
data中定义的变量,可以在js任意位置,通过this.data.变量名,进行调用。this.setData,这个函数是用来和前台进行数据交互用的,主要时用来往前台传送数据,采用键值对的方式传值,如this.setData({: "11:00"}),,则是王前台传的key值,“”中的时值。在前台接收通过{{}}来取值。
3.onLoad和onShow的区别,onload是页面初次加载时的动作,只运行一次,onshow是每次显示该页面时的动作,有些时候你通过退后按钮等回到该页面,onload就不会运行,onshow会运行。wx.和wx.和wx.的区别,可以跳转至除tab页(就是主页左右切换时显示的几个页面)外的页面,跳转时仍保留原页面,不销毁,点击后退还能回到原页面,也是跳转到tab页外的页面,但是跳转时,销毁原页面,不保留,点击后退,不能回到原页面,跳转至tab页。wx.request,访问后台方式,通过url进行访问。openID网络标识号的获取,这个是每个访问该小程序的用户的身份标识,每个用户都独一无二,获取这个openID号,需要通过request与后台联动获取。在微信开发工具中,可以直接上传至微信小程序官网,提交为体验版。 (二)后台服务器(数据交互)
这部分内容,不是所有人都需要了解的,有些并不需要与后台进行数据交互的,不需要关注,如果需要交互的,则需要了解一下。
需要的环境 Apache,这是为了部署网页用的,大家都晓得的,不多说。Mysql,这个就更熟悉了,非常常见的关系型数据库,存储数据用的,包括微信小程序很多的数据都需要与这个数据库进行操作,进行读写。代码运行环境,这里语言不限制,常见的就是java和php,因为我借鉴的是人用的php,我只能硬着头皮用php了。,上述三个环境,apache,mysql,php运行环境,看起来非常的繁琐,当然,如果您真的自己去一个一个的搭建环境,那可能会成未你前进路上的绊脚石。于是你会很惊喜的发现一个神器,,简单安装,就能三位一体,一步到位。安装完以后,在安装目录下,会出现一个“wamp64”的文件夹(我选择的是64位),将你的php网页,放在该文件夹下的“www”文件夹下,即可。访问“”(即www文件夹下,你的工程文件夹的名),就能访问后台网页了。navicat,管理mysql数据库的常用软件了,不多说。 特别注意 后台访问网页和后台访问数据库是两回事,不过访问方法都一样都是的,通过http或者https访问后台。区别在于指向不同。要获取访问用户的openid号,必须访问"";
public function getOpenId(){
$url="https://api.weixin.qq.com/sns/jscode2session";
$appid='wxddd2d233413fb869';//小程序appid
$secret='477fe8909d4ba0ff092bbd636becd45b';//小程序密钥
$js_code=I('js_code');
$sendurl= $url."?appid=".$appid."&secret=".$secret."&js_code=".$js_code."&grant_type=".$_GET['grant_type'];
$result =json_decode(file_get_contents($sendurl));
$session_key=$result->session_key;
$openid=$result->openid;
echo json_encode(array("openid"=>$openid,"session_key"=>$session_key));
}
访问后台数据库的的类似的句式是“”,这一类句式可以看出来,访问的对应的是在“C:\wamp64\www\\\Api\”(我的目录,各人有个人的目录,不尽相同)目录下,对应的.php中的内容。如“”访问的对应的程序内容为.class.php文件中的如下public index()的函数内容,的使用,就这么简单说一下,不多说了。 二、项目部署 (一)的设置
默认是理想状态的,因此,需要修改的配置为可允许外部访问,具体的方法上网可查。
(二)域名的获取
域名是申请获取的,而且需要具备http和https的权限,我在这里图个方便,用了花生壳的内网透传,下载了花生壳5的软件,再花了6+58=64元,搞定了一个永久的https加密域名,就可以使用这个域名了。使用花生壳软件时,有几个注意点。
必须用https或者http的域名,干脆一步到位,https吧,微信小程序访问后台,要求必须时https的协议,http只在调试时可用。建议固定电脑的ip地址,这个ip是电脑再局域网内的ip地址,比如我的“192.168.1.4”,省的每次重启后,ip变化,又得更改设置,不然花生壳局域网映射不上。获取了域名以后,原本的“”的地方,就需要用你的域名替代进去,即可。 (三)小程序官方网站上的设置
登录小程序网页,登录后,有几个地方需要注意修改:
“开发”–“开发设置”–“服务器域名”–“request合法域名”,添加你的域名到这里,表示这是一个允许通过的域名,不然你在微信体验版中,只能打开调试模式。或者在微信开发工具中,调试时,勾选“不校验域名XXXX”。“首页”–“小程序信息”,谨慎填写,很多都有限制修改次数。小程序上传为体验版后,需要手动在“管理”–“版本管理”–“开发版本”中,设置为允许体验。然后能获取二维码,可以扫码申请体验,开发者通过即可。
最后,双手奉上我借鉴的源代码的链接,不知道这样是否违规,先试试吧,如果不可以,请作者联系我删除。微信小程序自习室预约代码下载地址
用户拟可选择关闭算法推荐服务
互联网信息服务算法推荐管理规定
(征求意见稿)
第一条 为了规范互联网信息服务算法推荐活动,维护国家安全和社会公共利益,保护公民、法人和其他组织的合法权益,促进互联网信息服务健康发展,弘扬社会主义核心价值观,根据《中华人民共和国网络安全法》、《中华人民共和国数据安全法》、《中华人民共和国个人信息保护法》、《互联网信息服务管理办法》等法律、行政法规,制定本规定。
第二条 在中华人民共和国境内应用算法推荐技术提供互联网信息服务(以下简称算法推荐服务),适用本规定。法律、行政法规另有规定的,依照其规定。
前款所称应用算法推荐技术,是指应用生成合成类、个性化推送类、排序精选类、检索过滤类、调度决策类等算法技术向用户提供信息内容。
第三条 国家网信部门负责全国算法推荐服务的监督管理执法工作。省、自治区、直辖市网信部门依据职责负责本行政区域内算法推荐服务的监督管理执法工作。
第四条 算法推荐服务提供者提供算法推荐服务,应当遵守法律法规,尊重社会公德和伦理,遵守商业道德和职业道德,遵循公正公平、公开透明、科学合理和诚实信用的原则。
第五条 鼓励相关行业组织加强行业自律,建立健全自律制度和行业准则,组织制定行业标准,督促指导算法推荐服务提供者建立健全服务规范、依法提供服务并接受社会监督。
第六条 算法推荐服务提供者应当坚持主流价值导向,优化算法推荐服务机制,积极传播正能量,促进算法应用向上向善。
算法推荐服务提供者不得利用算法推荐服务从事危害国家安全、扰乱经济秩序和社会秩序、侵犯他人合法权益等法律、行政法规禁止的活动,不得利用算法推荐服务传播法律、行政法规禁止的信息。
第七条 算法推荐服务提供者应当落实算法安全主体责任,建立健全用户注册、信息发布审核、算法机制机理审核、安全评估监测、安全事件应急处置、数据安全保护和个人信息保护等管理制度,制定并公开算法推荐相关服务规则,配备与算法推荐服务规模相适应的专业人员和技术支撑。
第八条 算法推荐服务提供者应当定期审核、评估、验证算法机制机理、模型、数据和应用结果等,不得设置诱导用户沉迷或者高额消费等违背公序良俗的算法模型。
第九条 算法推荐服务提供者应当加强信息内容管理,建立健全用于识别违法和不良信息的特征库,完善入库标准、规则和程序。发现未作显著标识的算法生成合成信息的,应当作出显著标识后,方可继续传输。
发现违法信息的,应当立即停止传输,采取消除等处置措施,防止信息扩散,保存有关记录,并向网信部门报告。发现不良信息的,应当按照网络信息内容生态治理有关规定予以处置。
第十条 算法推荐服务提供者应当加强用户模型和用户标签管理,完善记入用户模型的兴趣点规则,不得将违法和不良信息关键词记入用户兴趣点或者作为用户标签并据以推送信息内容,不得设置歧视性或者偏见性用户标签。
第十一条 算法推荐服务提供者应当加强算法推荐服务版面页面生态管理,建立完善人工干预和用户自主选择机制,在首页首屏、热搜、精选、榜单类、弹窗等重点环节积极呈现符合主流价值导向的信息内容。
第十二条 算法推荐服务提供者应当综合运用内容去重、打散干预等策略,并优化检索、排序、选择、推送、展示等规则的透明度和可解释性,避免对用户产生不良影响、引发争议纠纷。
第十三条 算法推荐服务提供者不得利用算法虚假注册账号、非法交易账号、操纵用户账号,或者虚假点赞、评论、转发、网页导航等,实施流量造假、流量劫持;不得利用算法屏蔽信息、过度推荐、操纵榜单或者检索结果排序、控制热搜或者精选等干预信息呈现,实施自我优待、不正当竞争、影响网络舆论或者规避监管。
第十四条 算法推荐服务提供者应当以显著方式告知用户其提供算法推荐服务的情况,并以适当方式公示算法推荐服务的基本原理、目的意图、运行机制等。
第十五条 算法推荐服务提供者应当向用户提供不针对其个人特征的选项,或者向用户提供便捷的关闭算法推荐服务的选项。用户选择关闭算法推荐服务的,算法推荐服务提供者应当立即停止提供相关服务。
算法推荐服务提供者应当向用户提供选择、修改或者删除用于算法推荐服务的用户标签的功能。
用户认为算法推荐服务提供者应用算法对其权益造成重大影响的,有权要求算法推荐服务提供者予以说明并采取相应改进或者补救措施。
第十六条 算法推荐服务提供者向未成年人提供服务的,应当依法履行未成年人网络保护义务,并通过开发适合未成年人使用的模式、提供适合未成年人特点的服务等方式,便利未成年人获取有益身心健康的信息内容。
算法推荐服务提供者不得向未成年人用户推送可能引发未成年人模仿不安全行为和违反社会公德行为、诱导未成年人不良嗜好等可能影响未成年人身心健康的信息内容,不得利用算法推荐服务诱导未成年人沉迷网络。
第十七条 算法推荐服务提供者向劳动者提供工作调度服务的,应当建立完善平台订单分配、报酬构成及支付、工作时间、奖惩等相关算法,履行劳动者权益保障义务。
第十八条 算法推荐服务提供者向消费者销售商品或者提供服务的,应当保护消费者合法权益,不得根据消费者的偏好、交易习惯等特征,利用算法在交易价格等交易条件上实行不合理的差别待遇等违法行为。
第十九条 国家网信部门建立分类分级管理制度,根据算法推荐服务的舆论属性或者社会动员能力、内容类别、用户规模、算法推荐技术处理的数据敏感程度、对用户行为的干预程度等对算法推荐服务提供者实施分类分级管理。
第二十条 具有舆论属性或者社会动员能力的算法推荐服务提供者应当在提供服务之日起十个工作日内通过互联网信息服务算法备案系统填报服务提供者的名称、服务形式、应用领域、算法类型、算法自评估报告、拟公示内容等信息,履行备案手续。
算法推荐服务提供者的备案信息发生变更时,应当在变更之日起五个工作日内办理变更手续。
算法推荐服务提供者终止服务的,应当在终止服务三十个工作日前办理注销备案手续,并作出妥善安排。
第二十一条 国家和省、自治区、直辖市网信部门收到备案人提交的备案材料后,材料齐全的,应当在三十个工作日内予以备案,发放备案编号并进行公示;材料不齐全的,不予备案,并应当在三十个工作日内通知备案人并说明理由。
第二十二条 完成备案的算法推荐服务提供者应当在其对外提供服务的网站、应用程序等显著位置标明其备案编号并提供公示信息链接。
第二十三条 具有舆论属性或者社会动员能力的算法推荐服务提供者应当按照国家有关规定开展安全评估。
算法推荐服务提供者应当完善算法推荐服务管理机制,对算法推荐服务日志等信息进行留存,留存期限不少于六个月,并在相关执法部门依法查询时予以提供。
第二十四条 国家和省、自治区、直辖市网信部门会同有关主管部门对算法推荐服务开展算法安全评估和监督检查工作,对发现的问题及时提出整改意见并限期整改。
算法推荐服务提供者应当配合有关主管部门依法实施的安全评估和监督检查工作,并提供必要的技术、数据等支持和协助。
第二十五条 参与算法推荐服务安全评估和监督检查的相关机构和人员应当对在履行职责中知悉的个人信息、隐私和商业秘密严格保密,不得泄露、出售或者非法向他人提供。
第二十六条 算法推荐服务提供者应当接受社会监督,设置便捷的投诉举报入口,及时受理和处理公众投诉举报。
算法推荐服务提供者应当建立用户申诉渠道和制度,规范处理用户申诉并及时反馈,切实保障用户合法权益。
第二十七条 算法推荐服务提供者违反本规定第七条、第八条、第九条第一款、第十条、第十一条、第十二条、第十三条、第十四条、第十五条第二款、第二十二条、第二十六条规定的,由国家和省、自治区、直辖市网信部门依据职责给予警告、通报批评,责令限期改正;拒不改正或者情节严重的,责令暂停信息更新,并处五千元以上三万元以下罚款。构成违反治安管理行为的,依法给予治安管理处罚;构成犯罪的,依法追究刑事责任。
第二十八条 算法推荐服务提供者违反本规定第六条、第九条第二款、第十五条第一款、第三款、第十六条、第十七条、第十八条、第二十三条、第二十四条第二款规定的,由网信等有关主管部门依据职责,按照有关法律、行政法规和部门规章的规定予以处理。
第二十九条 具有舆论属性或者社会动员能力的算法推荐服务提供者违反本规定第二十条的规定,未按照要求备案或者在报送备案时隐瞒有关情况、提供虚假材料或者通过欺骗、贿赂等不正当手段取得备案的,由国家和省、自治区、直辖市网信部门依法撤销备案,并给予警告、通报批评,责令限期改正;拒不改正或者情节严重的,责令暂停信息更新,并处五千元以上三万元以下罚款。
具有舆论属性或者社会动员能力的算法推荐服务提供者终止服务未按照要求及时办理注销备案手续,或者发生严重违法情形受到吊销互联网信息服务许可、关闭网站、终止服务等行政处罚的,由国家和省、自治区、直辖市网信部门予以注销备案。
第三十条 本规定自2021年 月 日起施行。
来源/网信中国微信号
监制/刘志奇
主编/王玥
*请认真填写需求信息,我们会在24小时内与您取得联系。