PAYATHON 2026

服务商账户如何为应用签约支付功能?

支付阿杰

结论

服务商账户不会因为已经取得服务商资格而自动获得支付权限。账户下的应用要调用支付接口,通常需要完成三项工作:

  1. 在开放平台中为应用添加对应的支付产品或接口能力;
  2. 由实际收款主体签约支付产品;
  3. 应用上线后配置密钥、回调地址等参数,并在调用接口时使用正确的 app_id 和收款主体身份。

具体要区分两种情况:

  • 服务商使用应用为自己收款:由服务商对应的商家主体签约支付产品,再把相关能力绑定到应用。
  • 服务商使用应用帮助其他商家收款:服务商不能直接代替商家签约。通常每个商家都要自行签约,并授权服务商应用调用接口。

下面以支付宝开放平台常见的服务商应用模式为例。各支付平台的菜单名称和准入要求可能不同,具体以目标平台控制台显示的内容为准。

为什么成为服务商后仍然不能直接支付

服务商资格和支付产品签约是两类不同的权限:

  • 服务商资格允许账户开发应用、服务商家或申请相关服务能力;
  • 支付产品签约用于确认收款主体、结算账户、费率、行业资质和风险责任;
  • 应用是调用接口的载体,不是收款主体;
  • 应用代商家调用支付接口时,还需要取得商家授权,平台才能确认服务商有权代表该商家发起交易。

因此,创建应用或通过应用审核,不代表支付接口已经可以使用。

场景一:服务商使用自己的应用收款

如果交易资金进入服务商自己的商家账户,可以按以下流程操作。

1. 确认账户主体和收款资格

先确认服务商账户同时具备商家身份,并已完成:

  • 企业或个体工商户认证;
  • 法定代表人、经营信息等资料认证;
  • 结算账户配置;
  • 所需行业资质提交;
  • 风控或合规审核。

如果服务商登录账户和实际收款商家账户不属于同一主体,需要切换到实际收款主体完成签约,不能只在服务商身份下操作。

2. 在应用中添加支付能力

进入开放平台控制台,找到目标应用。常见操作路径如下:

控制台
→ 应用管理
→ 选择目标应用
→ 产品绑定 / 能力管理 / 添加能力
→ 选择需要的支付产品

根据实际业务选择对应产品,例如:

  • 电脑网站支付;
  • 手机网站支付;
  • App 支付;
  • 当面付;
  • 小程序支付。

不必一次申请与业务无关的支付能力。不同产品对应用类型、经营类目和资质的要求可能不同。

3. 发起支付产品签约

添加能力后,如果控制台显示“未签约”“立即签约”或“申请开通”,需要进入签约页面,填写或确认以下信息:

  • 签约主体;
  • 经营类目;
  • 网站、App 或小程序信息;
  • 业务场景说明;
  • 结算账户;
  • 联系人信息;
  • 特殊行业许可证等材料。

提交后等待审核。审核通过且状态显示为“已生效”,才表示收款主体已经取得对应支付产品的权限。

4. 完成应用配置并上线

支付产品签约通过后,还要完成应用配置:

  • 设置接口签名方式;
  • 上传或配置应用公钥;
  • 保存应用私钥;
  • 配置异步通知地址;
  • 配置应用网关地址;
  • 提交应用审核并发布上线。

应用私钥只能保存在服务端,不应写入前端代码、App 安装包或代码仓库。

场景二:服务商帮助其他商家收款

如果应用属于 SaaS、代运营系统或聚合服务平台,资金实际结算给入驻商家,应采用商家签约并授权服务商应用的模式。

1. 服务商应用先申请相应能力

服务商需要在自己的第三方应用或服务商应用中添加支付能力,并完成平台要求的应用审核。

这一步确认的是应用能否提供支付服务,不能替代商家签约支付产品。

2. 商家完成支付产品签约

实际收款商家需要使用自己的商家账户完成:

  • 主体认证;
  • 支付产品签约;
  • 结算账户设置;
  • 行业资质审核。

服务商可以为商家提供签约入口或操作指引,但不能把所有商家的交易直接挂在自己的收款身份下。只有平台明确提供二级商户、分账或特约商户模式,并且服务商已经取得相应准入资格时,才能按该模式处理。

3. 商家授权服务商应用

商家完成签约后,还要通过平台授权页面,把相关接口权限授予服务商应用。

常见流程如下:

服务商生成授权链接
→ 商家登录并确认授权
→ 平台返回授权码
→ 服务商后端使用授权码换取应用授权令牌
→ 服务商保存商家授权关系
→ 代表商家调用支付接口

以支付宝开放平台的常见模式为例,服务商通常需要取得 app_auth_token。具体授权接口、参数和有效期以当前开放平台文档为准。

4. 调用支付接口时带上商家授权信息

下面的代码只展示基本结构,主要用于区分服务商应用的 app_id 和商家授权令牌,不是可以直接运行的完整 SDK 代码:

AlipayClient alipayClient = new DefaultAlipayClient(
    gatewayUrl,
    appId,
    merchantPrivateKey,
    "json",
    "UTF-8",
    alipayPublicKey,
    "RSA2"
);

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

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

request.putOtherTextParam("app_auth_token", merchantAppAuthToken);

AlipayTradePagePayResponse response = alipayClient.pageExecute(request);

调用时需要注意:

  • appId 是服务商应用的 app_id;
  • merchantAppAuthToken 对应实际收款商家的授权;
  • out_trade_no 必须在商户侧保持唯一;
  • 支付产品不同,接口名称和 product_code 也可能不同;
  • 是否需要 app_auth_token,取决于应用模式和具体接口要求。

如何判断签约是否已经完成

可以在控制台中逐项检查:

应用状态:已上线
支付能力状态:已添加
产品签约状态:已生效
商家授权状态:有效
密钥状态:配置正确
通知地址:公网可访问
调用环境:正式环境或沙箱环境匹配

如果接口返回“无权限”“产品未签约”“应用未授权”等错误,可以依次检查:

  • 当前 app_id 是否属于已经添加支付能力的应用;
  • 实际收款主体是否已经签约对应产品;
  • 商家是否已经授权该应用;
  • app_auth_token 是否属于当前商家,以及是否已经过期或被撤销;
  • 当前调用的是沙箱网关还是正式网关;
  • 应用类型是否支持所申请的支付产品。

注意事项

应用绑定不等于产品签约

在应用中添加接口,只表示申请使用这项能力。收款主体的产品签约审核通过后,支付接口才可能正常调用。

服务商不能默认代替商家签约

在服务商模式下,服务商负责技术接入,商家承担收款、结算和经营责任。除非平台提供特约商户等专门模式并批准服务商使用,否则不能绕过商家主体认证和签约。

收款主体必须保持一致

签约主体、结算账户、授权商家和接口中的收款身份应保持一致。主体不一致可能引发权限校验失败、资金结算异常或风控拦截。

正式环境与沙箱环境要分开配置

沙箱中的应用、账户、密钥和网关地址通常不能直接用于正式环境。沙箱测试通过,也不能证明正式环境中的签约已经生效。

以控制台显示的准入条件为准

支付平台可能根据应用类型、主体性质、经营类目和业务场景调整入口及审核要求。如果目标应用中没有“添加支付能力”或“立即签约”入口,可能是应用类型不匹配、主体资质不足、应用尚未上线,或者该产品要求单独申请服务商准入。遇到这种情况,应先查看控制台中的限制提示,再联系对应平台的开放平台客服核实。

备注:内容仅供参考。