You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

关于通过RevenueCat API查询iOS用户优惠码兑换状态及Subscription Offer Codes相关字段的技术咨询

问题2:RevenueCat的PurchaserInfo是否提供类似offer_code_ref_name的字段?如果没有,其他判断方式?

先明确一点:目前PurchaserInfo对象并没有直接暴露offer_code_ref_name字段——RevenueCat没有把Apple收据里的这个特定字段映射到PurchaserInfo的顶层结构中。

不过你可以通过以下几种方式替代:

  1. 从PurchaserInfo的latest_receipt_info中提取
    latest_receipt_info数组里包含了Apple收据的原始交易数据,你可以遍历这些条目,查找offer_code_ref_name键(如果购买使用了优惠码,这个字段会被包含在交易数据里)。举个iOS Swift的例子:

    Purchases.shared.getPurchaserInfo { purchaserInfo, error in
        guard let info = purchaserInfo else { return }
        for receiptEntry in info.latestReceiptInfo ?? [] {
            if let offerRefName = receiptEntry["offer_code_ref_name"] as? String {
                // 找到优惠码标识名
                print("已兑换优惠码: \(offerRefName)")
            }
        }
    }
    
  2. 服务端解析收据
    如果不想在客户端做解析,可以用RevenueCat的服务端API获取用户的完整收据数据,然后在你的后端解析提取offer_code_ref_name。API响应里的original_receipt字段是Base64编码的Apple收据,你可以像用Apple官方验证服务那样解码和验证它。

  3. 本地记录兑换信息(可选)
    当你在APP中发起优惠码兑换流程(调用Purchases.shared.redeemOfferCode(_:completion:))后,一旦兑换成功,你可以在本地做记录(比如把优惠码标识名存到UserDefaults或自己的后端),这样之后需要查询时就不用解析收据,直接读取记录即可。


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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.04.30 04:37:50