PAYATHON 2026

支付宝沙箱支付输入密码后为何提示“网络系统繁忙”?

支付老李

结论

支付宝沙箱在输入密码后提示”网络系统繁忙”,通常不代表前端网络真的繁忙。这是沙箱收银台处理多种异常时使用的通用提示。常见原因有:

  • 使用了生产环境的支付宝账号,而非沙箱买家账号;
  • 输入了登录密码,而非沙箱账号的支付密码;
  • 沙箱买家账号状态、余额或测试数据异常;
  • 网关、app_id、应用私钥和支付宝公钥并非来自同一套沙箱配置;
  • 商户订单号重复,或订单参数不符合要求;
  • 支付宝沙箱服务暂时不稳定。

如果可以正常进入收银台,下单请求大概率已经通过基础验签。此时应先检查沙箱买家账号、订单状态和环境配置。

排查步骤

1. 确认使用的是沙箱买家账号

支付时必须使用支付宝开放平台沙箱环境提供的买家账号,不能使用真实支付宝账号。

请在沙箱账号页面核对:

  • 买家登录账号;
  • 登录密码;
  • 支付密码;
  • 账户余额;
  • 账号是否仍然有效。

登录密码和支付密码不是同一个密码。收银台要求输入支付密码,不要直接填写登录密码。具体密码应以当前沙箱后台显示或设置的内容为准,不要假定它是某个固定值。

如果沙箱环境近期重置过,原来的账号、密码或订单数据可能已经失效。重新获取沙箱账号信息后再测试。

2. 检查是否混用了沙箱和生产配置

调用沙箱接口时,所有配置都必须来自沙箱环境:

网关:https://openapi.alipaydev.com/gateway.do
app_id:沙箱应用 APPID
应用私钥:与该沙箱应用公钥配套的私钥
支付宝公钥:沙箱应用页面提供的支付宝公钥

以下几种配置错误比较常见:

  • 沙箱 app_id 搭配了生产环境的支付宝公钥;
  • 使用生产网关提交沙箱账号;
  • 重新生成应用密钥后,代码仍在使用旧私钥;
  • 将”应用公钥”误当作”支付宝公钥”配置到客户端。

以 Java SDK 为例,配置结构可参考:

AlipayClient alipayClient = new DefaultAlipayClient(
    "https://openapi.alipaydev.com/gateway.do",
    "YOUR_SANDBOX_APP_ID",
    "YOUR_APP_PRIVATE_KEY",
    "json",
    "UTF-8",
    "YOUR_ALIPAY_PUBLIC_KEY",
    "RSA2"
);

不要在运行环境中直接使用示例占位符,也不要把应用私钥提交到代码仓库。

3. 每次测试使用新的商户订单号

out_trade_no 是商户订单号,在同一个商户应用中应保持唯一。重复使用已经支付、关闭或状态异常的订单号,可能导致支付失败。

AlipayTradePagePayRequest request = new AlipayTradePagePayRequest();
request.setReturnUrl("https://example.com/alipay/return");
request.setNotifyUrl("https://example.com/alipay/notify");

AlipayTradePagePayModel model = new AlipayTradePagePayModel();
model.setOutTradeNo("TEST_" + System.currentTimeMillis());
model.setTotalAmount("0.01");
model.setSubject("沙箱支付测试订单");
model.setProductCode("FAST_INSTANT_TRADE_PAY");

request.setBizModel(model);

AlipayTradePagePayResponse response = alipayClient.pageExecute(request);
if (!response.isSuccess()) {
    System.out.println("code=" + response.getCode());
    System.out.println("subCode=" + response.getSubCode());
    System.out.println("subMsg=" + response.getSubMsg());
}

还需要检查:

  • total_amount 是否为合法的金额字符串;
  • subject 是否为空;
  • product_code 是否与当前使用的支付产品匹配;
  • 参数在签名后是否又被修改或重新编码。

4. 主动查询订单真实状态

收银台显示的”网络系统繁忙”无法提供足够的信息,也不能据此认定订单已经失败。应使用同一个 out_trade_no 调用订单查询接口:

AlipayTradeQueryRequest queryRequest = new AlipayTradeQueryRequest();

AlipayTradeQueryModel queryModel = new AlipayTradeQueryModel();
queryModel.setOutTradeNo("实际提交的商户订单号");
queryRequest.setBizModel(queryModel);

AlipayTradeQueryResponse queryResponse =
    alipayClient.execute(queryRequest);

System.out.println("code=" + queryResponse.getCode());
System.out.println("subCode=" + queryResponse.getSubCode());
System.out.println("subMsg=" + queryResponse.getSubMsg());
System.out.println("tradeStatus=" + queryResponse.getTradeStatus());

应重点记录和检查:

  • code
  • sub_code
  • sub_msg
  • trade_status
  • 支付宝返回的请求标识
  • 应用服务端异常日志

如果查询结果为 TRADE_SUCCESS,说明支付已经成功。不要因为浏览器页面报错而再次创建订单或扣款。业务系统应以异步通知的验签结果和主动查询结果为准。

5. 重置测试条件

如果配置和请求参数没有发现明显问题,可以按顺序尝试:

  1. 更换新的 out_trade_no;
  2. 退出收银台,重新登录沙箱买家账号;
  3. 清理浏览器 Cookie,或改用无痕窗口;
  4. 更换另一个沙箱买家账号;
  5. 检查沙箱余额和账号状态;
  6. 等待一段时间后再次测试。

如果同一套代码此前可以正常使用,近期也没有修改配置,而且多个沙箱账号都出现相同问题,才更有可能是沙箱环境暂时异常。

如何快速判断问题位置

  • 无法生成支付页面:先检查网关、签名、密钥和请求参数。
  • 可以进入收银台,但无法登录:检查是否使用了沙箱买家账号及正确的登录密码。
  • 输入支付密码后报错:检查支付密码、买家账号状态、账户余额、订单是否重复,以及沙箱服务状态。
  • 页面报错,但订单查询成功:按成功订单处理,避免重复支付。
  • 返回了明确的 sub_code:根据该错误码检查对应参数或业务限制。

注意事项

沙箱环境只用于联调,其稳定性和数据生命周期不能与生产环境等同。不要只根据收银台的中文提示判断订单状态,也不要在支付页面报错后立即生成新订单。服务端必须保存完整的请求和响应信息,正确验证异步通知签名,并通过 alipay.trade.query 补查状态不明确的订单。

备注:内容仅供参考。