zzxzzg 2025-06-28 18:26 采纳率: 0%
浏览 15

美团联盟订单列表为空

#接入美团联盟,使用美团联通提供的demo代码。跳转连接和商品列表接口能够正常调用。但是订单列表总是返回空列表,后台能够看到订单。并且订单推送也没有被调用。

img

private Response postJsonString(String path, String body, Map<String, String> customersHeaders) throws Exception {
        Map<String, String> headers = new HashMap<String, String>();
        // (必填)根据期望的Response内容类型设置
        headers.put(HttpHeader.HTTP_HEADER_ACCEPT, "application/json");
        // (可选)Body MD5,服务端会校验Body内容是否被篡改
        headers.put(HttpHeader.HTTP_HEADER_CONTENT_MD5, MessageDigestUtil.base64AndMD5(body));
        // (POST请求必选)请求Body内容格式
        headers.put(HttpHeader.HTTP_HEADER_CONTENT_TYPE, ContentType.CONTENT_TYPE_JSON);
        headers.put("Media-Request-Id", ""+System.currentTimeMillis());

        // 其他接口协议定义的请求头
        // 自定义参与签名Header前缀(可选,默认只有"S-Ca-"开头的参与到Header签名)
        List<String> customHeadersToSignPrefix = new ArrayList<String>();
        // 必须放入的签名认证请求头S-Ca-App和S-Ca-Timestamp,则需要放入"S-Ca-Signature-Headers"请求头中!!!,必须放入
        customHeadersToSignPrefix.add("S-Ca-App");
        customHeadersToSignPrefix.add("S-Ca-Timestamp");
        // 其他接口协议定义的验签请求头,具体参见接口;或者媒体自己增加的验签请求头,保证数据安全,对应在headers里面必须有值
        customHeadersToSignPrefix.add("Cps-Request-Id");
        // 如果需要加入签名认证,则需要放入"S-Ca-Signature-Headers"请求头中
        if (MapUtils.isNotEmpty(customersHeaders)) {
            headers.putAll(customersHeaders);
            // 如果需要加入签名认证,则需要放入"S-Ca-Signature-Headers"请求头中
            customHeadersToSignPrefix.addAll(customersHeaders.keySet());
        }

        Request request = new Request(Method.POST_STRING, HttpSchema.HTTPS + HOST, path, appKey, appSecret,
            Constants.DEFAULT_TIMEOUT);
        request.setHeaders(headers);
        request.setSignHeaderPrefixList(customHeadersToSignPrefix);

        // 请求的body
        System.out.println(body);
        request.setStringBody(body);

        // 调用服务端
        return Client.execute(request);
    }

运行结果

{"endTime":1751122716,"limit":100,"page":1,"queryTimeType":1,"searchType":2,"startTime":1748413760}
{"code":0,"data":{"dataList":[],"scrollId":"","skuCount":0},"message":"成功","success":true}

  • 写回答

5条回答 默认 最新

  • 阿里嘎多学长 2025-06-28 18:26
    关注

    阿里嘎多学长整理AIGC生成,因移动端显示问题导致当前答案未能完全显示,请使用PC端查看更加详细的解答过程

    美团联盟订单列表为空

    你使用美团联盟的demo代码,跳转连接和商品列表接口能够正常调用,但是订单列表总是返回空列表,后台能够看到订单,且订单推送也没有被调用。

    可能的解决方案:

    1. 检查订单列表接口的参数是否正确,是否缺少必要的参数。
    2. 检查订单列表接口的请求头是否正确,是否缺少必要的头信息。
    3. 检查订单列表接口的返回结果是否正确,是否返回了正确的数据。
    4. 检查后台是否正确地处理订单推送,是否存在任何错误或配置问题。
    5. 检查美团联盟的文档和demo代码是否正确,是否存在任何错误或不一致。

    核心代码:

    // 订单列表接口
    Response response = pos.get("/mtop/order/list", params);
    
    // 检查返回结果
    if (response.getStatus() == 200) {
        JSONObject jsonObject = JSONObject.parseObject(response.getBody());
        List<Order> orders = jsonObject.getJSONArray("orders").toJavaList(Order.class);
        // 处理订单列表
    } else {
        // 处理错误
    }
    

    注意:上述代码仅供参考,具体实现可能需要根据你的项目和需求进行修改。

    评论

报告相同问题?

问题事件

  • 创建了问题 6月28日