java接入微信支付
先吐槽小微信商户平台,先看图:
上图有小程序支付,再看下图。
此处应该发个图表示表示:
使用JSAPI方式调用微信支付
1、引入依赖
<dependency>
<groupId>com.github.binarywang</groupId>
<artifactId>weixin-java-pay</artifactId>
<version>3.7.0</version>
</dependency>
2、组装参数
WxPayUnifiedOrderRequest request = WxPayUnifiedOrderRequest.newBuilder()
.openid(SecurityUtils.getLoginUser().getPassword())// 用户标识.
.body("用户充值") // 商品描述
.outTradeNo(String.valueOf(recharge.getId())) // 商户订单号
.productId(Tools.fastSimpleUUID()) // 商品Id.
.spbillCreateIp("192.168.0.127") // 终端IP.
.notifyUrl("/success") // 通知地址.
.tradeType("JSAPI") // 交易类型.
.totalFee(rechargeAmount.multiply(new BigDecimal(100)).intValue()) // 订单总金额,单位为分
.build();
try {
WxPayMpOrderResult orderResult = wxService.createOrder(request);
return Resp.success("充值成功", orderResult);
} catch (WxPayException e) {
e.printStackTrace();
}
3、uniapp调用支付,创建订单
this.$request.globalRequest('/acc/recharge', 'post', param).then(res => {
console.log(JSON.stringify(res))
if(res.code === 200){
uni.requestPayment({
provider: 'wxpay',
orderInfo: '用户充值',
timeStamp: res.data.timeStamp,
nonceStr: res.data.nonceStr,
package: res.data.packageValue,
paySign: res.data.paySign,
signType: res.data.signType,
success: (res) => {
console.log("success: requestPayment" + JSON.stringify(res))
},
fail: (res) => {
console.log("fail: requestPayment" + JSON.stringify(res))
}
})
} else {
uni.showToast({
title: '订单创建失败',
icon: 'none'
})
}
});
4、支付