AD:靠谱的微信小程序外包开发

admin

admin

发表于 2017-02-14 12:49:41


  微信 小程序开发过程中遇到的问题汇总

  


  

最近接了一个微信小程序的活,想象中微信小程序应该跟普通的网站开发差不多,实际上就前端来说确实差不多,但是还是遇到不少蛋疼的问题,所以这里记录一下,希望对后来人有所启示。

  服务器端方面:

  服务器端是用java写的,应用服务器是tomcat7

  问题1、微信小程序要求向我们自己服务器发送的请求是https协议并且备案过的域名,我这里客户提供的域名是备案之后的,但是https得自己搞,https的证书可以在腾讯云和沃通申请1年的免费证书。我是在腾讯云上申请的,证书下载下来之后,只有apache的和Nginx的,没有tomcat的,在网上看了下,可以用openSSL生成tomcat的证书,但是太麻烦了,所以我这里安装了一个nginx代理tomcat,然后配置nginx的证书,nginx的安装和证书的配置都是很简单的,这里就不描述了,但是出现的问题是一直在报

  证书的证书的key这个错误,反复尝试多次,还是不行,最后发现是腾讯云办法的证书有问题。。。。没办法这里就没再去自己配置证书了,而是直接在腾讯云上面购买微信小程序的解决方案,购买腾讯已经配置好SSL的服务器。

  问题2、腾讯云提供的服务器是linux的,在使用腾讯云配置好的服务器的时候,发现tomcat的个个目录都不在同一个目录下面,通过类似于连接的方式跳转过去,服务器可以通过putty登录连接,可以使用FIleZilla上传文件。在这里出现的问题是在tomcat的bin目录下面始终找不到startop.sh,也找不到其他任何与启动tomcat相关的东西。最后发现,腾讯这里吧tomcat配置成了服务,启动是以服务的方式启动的,systemcml start tomcat。(centos7以下,启动服务是 service

  start tomcat)

  问题3、上传文件的时候,报错 permission miss。看这个错误,应该是我在文件上传的目录没有写文件的权限,这里直接通过chmod 777 文件夹 授权。

  微信小程序端方面:

  小程序这边,跟做前端的工作差不多,只是js的 一些函数换成的微信这把封装之后的API。

  问题4、页面设置背景图片,height:100%,width:750rpx;之后,发现纵向不能铺满,解决方法是,在页面加载的时候,通过微信的api获取设备屏幕的高,然后被 container的高赋值。

  微信小程序支付方面:

  先说一下,腾讯关于微信文档真的写得让人眼花缭乱,不知道他们做产品文档的人怎么搞得。

  关于微信支付,我们需要做三件事情:

  1、在服务器端调用微信 统一下单接口,生成支付需要的 prepay_id;

  2、根据第1步返回的prepay_id和其他几个参数生成sign,这里返回的sign才是wx.requestPayment这个方法需要的签名。

  3、在小程序端调用微信支付接口,支付成功之后,在success里面给用户支付成功的提示;

  4、支付成功之后,会根据第一步传过去的支付成功回调地址,通知服务器端。

  有一些问题已经遗忘,后面想起再补上。

  关于微信小程序支付,有这几个问题需要注意:

  1、wx.requestPayment方法使用的paySign不是 统一下单接口返回的,而是在调用统一下单接口之后,获取到prepay_id之后,将wx.requestPayment方法调用需要的几个参数,加上

  appId和key生成的sign,这里是个坑,官方的文档上面说的是只有nonceStr、package、signType、timeStamp这4个参数参加签名,其实是appId、nonceStr、package=prepay_id=、signType、timeStamp、key这几个参数。


  

2、支付开发完成之后,在Android上面调用支付成功,但是在iphone测试,提示缺少“调用JSAPI缺少:timeStamp参数”,这是因为从后台返回的timeStamp是一个数字,但是腾讯那边需要的是字符串,需要把数字转成字符串。


  

154阅读 | 0评论
你的回应
写文章

1803