Skip to content

投诉详情查询 ​

更新时间:2026-09-22

接口说明 ​

根据投诉单号查询投诉的详细信息,包括投诉内容、关联订单、退款信息等。系统会自动校验投诉单是否属于当前商户。

接口信息

  • 适用对象:间连商户(OpenAPI)
  • 请求 URL: https://webapipay.com/openapi/v1/complaint/getInfo
  • 请求方法:POST
  • Content-Type: application/json
  • 鉴权方式: Sign 签名验证(公共参数 + bizContent)

ℹ️ 公共参数说明详见 通用规则 - API公共参数 部分

查询说明:

  • 使用渠道侧投诉单号 complaintNo 进行查询,而非系统内部ID
  • 系统会自动校验投诉单归属,确保只能查询本商户的投诉

请求参数(bizContent) ​

参数名类型必填参数说明
complaintNoStringY投诉单号(渠道侧投诉单号)

请求示例 ​

json
{
  "appId": "your_system_appid",
  "subMerchantNo": "your_sub_merchant_no",
  "bizContent": "{\"complaintNo\":\"4567890123456789012\"}",
  "version": "1.0",
  "nonce": "49d55020fa3adf6ed67b253c583ccdaa",
  "contentHash": "your_content_hash",
  "timestamp": "2026-09-22 10:00:00",
  "sign": "your_sign"
}

响应参数 ​

响应附加参数(data) ​

参数类型必须参数说明
idIntegerY投诉单内部ID
complaintNoStringY投诉单号(渠道侧)
paymentChannelStringY支付渠道编码
channelAvailableIdIntegerN渠道可用配置ID
channelNameStringN渠道名称
payChannelTypeStringN支付方式编码
complaintSourceStringN投诉来源
stateStringY投诉状态(ACCEPTED/PROCESSING/CLOSED/DROPPED)
complaintTimeStringN投诉时间
complaintDetailStringN投诉详情
complaintContactStringN投诉人联系方式
complaintOpenIdStringN投诉人OpenID
complaintCountIntegerN投诉次数
isResponseIntegerN是否已回复(0否/1是)
problemTypeStringN问题类型
problemDescriptionStringN问题描述
applyRefundAmountStringN申请退款金额(元)
merchantNoStringY商户号
mchIdStringN微信支付商户号
merchantNameStringN微信商户名称
merchantOrderNoStringN商户订单号
wechatOrderNoStringN微信订单号
channelOrderNoStringN渠道订单号
amountStringN订单金额(元)
isFullRefundedStringN是否全额退款(0否/1是)
processTimeStringN处理时间
processRemarkStringN处理备注
priorityStringN优先级
remarkStringN备注
createTimeArrayY创建时间
updatedAtStringN更新时间

响应示例 ​

成功响应: ​

json
{
  "code": "0000",
  "message": "获取成功",
  "timestamp": "2026-09-22T10:00:00.000Z",
  "data": {
    "id": 1,
    "complaintNo": "4567890123456789012",
    "paymentChannel": "YEEPAY",
    "channelName": "易宝支付",
    "payChannelType": "WECHAT",
    "state": "PROCESSING",
    "complaintTime": "2026-09-20 14:30:00",
    "complaintDetail": "商品与描述不符,申请退款",
    "problemType": "REFUND",
    "applyRefundAmount": "50.00",
    "merchantNo": "M20260922001",
    "merchantOrderNo": "ORD20260920001",
    "amount": "100.00",
    "createTime": "2026-09-20 14:30:00"
  }
}

失败响应: ​

json
// 投诉单号缺失
{
  "code": "4001",
  "message": "缺少投诉单号(complaintNo)",
  "timestamp": "2026-09-22T10:00:00.000Z",
  "data": {}
}

// 投诉单不存在或不属于当前商户
{
  "code": "4001",
  "message": "查询失败",
  "timestamp": "2026-09-22T10:00:00.000Z",
  "data": {}
}

代码示例 ​

Java
import java.util.HashMap;
import java.util.Map;
import com.alibaba.fastjson.JSON;

public class ComplaintInfoExample {
    public static void main(String[] args) {
        String appId = "your_app_id";
        String subMerchantNo = "your_sub_merchant_no";
        String signKey = "your_sign_key";
        String apiUrl = "https://webapipay.com/openapi/v1/complaint/getInfo";

        Map<String, String> bizContent = new HashMap<>();
        bizContent.put("complaintNo", "4567890123456789012");

        Map<String, String> requestData = new HashMap<>();
        requestData.put("appId", appId);
        requestData.put("subMerchantNo", subMerchantNo);
        requestData.put("bizContent", JSON.toJSONString(bizContent));
        requestData.put("version", "1.0");
        requestData.put("timestamp", "2026-09-22 10:00:00");

        String sign = SignUtil.generateSign(requestData, signKey);
        requestData.put("sign", sign);

        String response = HttpUtil.post(apiUrl, requestData);
        System.out.println("投诉详情:" + response);
    }
}
Python
import requests
import json

def get_complaint_info(complaint_no):
    """查询投诉详情"""
    api_url = "https://webapipay.com/openapi/v1/complaint/getInfo"

    request_data = {
        "appId": "your_app_id",
        "subMerchantNo": "your_sub_merchant_no",
        "bizContent": json.dumps({"complaintNo": complaint_no}),
        "version": "1.0",
        "timestamp": "2026-09-22 10:00:00",
    }
    request_data["sign"] = generate_sign(request_data, "your_sign_key")

    response = requests.post(api_url, json=request_data, timeout=30)
    return response.json()

result = get_complaint_info("4567890123456789012")
if result.get("code") == "0000":
    data = result["data"]
    print(f"投诉状态: {data['state']}, 退款金额: {data['applyRefundAmount']}")
PHP
<?php

$requestData = [
    'appId'          => 'your_app_id',
    'subMerchantNo'  => 'your_sub_merchant_no',
    'bizContent'     => json_encode(['complaintNo' => '4567890123456789012']),
    'version'        => '1.0',
    'timestamp'      => date('Y-m-d H:i:s'),
];
$requestData['sign'] = generateSign($requestData, 'your_sign_key');

$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, 'https://webapipay.com/openapi/v1/complaint/getInfo');
curl_setopt($ch, CURLOPT_POST, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($requestData));
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_HTTPHEADER, ['Content-Type: application/json']);
$response = json_decode(curl_exec($ch), true);
curl_close($ch);

if ($response['code'] === '0000') {
    $data = $response['data'];
    echo "投诉状态: {$data['state']}, 退款金额: {$data['applyRefundAmount']}";
}

注意事项 ​

WARNING

⚠️ 权限校验:

  • 系统会自动校验投诉单是否属于当前商户(通过 merchant_no 和 user_id 双重校验)
  • 查询非本商户的投诉单将返回查询失败

TIP

✅ 使用建议:

  • 使用渠道侧投诉单号 complaintNo 查询,而非系统内部ID
  • 投诉详情包含关联订单信息,可用于关联业务处理