后台配置
wechat:
pay:
#秘钥
key: #此处为商户平台配置的api秘钥 我用的apiv2接口 推荐v2 v3使用一样的秘钥
#公众号 Appid
subscriptionAppId: xxxx
#公众号 商户id
subscriptionMchId: xxxxx
# 证书地址
certPath: /cert/apiclient_cert.p12 #在商户平台下载的证书复制到resourcesd的cert目录下
spbillCreateIp: #正常ip即可
callBack: #这两个地址需要在微信公众号后台添加白名单和配置
notifyUrl: #通知地址
returnUrl: #回调地址
/**
*自定义预支付方法 用于传给前端需要参数唤起微信支付
*/
@ApiOperation("支付接口")
@PostMapping("payMoney")
@RepeatSubmit(interval = 1000, message = "请求过于频繁")
public AjaxResult payMoney(@RequestBody ReqPayVO reqPayVO) {
// 整理返回值map
Map<String, Object> map = new HashMap<>(2);
Map<String, Object> createAAssessTestOrderMap = businessPayService.createOrder(reqPayVO);
map.put("orderId", createAAssessTestOrderMap.get("orderId"));
map.put("wechatJsApiResult", createAAssessTestOrderMap.get("wechatJsApiResult"));
return AjaxResult.success(map);
}
前台代码
前端只需要接收参数发请求即可。
//继续支付
payAgain() {
console.log(this);
const data = this._data.result;
const params = {
openId: data.openId,
orderId: data.orderNum,
payMoney: data.cost,
body: data.body,
type: data.type
}
payAgain(params).then(({data}) => {
uni.hideLoading();
console.log(params);
uni.hideLoading();
if (data.code == 200) {
console.log(data);
WeixinJSBridge.invoke(
'getBrandWCPayRequest', {
// 公众号ID,由商户传入
"appId": data.appId,
// 时间戳,自1970年以来的秒数
"timeStamp": data.timestamp,
// 随机串
"nonceStr":data.noncestr,
"package":data.pack,
// 微信签名方式
"signType":"MD5",
// 微信签名
"paySign":data.paySign
},
function(res){
if(res.err_msg == "get_brand_wcpay_request:ok" ){
// 使用以上方式判断前端返回,微信团队郑重提示:
// res.err_msg将在用户支付成功后返回ok,但并不保证它绝对可靠。
}
});
} else {
console.log(data);
console.log(666);
}
});
},
本地测试
因为微信开发助手不能唤起微信支付,只好找其他测试方法,最后找到一个思路。
参考地址:https://blog.csdn.net/w263756314/article/details/110014307
1.先穿透本地后台服务的生成域名
2.自定义支付测试代码方法
3.用手机微信打开测试地址,完成测试
(把测试地址发到随便一个聊天框,点开就行)
真机调试(跟测试微信支付没啥关系,可不看,了解即可)
-
下载tbs studio工具,网址;https://x5.tencent.com/tbs/guide/debug/download.html
(ps:我第一次下载点了好几次下载成功)
-
设置手机调试参数 可参考:https://blog.csdn.net/yishengyouni95/article/details/80719281
-
微信降级8.0.21版本,降级前需要删除新版
微信更新8.0.22版本后原来的debugmm.qq.com/?forcex5=true打开显示不支持切换x5内核,所以需要回退微信版本 可参考:https://www.bilibili.com/read/cv16749069
(直接点击线上安装内核就行 重启微信)
4.按照指示点击调试
(将要调试的公众号置于手机前端:就是打开公众号之后别动了)
也可以在谷歌浏览器输入:chrome://inspect/#devices
(tbs studio需要一直打开 谷歌流览器依赖这个工具)
点击inspect,第一次需要代理,
5.打开科学的梯子
打开谷歌扩展程序,搜索SwitchyOmega 我选择的第一个 感觉随便一个都可以
(顺便下了几个视频网站免vip的插件)
之后点击inspect,出现跟手机一模一样的界面,开始调试