PAYATHON 2026

支付宝授权登录接入及企业子账号管理咨询

支付阿杰

结论

翼支付企业账号和支付宝账号分属不同的平台体系。翼支付企业账号下开通的子账号,不能用于管理支付宝授权登录。

公司需要先用企业主体注册或认证支付宝开放平台账号,创建移动应用,并申请支付宝授权登录能力。主账号完成主体认证后,管理员可以添加运营人员作为子账号或操作员,并按照最小权限原则,授予应用管理、开发配置查看等必要权限。签约、资金、结算和敏感信息相关权限,建议仍由财务人员或企业管理员保管。

为什么不能直接使用翼支付子账号

翼支付和支付宝是两个独立的支付及开放平台,双方的账号、应用、接口权限和密钥体系并不通用。

现有的翼支付企业账号只能管理翼支付业务,不能用于:

  • 登录支付宝开放平台;
  • 创建支付宝移动应用;
  • 申请支付宝会员授权能力;
  • 配置支付宝应用密钥;
  • 管理支付宝接口签约和应用上线。

因此,下一步应先确认公司是否已有同一企业主体认证的支付宝开放平台账号,以免重复注册。

推荐的账号和权限分工

可以按照以下方式分配账号和权限:

  • 企业主账号:由财务、法务或指定管理员保管;
  • 开发操作员:负责创建应用、填写接口配置和联调;
  • 运营操作员:负责维护应用资料、提交上线申请和日常运营;
  • 财务人员:负责签约、账务、结算及资金相关操作;
  • 密钥管理员:负责生成和保管应用私钥。

企业主账号不要多人共用,也不要通过聊天工具传递主账号密码、应用私钥或证书文件。

开通和配置步骤

1. 确认企业支付宝主体

先请财务人员或企业管理员确认以下信息:

  1. 公司是否已有支付宝企业账号;
  2. 是否已在支付宝开放平台完成企业主体认证;
  3. 是否创建过对应的移动应用;
  4. 当前账号的管理员是谁。

如果公司目前只有翼支付企业账号,就需要另行注册并认证支付宝企业账号。认证材料和操作入口可能随开放平台调整,具体以当时的页面提示为准。

2. 添加子账号或操作员

支付宝企业主账号管理员登录开放平台或企业账号管理页面后,可以在成员、操作员或账号权限管理入口添加开发人员。

一般需要填写或绑定操作人员的支付宝账号,再分配应用管理、开发配置等权限。不同账号类型和开放平台页面使用的菜单名称可能不完全相同。如果页面中没有“子账号”入口,可以查找“操作员”“成员管理”或“账号权限”等功能。

建议只授予工作所需的权限:

  • 查看和管理指定应用;
  • 配置应用网关、回调地址等开发信息;
  • 提交应用审核或上线申请;
  • 查看接口调用所需的非资金类配置。

如果工作不需要,请勿授予以下权限:

  • 资金操作权限;
  • 结算账户修改权限;
  • 企业主体信息修改权限;
  • 全部应用管理权限;
  • 操作员继续授权他人的权限。

3. 创建移动应用

使用企业主体在支付宝开放平台创建移动应用,并填写以下资料:

  • 应用名称;
  • Android 包名及签名信息;
  • iOS Bundle ID;
  • 应用图标和用途说明;
  • 隐私政策地址;
  • 授权回调地址;
  • 平台要求的其他资质材料。

创建完成后,平台会分配 app_id。取得 app_id 并不表示应用已经可以使用授权登录。还需要确认对应能力是否已经申请、签约并通过审核。

4. 配置应用密钥

支付宝开放平台通常使用非对称密钥完成请求签名和验签。技术团队应在受控环境中生成应用私钥,并将其保存在服务端的密钥管理系统中。

配置时需要注意:

  • 应用私钥不能写入移动端安装包;
  • 应用私钥不能提交到 Git 仓库;
  • 不要通过邮件或群聊明文发送私钥;
  • 支付宝公钥和应用公钥不是同一个概念;
  • 使用证书模式时,还需要正确配置对应证书。

前端或移动端只负责拉起授权页面或支付宝客户端。授权码交换和用户信息查询应由公司服务端完成。

5. 完成授权登录流程

