收藏
回答

对接微信发货信息录入接口?

另一个调用订单发货状态接口数据返回正常,排除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"}


回答关注问题邀请回答
收藏

1 个回答

  • 芦苇(罗中涛)
    芦苇(罗中涛)
    1天前

    已经解决,不用回复,shipping_list数据组装有问题


    1天前
    有用
    回复
登录 后发表内容