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

Apple Pay收据有效性验证及内购低价售卖相关问题咨询

iOS内购第三方低价售卖及交易校验问题解析

先理下你的情况:

你通过Apple的verifyReceipt API校验收据返回了status: 0(说明收据本身是有效的),但还是碰到第三方低价卖你们的内购服务,下面针对你的三个问题逐一拆解:


1. 怎么直接校验内购交易的有效性?

基础的收据校验只是第一步,要彻底确保交易合规,得加几层校验逻辑:

  • 核心字段一致性核查
    • 盯紧product_id,必须和你后台配置的内购商品ID完全一致,防止有人篡改收据套取其他商品权益
    • 核对bid(你的App Bundle ID),避免跨App的无效收据混进来
    • 一定要在后台记录所有已处理的transaction_idoriginal_transaction_id,防止同一交易被重复兑换
  • Sandbox环境交叉验证
    对可疑交易,切换到Sandbox的校验地址再跑一遍——有些黑产能伪造生产环境的收据,但Sandbox环境下很容易露马脚
  • 购买时间合理性检查
    对比purchase_date_ms和当前时间,如果是几年前的旧收据,大概率是被重复利用的,直接拒绝兑换
  • 升级到App Store Server API
    别再只用老的verifyReceipt了,Server API能拿到更实时的交易细节,比如退款记录、订阅状态,判断有效性的精度高很多

2. 如果款项没到账,该怎么查?

要是确认交易有效但钱没到,按这个步骤排查:

  • 先看结算周期
    Apple不是实时打款,每月结算一次,先确认交易是否已经过了结算周期(去App Store Connect的「付款与财务报告」里查)
  • 查App Store Connect的交易记录
    在「销售与趋势」里搜对应的transaction_id,看看这笔交易是不是被标记成了退款、取消或者异常状态
  • 扒财务报告明细
    下载月度财务报告,筛选对应的交易日期和商品ID,找有没有对应的入账;要是有退款、手续费这类扣除项,报告里也会写清楚
  • 找Apple官方支持
    前面都查不出问题的话,直接在App Store Connect提交工单,把transaction_idproduct_id这些信息给全,让Apple帮你查钱的流向

3. 第三方为啥能低价卖我们的内购?

这种情况基本都是钻了这些漏洞或者用了灰色手段:

  • 家庭共享/账号共享滥用
    黑产买一次内购,用家庭共享分给N个用户,平摊成本后就能低价卖;这种情况下每个用户的收据校验都是有效的,但本质是同一交易被多人使用
  • 区域差价套利
    Apple在不同地区的内购定价不一样,黑产在低价区买了之后,通过VPN改地区、转账号的方式把权益卖给高价区的用户,赚差价
  • 盗刷信用卡购买
    有些黑产用被盗的信用卡买内购,成本几乎为零,所以能低价卖;但这类交易后面大概率会被银行拒付,你不仅拿不到钱,还可能影响App的评级
  • 旧收据重复提交
    要是你后台没记录已处理的交易ID,黑产就会把已经兑换过的旧收据反复提交,骗你给权益

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

火山引擎 最新活动