有了上面的准备工作后我们就可以实际操作了。
小程序端的实现其实很简单,一个事件去出发选择上传操作。
这里我也开放我的两个图片上传的接口:
在实现服务端,我们需要使用一个新的模块multer,关于这个模块的使用,大家可以看文档就是了。代码:
后端代码其实也很简单的。理清思路就好做了。
最近在开发一个商城项目,其中有一块是评价,就像淘宝手机端的评价那样。首先看看我的页面结构。
小程序接口就暴露这一个方法。这个方法有4个参数是需要后台去获取的。
其实大部分工作都是后台的事情。
wxConfig代码:
具体实现我的后台是node.js+express4;1.添加依赖body-parser-xml,这个的使用看文档即可。2.修改app.js
3.接口实现
4.返回结果
需要调用查询接口的情况:◆当商户后台、网络、服务器等出现异常,商户系统最终未接收到支付通知;◆调用支付接口后,返回系统错误或未知交易状态情况;◆调用被扫支付API,返回USERPAYING的状态;◆调用关单或撤销接口API之前,需确认支付状态;
这个是需要证书了,
提交退款申请后,通过调用该接口查询退款状态。退款有一定延时,用零钱支付的退款20分钟内到账,银行卡支付的退款3个工作日后重新查询退款状态。
首选需要有两个星星,一个满分星星,一个空心的星星。
这是先一个for循环构建出5个星星
这里大家可能会注意到显示星星的
首先做一个包含5个星星的数组
默认是有1颗星星的。再就是处理点击事件,在处理点击事件前我们要先理清思路。比如我们点击第3颗星星时,需要显示的是3星满星,2颗空心。那么这个数组userStars就好处理了,数组的前3个元素是满心,后两个是空心。代码如下:
其实总体来做,五星好评并不难处理。理清思路,知道满心是什么,空心是什么,做一次,以后遇见其他平台上面的这种控件也就知道怎么处理了。
在上面的基本使用里面在.js文件和.wxml文件里面出现的article这个是两个文件里面是一样的。但是article是js文件里面的一个变量是可以变的,只要保证js文件和wxml文件里面变量名一致即可。
page页面是测试页面。
效果图
仔细看报错,我们会发现是wxParse.js文件里面的wxParseImgTap方法里面有Bug。没有imageUrls这个属性。
后来把wxParse插件的源码都看了一次,也修复了这个bug。其实修复这个bug不需要看看那么多,只需要看wxParse.js文件里面的部分代码即可。既然问题是找不到imageUrls这个属性,那么我们就让他找到。
打开调试看打印信息:在wxParse.js文件的wxParse方法中有一个打印:console.log(JSON.stringify(transData,'',''));。直接先看打印的结果:数据很长,我们就这么看:console.log(transData);
这里我们看见了imageUrls这个属性。
我们发现这样的三行代码:
其实在上面的问题描述中我们已经知道了是什么问题,也定位了问题。但是要解决问题,通常我们不能盯着一个点看。我们要带着问题去解决问题。既然是找不到imageUrls,我们就让他找到。1.在wxParse.js文件里面的wxParse方法如下修改:
2.在wxParseImgTap方法里面如下修改:
其实问题的核心还是误用了setData方法导致的。仔细看了一下,在wxParse.js文件里面作者4次使用了setData方法和4次使用了取值that.data。最后,有问题不要怕,细心看报错,带着问题一点一点的调试。
scroll-view:可滚动视图区域。
使用竖向滚动时,需要给一个固定高度,通过WXSS设置height。
这里就是页面结构,上下都是下拉和上拉才会显示的。中间的scroll-view才是滚动视图。
这里主要是那个type参数。
这个说白了就是根据经纬度获取所在位置的国家、省、市、区和接到等信息。其实还有正向解析,这个就是一个相反的过程了。
这里主要是应用于这里要注意。小程序端就选择浏览器,服务端使用腾讯接口就选择服务端。
主要是小程序示例部分需要详细说明。
2.页面js文件使用
首先在Page外申明两个变量:
在实例化
调用接口
这里首先调用wx.getLocation获取到经纬度之后再调用腾讯位置服务的reverseGeocoder接口即可。剩下的就是处理返回的数据显示了。
这一步和上面类似,只是在生成密匙时我们选择的应用于是选择服务端。
2.请求参数
这里其实我们只需要传递location和key参数即可。
至此小程序的获取位置介绍完毕。
这里正向传值有3种,反向传值有2种,如有遗漏欢迎补充。这里的url传值只能是正向传值,其他的本地储存和全局的app对象既可以正向传值也可以反向传值。
这里说了页面路劲可以像GET请求一样拼接参数,那么怎么获取这个参数呢这个不知道大家发现没,在每个页面的.js文件里面都默认会生成生命周期的几个方法,其中:
这个是待有参数options的。这里就需要利用它了。
这个大家看了小程序新建项目时生成的代码就知道怎么用了。
关于页面传值,其实也就是搞清楚需求的前提下,利用已经掌握的技术来实现,只是这个应用是用来页面传值。
我们一般是存储一些信息在本地,但是这个有存也有取,尽然可以存进去,我们只需要在需要的地方存取数据就行。这个还可以实现跨页面传值。
这个就是要搞清楚全局的概念和单例了。作为小程序开发,看看每次新建小程序项目时自动生成的代码就知道这个怎么用了。至于以后的浏览器端的开发就需要自己去实现了。
总的来说页面传值基本就这,两个方向,三大类。搞清楚各自的特点就很好操作了。以后做浏览器端的项目开发时就很好处理了。
选择你需要的模板。2.设置那你需要的字段
3.获取模板消息ID在完成上面两步之后,在我的模板里面就可以看见了。复制模板ID即可。
发送模板消息就好处理了。
这个就是一个处理POST请求参数的问题了。这里需要注意的是:form_id是表单提交场景下,为submit事件带上的formId;支付场景下,为本次支付的prepay_id。我的是支付成功的通知,这里一定保存整个支付流程都是在真机上面调试,一定不能是手机扫码调试工具上面的二维码支付,不然会一直报错:errcode:41028,errmsg:“invalidformidhint:。小程序端发送模板消息:
至此发送模板消息是做完了。但是这里有存在一个缺陷,如果是线上的小程序版本,需要及时修改模板消息格式就不好了。后来我做的是后台发送模板消息。这个修改就很好做了,这里不再赘述。
一定整个支付流程都是在自己的手机上面完成,一定不要去扫调试工具生成的二维码支付。