不报错,但是返回prepay_id是null

来源:4-6 创建支付订单

fly_烟雨行舟

2020-07-31

参数:
图片描述

打印:
图片描述

也没报错,不知为啥是null.
完整入参map的打印:
{nonce_str=vAclehuJda1MGJYYriKigsJ54ybi0hnk, out_trade_no=CX0000000120160522, openid=oNlSI5FwFNy7l6Q0JkWi4dtZ5j6M, total_fee=100, trade_type=JSAPI, body=订单备注, notify_url=https://127.0.0.1/test, spbill_create_ip=127.0.0.1}

写回答

2回答

神思者

2020-07-31

debug一下,看看返回的resultMap里面有没有数据

0
1
fly_烟雨行舟
老师,解决了已经,打印出来resultMap里面的result_code是FAIL,报了错,订单号重复,我把数据库订单号改一个新的就行了。
2020-07-31
共1条回复

fly_烟雨行舟

提问者

2020-07-31

找到问题了,把微信返回的map直接打印出来,就能看到具体的报错原因。

微信下单接口只要你请求成功就是SUCCESS,但是具体原因要根据result_code来判断,我这里打印出下单接口返回结果是说订单号重复了,我把数据库的改了下就可以了。


可以这样判断下,把下单结果失败的返回出来,方便调试。

Map<String, String> resultMap = wxPay.unifiedOrder(map);
log.debug("微信下单接口返回值: {}", resultMap);
if ("FAIL".equals(resultMap.get("result_code"))) {
   log.error("调用微信下单接口失败: err_code={}, err_code_des={}", resultMap.get("err_code"), resultMap.get("err_code_des"));
   return R.error("创建支付订单发生异常, 原因: " + resultMap.get("err_code_des"));
}
String prePayId = resultMap.get("prepay_id"); //微信生成的订单ID


0
0

Java支付全家桶 企业级各类支付手段一站式解决方案

微信/支付宝/银联/混合支付,App/PC/H5/小程序,企业级通用支付

753 学习 · 201 问题

查看课程