PAYATHON 2026

支付接口的store_id是否支持自定义并可在订单查询中返回

支付阿杰

结论

商户通常可以传入 store_id,用来标识订单所属的门店。支付订单创建成功后,通过支付宝交易查询接口 alipay.trade.query 查询该订单,响应中的 store_id 通常会返回支付请求里填写的门店编号。

需要注意的是,store_id 的业务含义是“商户门店编号”,不适合用作通用自定义参数。接口是否支持该字段、字段的格式限制,以及查询时是否返回,都应以当前使用的支付接口和产品版本文档为准。

正确使用方式

调用支付接口时,在业务参数中传入商户自己的门店编号:

{
  "out_trade_no": "ORDER_202609090001",
  "total_amount": "99.00",
  "subject": "门店商品订单",
  "store_id": "STORE_SH_001"
}

支付请求成功后,可以使用支付宝交易号 trade_no 或商户订单号 out_trade_no 调用 alipay.trade.query:

{
  "out_trade_no": "ORDER_202609090001"
}

如果支付接口已经接收并保存该字段,查询响应中会出现类似内容:

{
  "code": "10000",
  "msg": "Success",
  "trade_no": "2026090922001412345678901234",
  "out_trade_no": "ORDER_202609090001",
  "trade_status": "TRADE_SUCCESS",
  "total_amount": "99.00",
  "store_id": "STORE_SH_001"
}

这段响应只用于说明字段之间的关系,并非真实交易结果。

Java SDK 示例

创建支付订单时设置 store_id:

AlipayTradePayRequest request = new AlipayTradePayRequest();

AlipayTradePayModel model = new AlipayTradePayModel();
model.setOutTradeNo("ORDER_202609090001");
model.setTotalAmount("99.00");
model.setSubject("门店商品订单");
model.setStoreId("STORE_SH_001");

request.setBizModel(model);

AlipayTradePayResponse response = alipayClient.execute(request);

随后查询订单:

AlipayTradeQueryRequest queryRequest = new AlipayTradeQueryRequest();

AlipayTradeQueryModel queryModel = new AlipayTradeQueryModel();
queryModel.setOutTradeNo("ORDER_202609090001");

queryRequest.setBizModel(queryModel);

AlipayTradeQueryResponse queryResponse =
        alipayClient.execute(queryRequest);

if (queryResponse.isSuccess()) {
    String storeId = queryResponse.getStoreId();
    System.out.println("store_id: " + storeId);
}

不同版本的 SDK 可能使用不同的模型类或字段访问方法,请以项目实际引入的支付宝 SDK 为准。

查询不到 store_id 时如何排查

如果订单查询结果中没有 store_id,可以按以下顺序检查:

  1. 确认 store_id 位于支付接口的业务参数中,没有被放进公共请求参数或自定义 HTTP 参数。
  2. 查看支付接口的返回结果,确认请求没有因字段格式或产品能力限制而被拒绝。
  3. 确认查询的是同一笔订单,避免混用 trade_no 和 out_trade_no。
  4. 查看所用支付产品及对应接口的文档,确认其中同时定义了请求字段 store_id 和查询响应字段 store_id。
  5. 如果订单由服务商、第三方收单平台或其他中间系统创建,确认该系统没有过滤这个字段。
  6. 不要只依靠支付宝的查询结果保存业务关系。商户系统应在创建订单时同步保存 store_id 与 out_trade_no 的对应关系。

注意事项

store_id 应填写稳定、唯一且可追溯的商户门店编号,不建议在其中写入备注、JSON、用户信息或其他任意业务数据。如果需要传递通用业务标识,应优先使用具体支付接口提供的扩展字段,或将相关信息直接保存在商户自己的订单系统中。

“查询对账单下载地址接口”用于获取账单文件的下载地址,不能代替 alipay.trade.query 查询单笔订单,也不能用来判断订单查询接口会返回哪些字段。要确认 store_id 能否传入及查询时是否返回,需要分别查看实际支付接口的请求参数说明和 alipay.trade.query 的响应参数说明。

备注:内容仅供参考。