PAYATHON 2026

手机网站支付宝支付能力签约时只能填写一个域名吗?

支付阿杰

结论

签约页面中的”网站域名”通常只能填写一个主域名,不能在同一个输入框中用逗号、空格或分号拼接多个域名。

如果业务涉及多个域名,可以使用实际承载支付入口的主域名完成签约,再将其他域名的支付请求统一转到这个主域名。支付宝开放平台后台如果提供”应用网址”、“授权回调地址”或其他域名配置入口,应根据实际业务分别填写。可配置的域名数量和审核规则,以当前控制台提示为准。

推荐配置方式

假设业务使用以下域名:

m.example.com
shop.example.com
campaign.example.net

可以将:

pay.example.com

统一设为支付入口域名。各业务站点先在服务端创建内部订单,然后跳转到:

https://pay.example.com/alipay/create?order_id=202609130001

支付宝接口由该域名下的服务端调用,并生成支付页面。

统一支付入口后:

  • 签约资料中的域名与实际支付入口保持一致;
  • 支付参数、证书和签名逻辑可以集中管理;
  • 无需在多个站点重复保存应用私钥;
  • return_url、notify_url 和订单状态校验更容易统一控制。

支付请求示例

以下示例只展示关键参数。实际使用的参数名称、签名方式和 SDK 调用方法,应以当前接入的支付宝开放平台文档和 SDK 版本为准。

<?php

$orderId = $_GET['order_id'] ?? '';

if (!preg_match('/^[A-Za-z0-9_-]{1,64}$/', $orderId)) {
    http_response_code(400);
    exit('Invalid order_id');
}

// 必须从数据库读取订单,不要直接信任浏览器传入的金额。
$order = findOrderById($orderId);

if (!$order || $order['status'] !== 'UNPAID') {
    http_response_code(400);
    exit('Invalid order');
}

$requestData = [
    'out_trade_no' => $order['order_no'],
    'total_amount' => number_format($order['amount'], 2, '.', ''),
    'subject'      => $order['subject'],
    'product_code' => 'QUICK_WAP_WAY',
];

// 使用官方 SDK 调用 alipay.trade.wap.pay。
// return_url 用于用户支付完成后的页面跳转。
// notify_url 用于支付宝服务端异步通知。
$returnUrl = 'https://pay.example.com/alipay/return';
$notifyUrl = 'https://pay.example.com/alipay/notify';

如果用户完成支付后需要返回各自的业务域名,不要直接接受任意 return_url,否则可能产生开放重定向漏洞。可以预先保存受控的业务来源标识:

$allowedScenes = [
    'mobile'   => 'https://m.example.com/order/result',
    'shop'     => 'https://shop.example.com/order/result',
    'campaign' => 'https://campaign.example.net/payment/result',
];

$scene = $order['scene'];
$targetUrl = $allowedScenes[$scene] ?? $allowedScenes['mobile'];

header('Location: ' . $targetUrl . '?order_id=' . rawurlencode($order['order_no']));
exit;

多个域名必须直接发起支付时

如果无法使用统一的支付入口,可以按以下顺序处理:

  1. 查看支付宝开放平台中对应应用的产品签约和应用配置页面,确认是否有新增网站地址或域名的入口。
  2. 确认这些域名是否属于同一应用、同一签约主体和同一业务。
  3. 如果控制台只允许登记一个域名,不要在输入框中拼接多个域名。
  4. 联系支付宝开放平台客服,确认能否补充报备域名,或者不同业务是否需要创建独立应用并分别签约。
  5. 在配置方式得到明确确认之前,优先使用统一支付域名。

是否要为每个域名单独创建应用,取决于当前产品规则、应用主体和业务是否相互独立,不能只根据域名数量判断。

注意事项

  • notify_url 是服务端异步通知地址,需要保持公网可访问,并正确验证支付宝签名。
  • return_url 只用于浏览器跳转,不能作为确认支付成功的唯一依据。
  • 支付金额、商户订单号和订单状态必须从服务端可信数据源中读取。
  • 不要把支付宝应用私钥放入前端 JavaScript、H5 页面或 URL 参数。
  • 域名迁移、主体变化或业务用途明显改变后,应及时检查签约信息和应用配置是否需要更新。
  • 使用子域名、跨一级域名或临时活动域名时,不要默认它们会自动继承已填写主域名的资格。具体要求应以控制台实际配置和支付宝审核规则为准。

备注:内容仅供参考。