1 小程序收款码3月1日新规
小程序是一种全新的连接用户与服务的方式。小程序为用户提供了触手可及、用完即走的轻便服务,主要体现在用户获取小程序、使用小程序方便快捷的服务理念上。用户可以在线下扫一扫或者关联小程序码获取小程序应用,或者可以在的发现页面搜索小程序,由于小程序的整个文件占用内存空间很小,用户下载安装小程序的过程消耗几乎感知不到,所以从用户获取小程序到点击进入开始使用小程序应用的速度非常快。小程序多入口获取和触手可及用完即走的使用体验降低了器传播和获取用户的成本,并且可以实现原生APP 的基本功能,更加适合线下的生活服务类的商铺及非刚需类低频应用。
MINA 框架是团队为小程序开发提供的框架名字,MINA 框架通过封装客户端提供的文件系统、网络通信、任务管理、数据安全等基础功能,由此对上层提供一整套JavaScript API,让开发者能够非常方便地使用客户端提供的各种基础功能与能力,快速构建一个应用。简单来讲,MINA 其实就是一组便于开发小程序的工具的集合。
框架提供了自己的视图层特有的描述语言WXML 、WXSS,以及基于JavaScript 的逻辑层,并在视图层与逻辑层间提供了数据传输和事件机制。这个数据传输和事件机制是一个响应用户交互的数据绑定系统,它让数据与视图非常简单地保持同步。当需要更新页面数据时,只需要调用逻辑层的相应方法返回结果到视图层即可。
通过下面的MINA 框架图我们可以看到三大部分:逻辑层、视图层和系统层。如图2.1。
图2.1 M INA 框架架构图
(1)逻辑层
逻辑层是MINA 的服务中心,由客户端启用异步线程单独加载运行。页面渲染所需
的数据、页面交互处理逻辑都在逻辑层中实现。小程序中的各个页面可以通过逻辑层的函数实现
数据管理、网络通信、应用生命周期管理和页面路由。其中,小程序中的每个页面都有与其业务逻
辑相对应的生命周期,这个由页面逻辑层的page()函数实现,生命周期控制中主要包括以下
方法:onLoad 方法监听页面加载,onShow 方法监听页面的显示,onReady 方法监听页
面初次渲染完成,onHide 方法监听页面的隐藏,onUnload 方法监听页面卸载,不同的业
务要在不同的生命周期方法函数内实现。
小程序开发框架的逻辑层是由JavaScript 实现。在JavaScript 的基础上,团
队针对小程序项目做了一些适当的修改,以便提高开发小程序的效率。主要修改包括:增加app
和page 方法,进行程序和页面的注册;提供丰富的API,如扫一扫、支付等特有的能力;每个页面有独立的作用域,并提供模块化能力等。
逻辑层的实现就由各个页面的.js 脚本文件负责,小程序的逻辑层响应视图层
的事件处理,并将处理结果返回到视图层。但由于小程序并非运行在浏览器中,所以JavaScript 在Web 中的一些能力无法使用,如document、window 等。
(2)视图层
视图层提供了一套类似HTML 标签的语言以及一系列基础组件。开发者使用WXML 文件来搭建页面的基础视图结构,使用WXSS 文件来控制页面的展现样式。视
图层就是页面.wxml 文件与.wxss 文件的集合,由组件来进行设计展示。小程序在逻
辑层将数据进行处理后发送给视图层展现出来,同时监听视图层的事件。数据在视图层借助组件的设计展现,组件是视图的基本组成单元。
(3)系统层
系统层主要包括临时数据或缓存、文件存储、网络存储与调用。例如页面临时数据缓存需要在page()中使用setData 函数将数据从逻辑层发送到视图层。文件存储和网络存
储与调用则需要调用相应的API 接口来实现,如wx.request 接口可以进行http 网络请求,通过定义请求的url、请求参数、请求方法以json 配置,将请求结果分为success 和fail 两
种方式处理。除此之外,项目根目录下的三个app.wxss、app.js、app.json 文件是全局性的系统文件,负责小程序项目的全局公共样式、小程序公共逻辑和小程序公共配置的实现。
2 支付技术
支付主要分为主要分2 大类,普通模式和服务商模式。其中最常规的普通模式,适用于有自己开发团队或外包开发商的直连商户收款。开发者申请自己的appid 和
mch_id,两者需具备绑定关系,以此来使用支付提供的开放接口,对用户提供服务。本文主要介绍的是最常规的普通模式。
申请支付的必须是已经被认证的非个人小程序号,并且在支付模块中已申请支付功能。申请支付成功的平台会收到用于支付的商户号,商户平台用的密码等重要信息。除此之外,小程序的APPId、APPSecret 也是用于开发支付流程中的重要参数。小程序的前端是使用提供的框架开发,后端使用的是开发者自己部署的服务器。
支付有多种支付方式,包括刷卡支付,支付,扫码支付,APP 支付等,其中小程序的支付是在里调起的,属于支付的范畴。在小程序支付的代码开发过程中中主要调用了一个支付功能的SDK,主要包括WxPay.Api.php、WxPay.Config.php、WxPay.Data.php、WxPay.Exce
ption.php、WxPay.Notify.php 五个文件,其中WxPay.Api.php 是支付SDK 的接口,WxPay.Config.php 是配置文件,WxPay.Data.php 中定义了一组在支付中需要用的基本参数对象,其余两个文件分别
是错误异常类和接受回调通知的处理类。完成小程序的支付需要将支付的SDK 嵌入到自己的支付业务代码中去。官方的API 文档中给出的小程序支付的业务流程时序图,如图2.2。
图2.2 小程序支付业务流程时序图
从上图可以看到小程序的支付流程比较复杂,主要包括以下几步:当用户下单完成发起请求支付的信息后,小程序客户端会首先调用自己的服务器,将用户的订单信息发送到服务器,比如商品id、数量等信息;当自己的服务器接收到用户的购买商品的订单信息后,会调用服务器的统一下单API,生成一个预付订单,并将预付订单信息返回自己的服务器,在此过程中,统一下单API 接口需要用户的openId,如果自己的服务器中保存了用户的openId 就不需要再获取用户的openId,否则需要在第一步中携带code 换取用户的openId;在自己的服务器中需要对从服务器中返回的预付订单信息进行签名,并将预付订单参数信息和签名一起返回小程序客户端;小程序客户端在收到预付订单信息和签名后,再调用wx.requestPayment,将预付订单信息和签名一起提交到服务器;服务器会先验证这些预付订单信息和签名,如果验证通过,则会在小程序拉起支付界面(在开发
;支付者工具中会跳出一个支付二维码,开发者可以扫描这个二维码在中拉起支付)
完成后,会返回给客户端支付结果,同时将支付的结果推送到服务器中,更新订单的
状态。在返回支付结果到客户端的过
第 2 章系统相关技术研究
程中,需要开发者用自己的外网服务器与服务器通信,如果是本地的,
则无法推送通知。值得注意的是,在完成小程序支付的过程中,开发者
服务器生成了一个预支付订单信息,并携带了签名,这个机制增强了支付过
程的安全性。
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论