Revenuecat Flutter 订阅购买时 introductory offer 价格未应用如何解决?
可行解决方案
- 确认Google Play后台配置有效性
登录Google Play Console检查对应订阅商品的 introductory offer 配置:优惠类型(免费试用/首折/固定周期折扣)、适用地区、优惠周期、适用用户规则必须符合预期,配置修改后最长需要24小时全局生效,刚提交的配置可等待数小时后再测试。 - 排查测试账号的优惠资格
Google Play 默认仅允许从未订阅过当前订阅组下任意商品的用户享受 introductory offer,若你的测试账号此前有过同订阅组的购买记录,将无法触发优惠。可进入Google Play Console的「许可测试」页面重置对应账号的订阅测试数据,或更换从未订阅过该商品的全新测试账号重试。 - 修正RevenueCat的接口调用逻辑
RevenueCat不会默认自动应用introductory offer,需要在调用购买接口时显式传入优惠ID,Flutter侧参考代码如下:
同时确认RevenueCat后台的商品列表已经完成同步,对应商品详情页可正常展示introductory offer配置,未同步可手动点击同步按钮刷新数据。// 先获取商品对应的优惠信息 final introOffer = package.storeProduct.introductoryPrice; if (introOffer?.offerIdentifier != null) { // 带优惠参数调用购买接口 await Purchases.purchaseStoreProduct( package.storeProduct, googleOfferingId: introOffer!.offerIdentifier, ); } else { // 无优惠走普通购买逻辑 await Purchases.purchasePackage(package); } - 校准测试安装包的一致性
测试所用的安装包必须和Google Play后台提交的版本包名、签名证书完全一致,推荐使用内部测试/封闭测试渠道分发的安装包测试,直接运行的Debug包如果签名和后台不一致,会导致Google Play返回的商品信息缺失优惠字段。 - 测试环境账单显示说明
测试订阅场景下账单邮件显示原价是Google Play测试环境的已知特性,不代表正式环境效果,可调用Purchases.getCustomerInfo()接口查看返回的订阅信息,若isIntroductoryPeriod字段为true,即代表优惠已成功生效,正式环境用户收到的账单邮件会正常展示优惠价格。
内容的提问来源于stack exchange,提问作者Ranjit Shrestha
相关产品推荐
相关产品推荐

