支付宝扫码调用第三方H5支付提示“您即将离开支付宝”如何解决?
结论
这个提示通常不是支付接口异常,而是用户从支付宝页面跳转到第三方 H5 域名时,支付宝显示的安全提醒。
先在支付宝开放平台中,找到实际承载页面的应用,配置并校验 H5 安全域名。同时确认扫码地址、支付页面和回跳地址均使用已配置的 HTTPS 域名。
需要注意的是,安全域名用于声明可信页面并获得相关能力授权,但不能保证消除”您即将离开支付宝”提示。如果页面确实属于外部网站,支付宝仍可能根据入口、跳转链路和风控策略显示提醒,前端代码无法强制关闭。
配置方法
登录支付宝开放平台,找到实际承载 H5 支付页面的应用,在开发设置或安全设置中查找类似配置项:
- H5 域名
- 安全域名
- JSAPI 安全域名
- 网页应用域名
应用类型和开放平台控制台版本不同,菜单名称可能略有差异。填写时通常只需提交域名,不要包含协议、路径或查询参数。例如页面地址是:
https://pay.example.com/alipay/order?id=123
安全域名应填写:
pay.example.com
不要填写:
https://pay.example.com/alipay/order
如果页面还会跳转到其他子域名,例如:
https://m.example.com/payment/result
则应根据控制台规则分别配置:
pay.example.com
m.example.com
部分配置会要求验证域名所有权,比如下载验证文件并将其放在网站根目录。请按照控制台提供的文件名和内容原样部署,并确认支付宝可以通过 HTTPS 直接访问验证地址。
检查完整跳转链路
只配置最终支付页面的域名可能还不够,需要检查支付宝扫码后的每一次跳转。例如:
支付宝扫码
→ https://go.example.com/alipay
→ https://pay.example.com/order
→ 支付宝收银台
→ https://www.example.com/payment/result
这个链路中的 go.example.com、pay.example.com 和 www.example.com 都可能影响安全校验。尽量减少中间的 301、302 跳转,并让扫码地址直接进入已配置的 HTTPS 域名。
也可以在服务端将回跳地址固定为已配置的域名。例如生成支付请求时:
AlipayTradeWapPayRequest request = new AlipayTradeWapPayRequest();
request.setReturnUrl(
"https://pay.example.com/alipay/return"
);
request.setNotifyUrl(
"https://api.example.com/alipay/notify"
);
request.setBizContent("{" +
"\"out_trade_no\":\"ORDER_202609090001\"," +
"\"total_amount\":\"0.01\"," +
"\"subject\":\"订单支付\"," +
"\"product_code\":\"QUICK_WAP_WAY\"" +
"}");
其中:
return_url是用户完成支付后,浏览器跳转到的地址。notify_url是支付宝服务器发送异步通知的地址。- 两者用途不同,不能依赖
return_url判断支付是否成功。 - 如果控制台分别要求配置回跳域名和接口域名,需要逐项完成配置。
第三方应用场景
如果通过支付宝第三方应用代商户调用支付能力,还要确认配置对象是否正确:
- 第三方应用代商户调用接口时,应确认该应用已获得相应的产品权限和商户授权。
- 如果 H5 页面属于服务商,应在服务商应用的安全配置中登记域名。
- 如果 H5 页面属于被授权商户,还要检查该域名是否需要登记在商户自己的应用或产品配置中。
- 接口调用使用的
app_id、应用类型、授权令牌和安全域名配置必须属于同一套业务链路。不能在 A 应用中配置域名,却由 B 应用打开页面。 - 如果扫码入口是普通网址二维码,而非支付宝认可的应用内能力入口,即使支付接口由第三方应用发起,也可能继续显示离开支付宝的提醒。
无法通过前端关闭提示
不要尝试用 JavaScript 模拟点击、修改 User-Agent 或反复重定向来绕过提示。下面的代码只能改变跳转目标,无法控制支付宝客户端是否显示安全提醒:
window.location.href = "https://pay.example.com/alipay/order";
“您即将离开支付宝”是支付宝客户端提供的安全界面,是否显示由客户端和风控策略决定,第三方页面没有关闭该提示的 API。
注意事项
- 所有页面都建议使用有效的 HTTPS 证书,并确保其证书链完整。
- 域名必须已备案且可以正常访问。是否强制备案,应以应用所属产品及控制台当前要求为准。
- 不要使用 IP 地址、临时域名、短链接或频繁变化的动态域名作为扫码入口。
- 扫码后应避免先经过广告统计、短链还原或跨域跳转服务。
- 安全域名配置提交后,可能需要审核,也可能要等待一段时间才能生效,具体以控制台状态为准。
- 如果域名已经通过验证,完整跳转链路也全部使用该域名,但提示仍然存在,应向支付宝开放平台技术支持提交应用
app_id、扫码入口、完整跳转链路和复现截图,请其确认该入口是否属于客户端固定风险提示场景。
处理时应先补全安全域名配置,并清理跨域跳转。如果完成配置后仍有提示,业务代码无法将其消除,需要由支付宝确认当前应用类型和扫码入口是否允许免除该提示。
备注:内容仅供参考。
