PAYATHON 2026

iOS 未使用支付功能,集成 AlipaySDK 能否通过审核?

支付老李

结论

可以提交审核,也有机会正常通过。iOS 审核通常会看 App 的实际功能、资金流向和 SDK 行为,不会只因为集成了 AlipaySDK 就直接作出判断。

如果支付宝仅用于验证提现账户是否由本人授权,App 内也没有商品购买、数字内容解锁、会员订阅等支付入口,一般不会被视为绕过 Apple In-App Purchase。不过,审核结果无法保证,最终仍取决于当时的审核规则、业务资质、页面文案和 App 的实际运行行为。

为什么可能通过

这个场景使用的是支付宝的账户授权能力,并非向商户付款:

  • 用户不会通过支付宝购买 App 内的商品或数字服务。
  • App 不会调用支付宝支付接口创建交易。
  • 授权结果只用于确认支付宝账户身份或绑定状态。
  • 提现是将用户已有余额转出,不是在引导用户到 App 外完成购买。

审核的重点不是 SDK 的名称,而是 App 是否包含支付功能、外部购买引导或隐藏的交易流程。即使 SDK 内含支付模块,只要 App 没有实际调用,通常也不等于 App 提供了支付宝支付。不过,如果可以只集成授权所需的组件,建议尽量缩小 SDK 和权限范围。

建议的实现步骤

1. 由服务端生成授权请求

不要把支付宝应用私钥写入 iOS 客户端。客户端先向业务服务端申请授权参数,由服务端完成签名,再将授权字符串返回给客户端。

iOS App
  -> 业务服务端申请授权参数
  -> 服务端生成并签名 authInfo
  -> iOS App 调用支付宝授权接口
  -> 支付宝返回授权结果
  -> iOS App 将 authCode 提交给业务服务端
  -> 服务端向支付宝核验并完成账户绑定

客户端返回的昵称、用户标识或成功状态,不能直接作为本人校验的最终依据。账户是否绑定成功,应以服务端调用支付宝开放平台接口后的核验结果为准。

2. 只调用账户授权接口

不同版本的 AlipaySDK 可能使用不同的 Swift 方法名和回调方式。下面用 Objective-C 展示典型的调用结构,具体签名请以项目所用版本的 SDK 文档和头文件为准。

#import <AlipaySDK/AlipaySDK.h>

- (void)startAlipayAuthorizationWithAuthInfo:(NSString *)authInfo {
    NSString *appScheme = @"your-app-alipay";

    [[AlipaySDK defaultService]
        auth_V2WithInfo:authInfo
        fromScheme:appScheme
        callback:^(NSDictionary *result) {
            NSString *resultStatus = result[@"resultStatus"];
            NSString *resultString = result[@"result"];

            // 不要仅凭客户端回调完成账户绑定。
            // 应提取授权结果并提交给服务端,由服务端继续核验。
            [self submitAuthorizationResult:resultString
                               resultStatus:resultStatus];
        }];
}

不要调用支付接口,例如:

// 本场景不应调用支付下单接口
// [[AlipaySDK defaultService] payOrder:orderString
//                            fromScheme:appScheme
//                              callback:...];

3. 正确处理支付宝回跳

如果当前 SDK 版本要求通过 URL Scheme 接收授权结果,需要在应用生命周期回调中将 URL 交给 SDK 处理。下面仍是示意代码,准确的方法名请以所用 SDK 版本为准。

- (BOOL)application:(UIApplication *)application
            openURL:(NSURL *)url
            options:(NSDictionary<UIApplicationOpenURLOptionsKey, id> *)options {

    if ([url.host isEqualToString:@"safepay"]) {
        [[AlipaySDK defaultService]
            processAuth_V2Result:url
            standbyCallback:^(NSDictionary *result) {
                NSString *resultStatus = result[@"resultStatus"];
                NSString *resultString = result[@"result"];

                [self submitAuthorizationResult:resultString
                                   resultStatus:resultStatus];
            }];
    }

    return YES;
}

使用 UISceneDelegate 的项目还要按照当前 SDK 接入文档处理对应的 URL 回调。如果只配置 AppDelegate,授权完成后可能无法返回 App。

4. 在审核备注中解释用途