常见的授权登录流程如下:

  1. 公司 APP 请求业务服务端创建授权参数;
  2. APP 拉起支付宝授权页面或客户端;
  3. 用户确认授权;
  4. 支付宝返回一次性 auth_code;
  5. APP 将 auth_code 发送给公司服务端;
  6. 服务端调用支付宝接口交换访问令牌;
  7. 服务端根据授权结果取得支付宝用户标识;
  8. 公司系统完成账号绑定或登录。

auth_code 有有效期,而且通常只能使用一次,不能将其作为长期登录凭证保存。

授权地址示例

以下示例只用于说明 Web OAuth 的参数组织方式。移动端实际使用的接入方式、授权入口和 scope 取值,应以所申请产品的官方文档及应用后台配置为准。

https://openauth.alipay.com/oauth2/publicAppAuthorize.htm
  ?app_id=YOUR_APP_ID
  &scope=auth_user
  &redirect_uri=https%3A%2F%2Fexample.com%2Falipay%2Fcallback
  &state=RANDOM_STATE

各参数的含义如下:

  • app_id:支付宝开放平台分配的应用 ID;
  • scope:申请的授权范围;
  • redirect_uri:经过 URL 编码的回调地址;
  • state:服务端生成的一次性随机值,用于校验请求状态并降低 CSRF 风险。

如果使用原生 Android 或 iOS SDK,不能直接照搬 Web 授权地址,需要按照对应 SDK 的授权流程构造请求。

服务端交换令牌示例

下面使用 Java SDK 的常见调用形式说明处理逻辑。不同 SDK 版本的类名、构造方式或证书配置方式可能不同,实施时需要与项目实际依赖的版本核对。

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

AlipaySystemOauthTokenRequest request =
    new AlipaySystemOauthTokenRequest();

request.setGrantType("authorization_code");
request.setCode(authCode);

AlipaySystemOauthTokenResponse response =
    alipayClient.execute(request);

if (response.isSuccess()) {
    String accessToken = response.getAccessToken();
    String userId = response.getUserId();

    // 使用 userId 与公司账号建立绑定关系。
    // accessToken 应加密存储,并按照返回的有效期进行管理。
} else {
    String errorCode = response.getCode();
    String errorMessage = response.getMsg();

    // 记录必要的错误信息,但不要记录私钥、完整令牌等敏感数据。
}

在生产环境中,appId、私钥和平台公钥应从安全配置或密钥管理系统读取,不能硬编码:

String appId = System.getenv("ALIPAY_APP_ID");
String appPrivateKey = secretManager.getSecret("alipay-app-private-key");
String alipayPublicKey = secretManager.getSecret("alipay-public-key");

回调处理注意事项

服务端接收授权回调时,至少需要完成以下校验:

String expectedState = sessionStore.getState(loginSessionId);

if (expectedState == null || !expectedState.equals(callbackState)) {
    throw new SecurityException("Invalid OAuth state");
}

sessionStore.consumeState(loginSessionId);

还需要注意以下事项:

  • state 必须随机生成,与当前登录会话绑定,并且只能使用一次;
  • 授权失败、用户取消或授权码过期时,需要给出明确提示;
  • 不能只根据客户端传入的支付宝用户标识完成登录;
  • 服务端应通过可信接口返回的结果确认用户身份;
  • 账号绑定、解绑等敏感操作应增加二次验证;
  • 日志中的 auth_code、access_token 和用户信息需要脱敏处理。

容易混淆的两类授权

接入前需要确认公司申请的是哪一种授权能力。

用户授权登录

个人支付宝用户向公司应用授权后,应用可以取得用户标识或经过授权的用户信息,用于登录和账号绑定。

第三方应用授权

商户将自己的支付宝应用或业务权限授权给第三方服务商,通常用于代开发、代运营或服务商模式。

这两类授权的申请条件、接口和令牌含义都不同。公司自有 APP 使用支付宝身份为普通用户提供登录功能,通常属于用户授权登录,不能误接为商户应用授权。

最终建议

先由财务人员确认公司是否已有完成企业认证的支付宝开放平台主账号。如果已有,管理员可以将技术人员添加为操作员,并且只授予指定移动应用的开发和管理权限。如果没有,则需要先用公司主体完成支付宝账号注册及开放平台认证。

翼支付账号不需要注销或变更,可以继续用于翼支付业务,但不能作为支付宝开放平台的子账号来源。正式开发前,还需要在支付宝开放平台核对当前可申请的产品名称、授权范围、审核要求和 SDK 文档,因为这些内容可能随平台政策调整。

备注:内容仅供参考。