iOS内购(订阅)时开发者可获取哪些用户信息?防多账号开发问询
iOS 16应用内购买与订阅的开发者可获取信息说明
一、应用内购买完成后默认传递的核心信息
当用户在iOS 16完成应用内购买(含订阅)后,苹果会向开发者传递以下信息:
- 购买项目的
Product ID:用于识别用户购买的具体内购商品或订阅计划 - 交易标识符(Transaction ID):苹果生成的唯一交易编号,用于验证交易合法性
- 订阅状态(仅针对订阅):如激活、过期、续订、已取消等状态值
- 订阅到期时间(仅针对订阅):精确到秒的时间戳,标识订阅的失效节点
- 匿名设备/用户标识符:包括
vendorIdentifier(同一开发者旗下所有应用共享的设备级匿名ID)、advertisingIdentifier(需用户授权跟踪才能获取的广告标识),这类ID无法关联用户真实身份 - 交易签名与凭证:用于向苹果服务器验证交易真实性的加密数据
二、订阅场景下指定信息的可获取性
针对你询问的几类信息,开发者的获取权限如下:
- Unique Identifier:仅能获取苹果提供的匿名标识符(如
vendorIdentifier),这类ID是设备/开发者应用范围内的唯一值,但无法关联用户真实身份;能直接指向用户真实身份的唯一ID无法获取。 - First and last name:无法获取,苹果不会将用户姓名这类隐私信息透传给开发者。
- Apple ID:无法获取完整的Apple ID账号(如邮箱格式),仅通过Apple Sign In并获得用户授权后,可获取经过哈希处理的匿名Apple ID,无法还原原始账号信息。
- Email:默认无法获取,仅当用户通过Apple Sign In主动选择共享邮箱时,才能获取到苹果提供的代理邮箱或用户真实邮箱(由用户决定),单纯的订阅操作不会触发邮箱信息传递。
- Age:无法直接获取,苹果不会主动传递用户年龄信息,仅少数合规场景(如儿童类应用)可能通过Family Sharing间接获取相关数据,普通订阅场景不支持。
- Address:无法获取,用户的账单地址、收货地址等隐私信息由苹果保管,不会向开发者透传。
三、同一用户多高级账号防护的实践建议
基于苹果的隐私限制,你可以通过以下方式实现风控:
- 利用
vendorIdentifier标记设备唯一身份,限制同一设备下的高级账号创建数量; - 强制用户通过Apple Sign In绑定账号,借助其提供的匿名唯一ID关联用户身份,避免重复注册;
- 监控异常行为:如短时间内多次购买、多设备频繁切换同一订阅等,触发风控拦截;
- 可选要求用户绑定手机号等额外验证信息(需遵循隐私合规要求),进一步强化身份唯一性校验。
内容的提问来源于stack exchange,提问作者Nelson Tatius
相关产品推荐
相关产品推荐

