PAYATHON 2026

沙箱支付买家登录时提示“请填写支付密码”

支付阿杰

结论

这种情况通常不是商户接口参数或签名配置的问题,而是把沙箱买家账号的两种密码混用了:

  • 登录密码:用于登录沙箱买家账号。
  • 支付密码:用于在收银台确认付款。

登录后进入付款确认页面,还需要单独输入支付密码。如果页面提示“请填写支付密码”,说明系统正在校验支付密码。此时继续输入登录密码也无法通过。

处理步骤

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

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

请在沙箱账号信息中确认:

  • 买家账号
  • 登录密码
  • 支付密码

即使登录密码和支付密码看起来相似,也要按各自的用途填写。

2. 在对应页面填写正确的密码

正常的支付流程一般如下:

  1. 商户系统创建沙箱订单。
  2. 浏览器跳转到支付宝沙箱收银台。
  3. 使用沙箱买家账号和登录密码登录。
  4. 在付款确认页面输入支付密码。
  5. 支付完成后跳回 return_url,支付宝同时向 notify_url 发送异步通知。

如果点击“登录”后马上出现“请填写支付密码”,请先查看页面上是否还有支付密码输入框。有些沙箱收银台会在同一流程中展示登录和付款确认,提示文字容易让人误以为登录失败。

3. 从沙箱控制台重新确认密码

不要使用浏览器保存的旧密码,也不要用真实支付宝密码来推测沙箱密码。请以当前沙箱控制台显示的密码或重新设置后的密码为准。

如果账号或密码曾被重置,可以按以下步骤重新测试:

  1. 退出当前沙箱收银台。
  2. 清除该站点的 Cookie 和自动填充记录,或打开无痕窗口。
  3. 重新发起一笔订单。
  4. 手动输入沙箱买家账号、登录密码和支付密码。

4. 检查正式环境和沙箱环境是否混用

调用沙箱接口时,网关、应用 ID、密钥和买家账号必须来自同一套沙箱环境。以电脑网站支付为例,Java SDK 可以这样配置:

AlipayClient alipayClient = new DefaultAlipayClient(
    "https://openapi-sandbox.dl.alipaydev.com/gateway.do",
    sandboxAppId,
    merchantPrivateKey,
    "json",
    "UTF-8",
    alipayPublicKey,
    "RSA2"
);

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

request.setBizContent("""
{
  "out_trade_no": "TEST_ORDER_202609130001",
  "total_amount": "0.01",
  "subject": "沙箱支付测试",
  "product_code": "FAST_INSTANT_TRADE_PAY"
}
""");

String form = alipayClient.pageExecute(request).getBody();

沙箱网关地址请以当前支付宝开放平台文档和控制台配置为准。如果订单能够跳转到沙箱收银台,并且页面正常显示订单金额,通常说明订单创建和签名流程已基本通过。支付密码由买家收银台校验,无法通过修改商户端代码绕过。

仍然无法支付时的排查顺序

请依次检查:

  1. 使用的是沙箱买家账号,不是商家账号或真实支付宝账号。
  2. 登录框中填写的是登录密码,付款确认框中填写的是支付密码。
  3. 浏览器没有自动填入旧密码。
  4. 网关、app_id、应用私钥和支付宝公钥都来自同一个沙箱应用。
  5. 没有重复使用已经关闭、超时或状态异常的订单号。
  6. 使用无痕窗口或其他浏览器重新测试。

如果输入控制台提供的支付密码后仍反复出现相同提示,并且换用不同浏览器也能稳定复现,可以保存发生时间、沙箱应用 ID、订单号和页面截图,然后向支付宝开放平台技术支持反馈。仅凭“请填写支付密码”这一条提示,还不能判断支付宝沙箱发生了故障。

备注:内容仅供参考。