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

React Native安卓消耗型内购订单自动取消问题求助

解决React Native IAP安卓端消耗型内购被自动取消的问题

针对你遇到的安卓端购买成功后收到谷歌Play取消订单邮件的问题,核心原因是消耗型内购未被正确确认(acknowledge),谷歌Play会在购买后一定时间内取消未确认的订单。以下是具体修复方案:

1. 修正finishTransaction的参数传递

你当前传入finishTransaction的purchase是整个数组(requestPurchase返回的是Purchase[]),但该方法需要单个Purchase对象。修改代码:

// 原代码
await finishTransaction({purchase: purchase, isConsumable: true, developerPayloadAndroid: ""});

// 修改后
await finishTransaction({
  purchase: purchase[0], // 取第一个购买项
  isConsumable: true,
  developerPayloadAndroid: ""
});

2. 手动调用安卓专属的确认接口(兜底处理)

如果finishTransaction未正确触发确认,可单独调用acknowledgePurchaseAndroid确保谷歌收到确认信号:

// 在finishTransaction之后添加(或替换)
if (Platform.OS === 'android') {
  await acknowledgePurchaseAndroid({
    purchaseToken: purchase[0].purchaseToken
  });
}

3. 必须设置purchaseUpdatedListener监听购买回调

仅依赖requestPurchase的then回调可能遗漏部分场景(比如应用后台完成的购买),需全局监听购买状态:

componentDidMount() {
  this.initilizeIAPConnection();
  // 添加购买监听
  this.purchaseUpdateSubscription = purchaseUpdatedListener((purchase) => {
    const { purchaseToken, productId } = purchase;
    // 处理购买成功逻辑
    if (purchase.transactionState === 'purchased') {
      // 确认订单
      finishTransaction({
        purchase: purchase,
        isConsumable: true
      }).then(() => {
        // 订单确认成功,发放商品
      }).catch(err => {
        console.error('确认订单失败:', err);
      });
    }
  });
}

componentWillUnmount() {
  // 移除监听
  if (this.purchaseUpdateSubscription) {
    this.purchaseUpdateSubscription.remove();
  }
  endConnection();
}

4. 检查谷歌Play控制台配置

  • 确认你创建的内购商品类型是消耗型(Consumable),而非非消耗型或订阅
  • 确保测试账号已添加到谷歌Play控制台的许可测试列表中

5. 完善错误捕获

在确认订单的代码块中添加错误捕获,排查是否有网络或接口调用失败:

try {
  await finishTransaction({
    purchase: purchase[0],
    isConsumable: true
  });
  if (Platform.OS === 'android') {
    await acknowledgePurchaseAndroid({ purchaseToken: purchase[0].purchaseToken });
  }
} catch (ackErr) {
  console.error('确认订单出错:', ackErr.code, ackErr.message);
  // 可在这里添加重试逻辑
}

内容的提问来源于stack exchange,提问作者Mayur Prajapati - MeProgrammer

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.25 14:53:25