建议在 App Store Connect 的审核备注中直接说明用途,避免审核人员仅凭 SDK 名称判断。例如:

App 集成 AlipaySDK 仅用于提现账户的实名认证授权和账户绑定校验。App 不提供支付宝购买、充值、数字内容解锁或其他支付功能,也不会调用支付宝支付下单接口。测试账号中可通过“我的 > 提现 > 绑定支付宝”进入该功能。

如果体验提现功能需要账号具备特定余额、实名状态或测试环境,还应提供:

  • 可正常登录的审核账号;
  • 完整的操作路径;
  • 体验授权流程所需的测试条件;
  • 无法真实提现时的审核说明或演示方式;
  • 授权失败或用户取消授权时的预期表现。

审核前检查

页面文案要准确

按钮可以写成“绑定支付宝”“验证支付宝账户”或“授权支付宝账户”,不要使用“支付宝支付”“立即购买”等容易引起误解的文案。

授权前应向用户说明:

  • 为什么需要支付宝授权;
  • 将获取或验证哪些账户信息;
  • 这些信息用于绑定提现账户,还是校验实名信息是否一致;
  • 用户拒绝授权后会受到什么影响;
  • 如何解除绑定或更换提现账户。

清理无关支付入口

确认正式提交的安装包中没有以下内容:

  • 隐藏的支付宝支付按钮;
  • WebView 内的商品购买页面;
  • 跳转到浏览器支付数字商品的入口;
  • 可通过远程配置开启的支付功能;
  • 测试菜单中的支付下单功能;
  • 引导用户通过外部支付购买会员、虚拟币或数字内容的文案。

即使相关界面暂时处于隐藏状态,只要代码或远程配置能在审核期间将其启用,也可能引起额外审查。

做好隐私披露

支付宝账户标识、实名校验结果和提现记录可能涉及个人信息。应根据 App 的实际采集情况,更新隐私政策和 App Store Connect 中的 App Privacy 信息。

不要为了接入 SDK 而申请无关权限。如果 SDK 或其依赖包含跟踪、广告标识符采集或设备画像行为,还需要另行评估隐私清单、Required Reason API 和 ATT 等要求。是否涉及这些要求,应根据所用 SDK 版本及其实际运行行为判断,不能只看“支付宝授权”这一用途。

服务端不能只相信客户端

客户端的授权回调可能遭到篡改或伪造。服务端至少应完成以下工作:

  • 校验授权码或访问令牌;
  • 核对支付宝应用身份;
  • 判断授权结果是否过期或已被使用;
  • 将支付宝账户与当前登录用户绑定;
  • 防止同一提现账户被异常重复绑定;
  • 保存必要的风控和审计记录;
  • 避免记录完整令牌、签名串等敏感数据。

常见被拒风险

集成 SDK 本身通常不是主要问题。以下情况更容易导致审核受阻:

  • 审核人员找不到授权入口,或无法走完整个授权流程;
  • 提现余额的来源、业务模式或资金关系没有解释清楚;
  • App 实际包含数字内容的外部购买入口;
  • 授权页面声称可以“验证本人”,实际却只获取了普通账户信息,无法支持这一结论;
  • 隐私政策没有说明支付宝账户信息的用途;
  • SDK 实际收集的数据与 App Store 隐私申报不一致;
  • 金融、钱包、兑换或现金奖励业务缺少适用地区要求的资质;
  • SDK 版本过旧,包含废弃 API、异常跳转或不必要的设备信息采集。

还需注意,“支付宝账户已授权”并不必然表示“支付宝实名身份与当前 App 用户一致”。能否完成本人一致性校验,取决于支付宝开放平台向该应用提供的产品能力、返回字段、签约权限和服务端核验方式。不要仅凭授权成功,就在产品中宣称已经完成实名认证。

最终建议

可以保留 AlipaySDK,但要将用途严格限定在提现账户授权,并确保不调用支付接口、不提供外部购买引导,同时在审核备注中清楚说明授权路径和资金场景。

如果条件允许,提交前再检查当前 SDK 版本的隐私清单、依赖组件和实际网络请求,并准备一段完整的授权操作录屏。进入人工复核后,这些材料可以帮助审核人员确认,该功能用于提现账户校验,并非规避 Apple 支付规则。

备注:内容仅供参考。