PAYATHON 2026

使用 H5 支付需要在支付宝后台配置业务域名吗?

支付老李

结论

支付宝 H5 支付通常不需要单独配置”业务域名”。

如果接入支付宝开放平台的手机网站支付,例如调用 alipay.trade.wap.pay 创建支付页面,商户服务端生成支付请求后,让用户跳转到支付宝收银台即可。与微信内网页支付不同,当前网站域名一般不需要加入业务域名白名单。

应用上线、能力签约或安全审核时,支付宝后台可能要求填写网站地址、经营信息等资料。这些资料用于应用审核,并不是支付接口的域名白名单。开放平台的规则可能调整,具体应以对应应用后台的提示为准。

接入步骤

1. 开通手机网站支付能力

在支付宝开放平台创建网页或移动应用,完成签约并开通手机网站支付能力。

需要准备:

  • app_id
  • 应用私钥
  • 支付宝公钥或支付宝公钥证书
  • 支付异步通知地址 notify_url
  • 支付完成后的页面跳转地址 return_url

2. 在服务端创建支付请求

服务端必须使用商户私钥为支付请求签名。不要把应用私钥保存在前端 JavaScript 中,也不要直接在前端拼装签名参数。

下面是支付宝 Java SDK 的一种常见调用方式:

AlipayClient alipayClient = new DefaultAlipayClient(
    "https://openapi.alipay.com/gateway.do",
    APP_ID,
    APP_PRIVATE_KEY,
    "json",
    "UTF-8",
    ALIPAY_PUBLIC_KEY,
    "RSA2"
);

AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();

request.setNotifyUrl("https://pay.example.com/alipay/notify");
request.setReturnUrl("https://www.example.com/payment/result");

request.setBizContent("""
{
  "out_trade_no": "ORDER_202609090001",
  "total_amount": "99.00",
  "subject": "订单支付",
  "product_code": "QUICK_WAP_WAY"
}
""");

AlipayTradeWapPayResponse response = alipayClient.pageExecute(request);

if (response.isSuccess()) {
    String paymentForm = response.getBody();
    // 将 paymentForm 返回给浏览器,由浏览器提交并跳转到支付宝收银台
} else {
    // 记录错误码和错误信息,避免只向用户显示“支付失败”
}

不同 SDK 版本的构造方法和证书模式配置可能有差异,请以项目当前使用的支付宝 SDK 接口为准。

3. 让浏览器进入支付宝收银台

服务端取得的 response.getBody() 通常是一段自动提交的 HTML 表单。可以将它直接输出给浏览器,也可以按照所用 SDK 的接入方式完成页面跳转。

不要把支付网关请求改为未经签名的前端请求。这种做法既不安全,也无法通过支付宝验签。

4. 处理异步通知

支付宝会将支付结果通知发送到 notify_url。这个地址不需要配置为前端”业务域名”,但支付宝服务器必须能够通过公网访问它。

处理通知时,至少要完成以下操作:

  1. 使用支付宝公钥或证书验证签名。
  2. 校验 app_id、out_trade_no、total_amount、seller_id 等关键字段。
  3. 确认交易状态符合业务要求。
  4. 通过幂等逻辑更新订单,避免重复通知被重复处理。
  5. 处理成功后,按照接口要求返回 success。

不能只根据 return_url 判断支付是否成功。用户可能关闭页面,网络也可能中断,跳转参数还可能被伪造。订单的最终状态应以验签后的异步通知或主动查单结果为准。

哪些情况可能涉及域名配置

以下情况与普通 H5 收银台跳转不同,可能需要配置域名:

  • 应用审核要求填写网站地址或经营网址;
  • 使用支付宝客户端内的 JSAPI、生活号、小程序等能力;
  • 使用第三方支付插件或聚合支付平台,且平台另有域名白名单;
  • 页面受到 CSP、跨域策略、WebView 跳转限制或应用内浏览器限制;
  • notify_url、return_url 使用了无法通过公网访问的内网地址;
  • 支付宝后台针对当前应用类型明确提供了域名或 URL 配置项。

如果后台确实出现”业务域名”、“安全域名”或”授权回调地址”等配置项,应先确认它对应哪项产品能力。OAuth 回调域名、JSAPI 安全域名和 H5 支付通知地址不是一回事。

注意事项

  • 生产环境建议使用稳定的 HTTPS 域名。
  • notify_url 应直接接收服务器通知,不要指向需要登录或输入验证码的页面。
  • 本地开发地址、局域网 IP 和 localhost 通常无法接收支付宝服务器发送的异步通知。
  • return_url 只用于改善用户付款后的页面体验,不能作为可靠的到账凭证。
  • 更换域名后,应一并检查通知地址、跳转地址、防火墙、反向代理和证书配置。
  • 如果手机网站支付能力尚未签约,或应用审核尚未通过,即使域名可以正常访问,支付接口也未必能够使用。

备注:内容仅供参考。