You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

iOS内购:未发布时测试真实购买与RevenueCat购买历史调试问题

解答:Ionic 4 + RevenueCat 内购测试问题

问题1:无法在未发布应用时测试真实购买

首先得明确苹果的内购机制限制:只要你的应用还没正式上架到App Store,不管是直接部署到设备还是通过TestFlight测试,都会强制进入沙箱环境——这是苹果为了避免测试过程中产生真实扣费的安全设计,没有办法绕过这个限制触发真实支付和获取生产收据。

不过你可以用这些方式模拟测试旧用户恢复购买的逻辑:

  • 用沙箱测试账号模拟多场景:创建多个沙箱账号,分别完成不同订阅的购买,然后删除应用再用这些账号测试恢复功能,验证你的恢复逻辑是否正常运转。
  • 借助RevenueCat控制台/API模拟历史数据:你可以在RevenueCat的后台手动调整用户的购买记录,或者调用它的Web API来生成模拟的历史购买数据,以此测试恢复逻辑。
  • 若一定要测试真实流程:可以先提交应用审核上架,之后用正式版测试真实购买(记得测试后申请苹果退款,避免不必要的扣费)。

问题2:getPurchaserInfo返回的allPurchaseDates仅显示最新购买日期

这其实是RevenueCat SDK的设计逻辑:allPurchaseDates字段本身就是按产品ID存储对应订阅的最新购买日期,而不是返回所有历史购买记录的数组。

如果需要获取用户的完整历史购买记录,有这些解决方案:

  • 使用RevenueCat Web API:调用/v1/subscribers/{app_user_id}接口,这个接口会返回该用户的所有订阅历史明细,包括每一次的购买记录。
  • 自行存储购买记录:在你的应用中监听购买成功事件,每次用户完成购买后,将购买数据(比如产品ID、购买日期、订单号等)同步到你的后端服务器,这样你可以随时查询用户的全量历史购买记录。
  • 检查SDK版本:你当前使用的cordova-plugin-purchases是1.1.0版本,相对比较旧,建议升级到最新版本,看看是否有相关功能的更新或bug修复。

内容的提问来源于stack exchange,提问作者jkufrin

火山引擎 最新活动