PAYATHON 2026

H5支付api收到用户投诉后如何处理?

支付老李

结论

用户投诉无法通过 H5 支付下单 API 处理。“商家服务 → 风险申诉 → 用户投诉”通常用于查看投诉信息或提交风险申诉。具体投诉需要到对应支付渠道的商户平台、商家助手或服务商后台处理。

如果页面只有投诉记录,看不到“回复”“处理”或“提交凭证”按钮,通常有以下几种原因:

  • 当前账号没有处理投诉的权限;
  • 商户由支付服务商或收单机构代运营;
  • 当前登录的商户号不是被投诉交易对应的商户号;
  • 当前页面只展示投诉信息,处理入口在另一套商户后台;
  • 投诉已经关闭、撤销或超过可操作阶段。

处理流程

1. 确认支付渠道和商户号

先查看投诉详情中的商户号、交易单号、支付渠道单号和投诉时间,再与 H5 支付订单记录逐项核对。

如果商户通过服务商、聚合支付平台或第三方收单机构接入,通常需要登录服务商后台处理投诉,而不是使用支付渠道的直属商户后台。

2. 使用有权限的商户账号登录

优先使用商户管理员或超级管理员账号。登录支付渠道提供的商户平台后,可以查找以下功能:

  • 消费者投诉
  • 客诉管理
  • 投诉处理
  • 风险管理
  • 售后与纠纷

不同支付渠道及后台版本使用的菜单名称可能不同。微信支付用户可以重点查看微信支付商户平台或“微信支付商家助手”中的消费者投诉功能。通过服务商模式接入的商户,应联系服务商确认具体处理入口。

3. 打开投诉详情并核实交易

处理投诉前,至少要核对以下信息:

  • 商户订单号;
  • 支付渠道交易单号;
  • 支付金额和支付时间;
  • 商品或服务的交付状态;
  • 是否已经退款;
  • 与用户的沟通记录;
  • 物流、签收或服务履约凭证。

不要只根据用户描述直接退款,否则可能出现重复退款或处理错订单的情况。

4. 联系用户并提交处理结果

根据实际情况与用户协商退款、补发、继续履约,或者说明交易情况。双方确认处理结果后,在投诉详情页面填写说明,并按平台要求上传凭证。

处理说明要简洁,并且可以核验。例如:

已于 2026-09-13 联系用户核实。订单因未成功履约,已按原支付路径提交退款,退款单号为 XXX。相关沟通记录和退款凭证已上传。

说明中不要填写银行卡号、身份证号、完整手机号等敏感信息。

5. 持续检查投诉状态

提交处理结果后,投诉不一定会立即关闭。还要留意平台的审核结果、用户是否继续反馈,以及平台是否要求补充材料。

如果页面一直没有处理按钮,应记录投诉编号和商户号,联系支付渠道客服或接入服务商,确认负责处理该投诉的主体。

代码侧需要做什么

投诉通常不能通过 H5 支付下单接口处理,但业务系统应支持根据投诉中的交易单号快速定位订单,并检查退款状态。

下面是一个简化的订单核对示例:

async function inspectComplaint(complaint) {
  const order = await orderRepository.findOne({
    merchantOrderNo: complaint.outTradeNo
  });

  if (!order) {
    throw new Error(`未找到商户订单:${complaint.outTradeNo}`);
  }

  const payment = await paymentGateway.queryTransaction({
    outTradeNo: order.merchantOrderNo
  });

  const refund = await refundRepository.findByOrderId(order.id);

  return {
    orderStatus: order.status,
    paymentStatus: payment.status,
    deliveryStatus: order.deliveryStatus,
    refundStatus: refund?.status ?? "NOT_REFUNDED"
  };
}

如果支付渠道支持投诉通知回调,应先验证签名,再保存投诉编号、交易单号和处理期限。不要仅凭回调参数自动退款。

app.post("/payment/complaint/notify", async (req, res) => {
  const verified = verifyPaymentSignature(req.headers, req.body);

  if (!verified) {
    return res.status(401).send("invalid signature");
  }

  await complaintRepository.upsert({
    complaintId: req.body.complaint_id,
    outTradeNo: req.body.out_trade_no,
    status: req.body.status,
    rawPayload: req.body
  });

  return res.status(200).send("success");
});

字段名称、验签方式和响应格式必须以实际支付渠道的接口文档为准,不能直接把上述示例当作生产接口协议使用。

注意事项

  • H5 支付 API 用于创建支付交易,不是投诉处理接口。
  • 退款前必须查询原订单和已有退款记录,防止重复退款。
  • 应在平台显示的期限内处理投诉,避免影响商户的支付权限或风险评级。
  • 处理凭证必须真实、完整,同时隐藏用户隐私信息。
  • 在服务商模式下,直属商户账号可能只能查看投诉,回复权限可能属于服务商。
  • 如果已经确认商户号正确,但管理员账号仍看不到处理入口,应联系支付渠道客服,并提供投诉编号、商户号和页面截图,请客服确认账号权限或实际处理主体。

备注:内容仅供参考。