刚做小程序支付,网上找了博客来看,看了很多方式实现,但多数都是上传文件估计有残缺或获取其他总是测试出问题,无奈自己研究整理一下我的小程序支付测式,话不多说,开干
首先给大家推荐一个weixin-java-tool这个开源工具包,里面封装了很多东西,用起来很方便,有空的小伙伴可以多研究研究这个
点击demo项目到
找到自己需要的demo,我这里找的是微信支付,所以继续微信支付 点击微信支付的github
之后下载源码,导入开发工具eclipse中
把demo项目启动,项目启动后发现项目中有swagger继承的api可以通过路径: localhost:8080/swagger-ui.html 查看接口文档,这里可以找到自己的所要找的接口,我这里找到的是微信支付,其他的有时间的可以去多研究研究
这些就需要自己多花时间研究了,下面就来上重点了,继承到自己项目中
1.在pom文件中加入maven依赖
版本跟自己下载的demo项目中的一致就行(我这里是3.9.0)
com.github.binarywang
weixin-java-pay
${weixin-java-pay.version}
2.把相关文件赋值到自己项目中
3.application.yml文件中添加配置
配置到此结束,下面上代码了
4.新建控制层测试接口
接口测试代码(只用写这么多,其他的都是已经封装好的直接调用就行)
@GetMapping("/createOrder")public T createOrder(HttpServletRequest req) throwsWxPayException {
JSONObject obj= newJSONObject(ServletUtil.getParamMap(req));
JSONObject item=itemVkMapper.getItemInfo(obj);
WxPayUnifiedOrderRequest WxPay= newWxPayUnifiedOrderRequest();
WxPay.setBody("项目编号:" + item.getStr("itemid") + " 项目金额:" + item.getStr("money") + " 项目类型:" + item.getStr("zab_do"));
WxPay.setOutTradeNo(IdUtil.simpleUUID());
WxPay.setTotalFee(1);
WxPay.setSpbillCreateIp("127.0.0.1");
WxPay.setNotifyUrl(Variables.NOTIFY_URL);
WxPay.setTradeType(Variables.TRADETYPE);
WxPay.setOpenid(obj.getStr("openid"));//WxPayUnifiedOrderResult res = this.wxService.unifiedOrder(WxPay);
return this.wxService.createOrder(WxPay);
}
后端测试代码到这里就结束了,来微信小程序前端对接接口
toPay: function(event) {var that = thiswx.request({//url: wx.getStorageSync('domainName') + '/api/itempay.ashx', //仅为示例,并非真实的接口地址
url: wx.getStorageSync('basePath') + '/pay/createOrder',
method:'get',
data: {
itemid: event.target.dataset.itemid,
userid: wx.getStorageSync('userId'),
type:'mp',
openid: wx.getStorageSync('openid')
},
header: {'content-type': 'application/json' //默认值
},
success:function(res) {//debugger;
var param =res.data;
wx.requestPayment(
{'timeStamp': param.timeStamp,'nonceStr': param.nonceStr,'package': param.packageValue,'signType': 'MD5','paySign': param.paySign,'success':function(result){
console.log(result);
},'fail':function(result){
console.log(result);
},'complete':function(result){
console.log(result);
}
})
}
})
},
操作到此结束,现在开始测试
项目启动准备测试 在微信开发工具中显示
转为真机调试测试结果为
ok了,其他的就自己测试测试了,言尽于此希望了能帮助到小伙伴们