文档:
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=7_7
一.一般要开发的两个接口大蚂
1.统一下单
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_1
2.申请退款
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_4
3.签名规则
https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=4_3
二.小程序支付时序图
关键就是wx.requestPayment(object)
2.ps商户系统和微信支付系统主要交互:
1、小程序内调用登录接口,获取到用户的openid,api参见公共api【 小程序登录API 】
2、商户server调用支付统一下单,api参见公液颂共api【 统一下单API 】
3、商户server调用再次签名,api参见公共api【 再次签名 】
4、商户server接收支付通滚埋埋知,api参见公共api【 支付结果通知API 】
5、商户server查询支付结果,api参见公共api【 查询订单API 】
三.微信小程序支付实现步骤
1.获取登录凭证code 并传给后端服务器
2.后端服务器请求微信服务器获取openid和session_key,并将openid返回给小程序
3.小程序客服端发起支付请求给后端服务器 (带上openid参数)
4.后端服务器接收到openId后,调用微信支付统一下单接口(后端调用的,用来给小程序获取支付参数)
5.拿到后端服务器返回的5个参数后,调用最终支付接口wx.requestPayment
6.微信服务器进行支付成功后,通知后端服务器。
无论是前端开发,还是后端开发,时间长了,你总会能总结出它的一裂态些规律的,对于前端开发主要就两条,页面展现,逻辑处理。如果是全流程开发的话,那就是,如何创建项目,页面如何实现,数据获取和逻辑处理如何实现,如何打包上线。移动端或者肆慎源前端,基本开发流程就这个四个步骤。所以在在前端方面去学习新一门开发技术,只要你解决了这四个问题,那一切就OK了,下面我就讲一下,我在学习微信小程序开发,如何用这四步法快速上手开发的
学习一门新技术先看下它的开发文档 小程序介绍
然后呢就是开始一些准备的步骤,微信公众平台提供我们开发管理的功能 微信工作平台
账号注册
小程序信息配置
请看 小程序开发步骤
小程序项目的创建
到此第一个问题我们就算完成了,接下来解决小程序界面如何搭建。
然后最重要的,微信提供自己的开发者工具,不需要用chrome什么调试, 微信开发者工具 提供wxapi的调用测试能力,这些在chrome里面是测试不了的
框架的视图层由 WXML 与 WXSS 编写,由组件来进行展示。
将逻辑层的数据反应成视图,同时将视图层的事件发送给逻辑层。
WXML(WeiXin Markup language) 用于描述页面的结构。
WXS(WeiXin Script) 是小程序的一套脚本语言,结合 WXML,可以构建出页面的结构。
WXSS(WeiXin Style Sheet) 用于描述页面的样式。
小程序的页面是由wxml 和wxss这两个文件来实现的,wxml结构如何写请参考 微信小程序组件
wxss是负责样式控制的,基本类似于css,支持flex布局,所以要想上手构建微信小程序的界面,最好要熟悉html ,css.
还有最重要的就是生命周期了
//index.js
Page({
data: {
text: "This is page data."
},
onLoad: function(options) {
// 页面创建时执行
},
onShow: function() {
// 页面出现在前台时执行
},
onReady: function() {
// 页面首次渲染完毕时执行
},
onHide: function() {
// 页面从前台变为后台时执行
},
onUnload: function() {
// 页面销毁时执行
},
onPullDownRefresh: function() {
// 触发下拉刷新时执行
},
onReachBottom: function() {
// 页面触底时执行
},
onShareAppMessage: function () {
// 页面被用户分享时执行
},
onPageScroll: function() {
// 页面滚动时执行
},
onResize: function() {
// 页面尺寸变化时执行
孝脊 },
onTabItemTap(item) {
// tab 点击时执行
console.log(item.index)
console.log(item.pagePath)
console.log(item.text)
},
// 事件响应函数
viewTap: function() {
this.setData({
text: 'Set some data for updating view.'
}, function() {
// this is setData callback
})
},
// 自由数据
customData: {
hi: 'MINA'
}
})
微信提供的界面组件很多,没必要一下子全学会,会用一两个就行,其他的遇到需要的时候现查先做,这样又节约学习时间,又能够加深理解。到此第二个问题我们解决了,下面看第三个问题,数据逻辑如何处理。
数据定义
数据展现
逻辑处理是通过js文件来 *** 作的
一个服务仅仅只有界面展示是不够的,还需要和用户做交互:响应用户的点击、获取用户的位置等等。在小程序里边,我们就通过编写 JS 脚本文件来处理用户的 *** 作。
<view>{{ msg }}</view>
<button bindtap="clickMe">点击我</button>
点击 button 按钮的时候,我们希望把界面上 msg 显示成 "Hello World",于是我们在 button 上声明一个属性: bindtap ,在 JS 文件里边声明了 clickMe 方法来响应这次点击 *** 作:
Page({
clickMe: function() {
this.setData({ msg: "Hello World" })
}
})
响应用户的 *** 作就是这么简单,更详细的事件可以参考文档 WXML - 事件 。
此外你还可以在 JS 中调用小程序提供的丰富的 API,利用这些 API 可以很方便的调起微信提供的能力,例如获取用户信息、本地存储、微信支付等。在前边的 QuickStart 例子中,在 pages/index/index.js 就调用了 wx.getUserInfo 获取微信用户的头像和昵称,最后通过 setData 把获取到的信息显示到界面上。更多 API 可以参考文档 小程序的API 。
现在几乎每个应用都需要从后端获取数据,那么小程序如何获取呢,当然是通过网路 *** 作了。我们封装了小程序的网络 *** 作
const app = getApp()
const request = (url, options) =>{
return new Promise((resolve, reject) =>{
wx.request({
url: `${app.globalData.host}${url}`,
method: options.method,
data: options.method === 'GET' ? options.data : JSON.stringify(options.data),
header: {
'Content-Type': 'application/jsoncharset=UTF-8'
// 'x-token': 'x-token' // 看自己是否需要
},
success(request) {
if (request.data.error_code === 0) {
resolve(request.data)
} else {
reject(request.data)
}
},
fail(error) {
reject(error.data)
}
})
})
}
const gets = (url, options = {}) =>{
return request(url, { method: 'GET', data: options })
}
const post = (url, options) =>{
return request(url, { method: 'POST', data: options })
}
const put = (url, options) =>{
return request(url, { method: 'PUT', data: options })
}
// 不能声明DELETE(关键字)
const remove = (url, options) =>{
return request(url, { method: 'DELETE', data: options })
}
module.exports = {
gets,
post,
put,
remove
}
如何使用请看下图
数据获取
数据展现如下图
数据展现
到此,第三个问题我们就解决的了下面看第四个问题。
小程序发布文档说明
小程序发布步骤
到此四个问题都解决了。
总结:本文内容是很简单的,借用了大部分官方文档,其实本文目的不是教你学小程序开发,而是分享一下在学习一项新事物我的方法和思路,互联网技术变化是很快的,我觉得一个人的能力,不仅仅是你技术有多好,你要明白技术是用来干什么的,技术是用来解决现实生活中的问题的,一个好的程序员,不是技术能力,而是解决问题的能力,解决问题不可能只用一种技术,这就要求你的学习能力要强,针对不同的问题,使用不同的技术,哪怕使用的技术你不熟悉,但它是解决问题最好的方法,那就要求你有快速学习并解决问题的能力。
学习一项新技术,我们要先抓住主线,把流程搞通了,以后再在工作中慢慢的熟悉和丰富对它细节的一些认知,所以学一项东西前多问自己几个问题,我学什么,我为什么学,我怎么学,等。先思考后学习,一定会让你事半功倍。
对于怎么学习微信小程序开发,我问了自己上面的四个问题,每个问题,我只需要了解大体内容,四个问题都解决了,然后整个流程也就通了,以后也就是慢慢的对每个问题内容的细节慢慢的熟悉和了解了,其实花了不到一下午的时间,我就搞出了一个简单的demo出来了,了解的内容基本已经覆盖微信小程序日常开发80%的内容了。以上就是我的一点学习心得。
最后 小程序Demo
Demo截图
首页
我的
点击我的任意条目,数据是从第三方聚合平台提供的api获取的
最后目前有很多的多端开发框架,背景大多是都是因为小程序开发的盛行
其他还有很多例如
阿里的rax
我们自己的ditto
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)