uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)

  • 前提条件

  • 上代码

  • 打包运行

  • 注意bug!!


这里我们是前后端各一个人测试,这里分享一点前端的代码知识以及我们在测试过程中遇到的bug

前提条件

首先我们要去微信开放平台申请微信开放APP的应用包名和应用签名,这个是APP上线的重点(这个都是后端干的啦 咱们前端就等着接收AppID)然后申请APP开通支付绑定商户号


上代码

微信支付比支付宝麻烦太多了 (虽然本人还没试过支付宝支付)

首先咱们要知道是怎么实现的呢

1.提交订单 的目的是获取支付订单号

2.获取订单号这样我们就下一步 去支付 当我们点击去支付时就可以获取微信支付的信息 比如appid partnered prepayid…  这个在微信开放平台都有写 大家一定要仔细去看文档 

3.检查支付通道是微信还是支付宝(这里我们默认微信支付)

4.当支付通道获取成功就可以调起微信支付了

 

 

代码如下了:这个我是简单的测试微信支付  新手友友们可以看看 

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第1张图片

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第2张图片 

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第3张图片


 

 打包运行

这个打包实在是麻烦

1.在manifest.json里面配置

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第4张图片

 这个应用标识在新建项目时就可以生成  当时这个不能修改   所以应该不是应用包名

2.发行里面运用APP云打包

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第5张图片

 这个很重要!包名是微信开放平台申请的应用包名 (第一次可能申请的包名可能不符合包名的规范  比如首字母不是小写一切问题  这个我们在后面来讲)然后选择自有证书 (这个自己看文档) 自己设置一个私钥然后生成证书  证书一定要放在本项目的根目录下面!!!不然的话证书私钥密码可能就会报错误密码  下面执行打包

打包到手机上大家要下载一个微信的自动生成签名的工具

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第6张图片

 把你打包的包名输进去(这个包名是应用包名)就会生成一个应用签名  这里我们注意了  !!!可能发现问题    这个咱们后面来讲 如果没有问题的话就可以完美get  但是!!! 一般情况下都会出现问题的 接着最重要的来了-------在测试的过程中我遇到了哪些问题呢?咱们继续说


注意bug!!!

1.会有两次应用签名 ,  什么意思呢?第一次我们打包应用包名可能不符合包名规范 ,  然后我们为了打包就修改了应用包名改成规范的包名包 ,   把这个规范的包名在微信应用签名工具那里生成。    注意了!  工具里生成的应用签名和你在微信开放平台的应用签名不一样!!! 这就要修改包名和签名了,把原来的应用签名改成生成工具里生成的应用签名  ,包名也改成你刚刚打包的那个包名  ,这里平台需要时间审核,大家仔细看微信开放平台申请的应用的应用签名和包名竟然可以手动修改,这真的是很难发现这一点。第二次打包的时候再次测试微信应用签名生成工具测试应用包名就和微信开放平台的一样了 。  总而言之就是第一次打包纯粹是为了修改格式正确的应用包名让应用签名生成工具生成真正的应用签名。不知道大家可以理解没这一点

2.上面这一点没问题之后  咱们再看当时我们等一下手机基底调试的时候报错了uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第7张图片

 支付失败  连弹出微信支付都没弹出来  这是很正常的一个错报了个-1  要是前面的代码大家都认真看了并且正确使用的话  咱们就要看后端的代码了  这里我们就看后端代码了  当时是后端接口规则没有看完整  然后就出现了这个错

(1)调起微信支付的参数partnerid是商户号  是不变的 要和APP开通支付绑定商户号一致  我们犯了这个错误 注意看细节

(2) timestamp时间戳是十位数 不是13位 以秒为单位的  这个要仔细看微信接口API规则

 

(3)当时我们还纠结了sign签名的生成方式  传统是HMAC-SHA256 和MD5  文档现在也有RSA的方式  这个当时报了错uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第8张图片

 当时后端用的是RSA的方式   后面才知道是因为一个格式的错误才造成这个错  所以RSA的签名生成方式是可以使用的

(4)调起微信支付的orderInfo是一个Object类型的喔  不要看他是一个对象就默认他是一个对象  实际上打印出来是一个String类型的 这里我们要转化类型

最后咱们成功调起微信支付了uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第9张图片

uniapp开发安卓APP测试实现微信支付(初学者都能轻松get)_第10张图片 

 好了呀宝子们  分享这篇内容的时候我刚成功调起微信支付  就把我们测试内容和一些bug的分享给大家了   这边就暂时分享安卓APP微信支付前端知识喔!有问题咱们评论区见啦

 

 

你可能感兴趣的:(前端,android,微信,vue.js)