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

iOS消耗型内购商品未在购买收据中显示问题求助

解决消耗型内购重复购买后收据不新增记录的问题

以下是针对该问题的排查和配置要点:

  • 必须完成服务器端消耗操作
    消耗型商品允许重复购买的核心前提是,每次购买完成后必须在服务器端调用对应平台的「消耗」接口:

    • 苹果:验证收据后标记交易为已消耗,或调用finishTransaction完成交易闭环
    • 谷歌:调用consumePurchase接口主动消耗订单
      若跳过这一步,平台会判定该订单未完成,再次购买时不会生成新的交易记录,自然不会新增到收据中。注意:消耗操作必须在服务器端执行,仅客户端处理会导致状态不一致。
  • 确认商品类型配置正确
    检查开发者后台的商品类型设置:

    • 苹果App Store Connect:确保商品类型为「消耗型」(Consumable),而非「非消耗型」或「订阅类」
    • 谷歌Play Console:确认商品分类为「消耗型商品」(Consumable)
      类型配置错误会直接导致平台不允许重复购买生成新记录。
  • 检查收据解析逻辑
    服务器端解析收据时,要确保遍历所有交易记录:

    • 苹果收据的in_app数组会保留所有消耗型商品的交易记录,每次购买都会新增一条,不要仅提取最新的一条
    • 谷歌验证响应会返回所有相关订单,需正确提取历史购买条目,避免遗漏重复购买记录
  • 客户端购买流程排查

    • 确保客户端每次购买成功后,重新获取最新的收据令牌,不要缓存旧的收据数据
    • 发起购买请求时,每次创建新的请求实例,不要复用之前的请求对象,避免请求状态异常
  • 平台侧状态验证

    • 苹果Sandbox环境可能存在延迟,测试时若出现问题可等待几分钟后重新验证;生产环境可在App Store Connect查看订单记录,确认每次购买都生成了独立的订单ID
    • 谷歌Play Console中查看订单状态,确保重复购买的订单都标记为「已完成」,且生成了新的订单ID

示例:苹果服务器端验证并消耗交易的核心逻辑

def process_consumable_purchase(user_id, receipt_data):
    # 区分生产/沙箱环境的验证地址
    verify_url = "https://buy.itunes.apple.com/verifyReceipt" if is_production() else "https://sandbox.itunes.apple.com/verifyReceipt"
    response = requests.post(verify_url, json={"receipt-data": receipt_data, "password": YOUR_APP_SHARED_SECRET})
    result = response.json()

    if result.get("status") != 0:
        return {"success": False, "message": "Receipt verification failed"}

    # 遍历所有未处理的消耗型交易
    for transaction in result.get("in_app", []):
        transaction_id = transaction["transaction_id"]
        if not check_transaction_processed(transaction_id):
            # 标记交易为已处理(消耗)
            save_transaction(transaction_id, user_id, transaction["product_id"])
            # 给用户发放对应商品
            grant_user_item(user_id, transaction["product_id"])
    
    return {"success": True, "message": "Purchases processed successfully"}

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.14 20:35:18