另一个调用订单发货状态接口数据返回正常,排除token相关问题
private JSONObject buildShippingInfoRequest(PmsOrderDto order) {
try {
JSONObject req = new JSONObject();
// 1. order_key
JSONObject key = new JSONObject();
if (StringUtils.isNotBlank(order.getOutTraceNo())) {
key.put("order_number_type", 2);
key.put("transaction_id", order.getOutTraceNo());
} else {
log.error("缺少微信支付单号");
return null;
}
req.put("order_key", key);
// 2. logistics_type
req.put("logistics_type", Optional.ofNullable(order.getLogisticsType()).orElse(1));
req.put("delivery_mode", 1);
req.put("is_all_delivered", true);
// 3. shipping_list
JSONObject ship = new JSONObject();
ship.put("tracking_no", order.getWuliuNo());
// 公司编码转微信码
ExpressCompany ec = expressCompanyService.selectExpressCompanyByStringName(order.getWuliuCom());
if (ec == null || StringUtils.isBlank(ec.getCompanyWxcode())) {
log.error("物流公司【{}】未维护微信编码", order.getWuliuCom());
return null;
}
ship.put("company_code", ec.getCompanyWxcode());
JSONArray shippingList = new JSONArray();
shippingList.add(ship);
req.put("shipping_list", shippingList);
//4 upload_time
String uploadTime = java.time.Instant.now().toString();;
req.put("upload_time", String.valueOf(uploadTime));
JSONObject payer = new JSONObject();
payer.put("openid",order.getOpenid());
req.put("payer",payer);
log.info("【组装后发货报文】{}", req.toJSONString());
return req;
} catch (Exception e) {
log.error("buildShippingInfoRequest error", e);
return null;
}
}
16:46:42.819 [http-nio-8080-exec-6] DEBUG c.r.s.m.E.selectExpressCompanyByStringName - [debug,135] - <== Total: 1
16:46:42.829 [http-nio-8080-exec-6] INFO c.r.s.d.WeChatOrderService - [buildShippingInfoRequest,187] - 【组装后发货报文】{"shipping_list":[{"tracking_no":"250815027649","company_code":"YD"}],"upload_time":"2025-10-05T08:46:42.819Z","order_key":{"transaction_id":"4200002759202510039217880210","order_number_type":2},"is_all_delivered":true,"logistics_type":1,"payer":{"openid":"oKSxX7GhvkU6sXtZLDHGk1hywmqg"},"delivery_mode":1}
16:46:42.829 [http-nio-8080-exec-6] INFO c.r.s.d.WeChatOrderService - [callWeChatAPI,204] - 请求URL: https://api.weixin.qq.com/wxa/sec/order/upload_shipping_info?access_token=96_GhXDF2gTitw4V-odT5J_iGqkYu59phkeNSH2omfyOvkpy_IcQrY62-H6idu6gljr3FFoar3E63Vb_-wXbcbuaTa_f9v2BpHbCMjQKXFk-rkAQrHI0eQnk5YXyrkJECdADAZUS
16:46:42.829 [http-nio-8080-exec-6] INFO c.r.s.d.WeChatOrderService - [callWeChatAPI,205] - 请求体: {"shipping_list":[{"tracking_no":"250815027649","company_code":"YD"}],"upload_time":"2025-10-05T08:46:42.819Z","order_key":{"transaction_id":"4200002759202510039217880210","order_number_type":2},"is_all_delivered":true,"logistics_type":1,"payer":{"openid":"oKSxX7GhvkU6sXtZLDHGk1hywmqg"},"delivery_mode":1}
16:46:43.144 [http-nio-8080-exec-6] INFO c.r.s.d.WeChatOrderService - [callWeChatAPI,213] - 响应状态码: 200 OK
16:46:43.144 [http-nio-8080-exec-6] INFO c.r.s.d.WeChatOrderService - [callWeChatAPI,214] - 微信接口响应: {"errcode":47001,"errmsg":"data format error rid: 68e23072-68fe31d7-176e6da1"}
已经解决,不用回复,shipping_list数据组装有问题