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

为什么Apple支付表单会两次弹出?Flutter IAP相关问题咨询

问题描述

我在90%的场景下都会遇到这个问题:

  • 用户点击应用内的CTA按钮
  • Apple支付按钮展示
  • 用户完成订阅操作
  • 此时看起来所有流程都运行正常
  • 控制台无任何报错,也没有相关报错报告——没有任何异常提示
  • 随后Apple支付按钮会再次弹出
  • 如果我第二次不输入密码、不完成订阅操作,那么本次IAP就会失败。

我使用的是Flutter IAP插件flutter_inapp_purchase,也已经在对应仓库提交了Issue,但目前还没有人处理。
我想了解除了Flutter插件的问题外,这是否是近期很多用户都遇到的iOS系统层面的问题?


回答

该IAP订阅完成后重复弹出支付窗口的问题,不属于近期iOS系统的普遍故障,绝大多数同类问题都是交易队列处理逻辑异常导致的,可按照以下优先级排查:

  • 首先校验业务流程中是否在交易闭环后正确调用finishTransaction方法。苹果StoreKit的设计逻辑是,只要交易没有被手动标记为完成,就会在后续IAP服务唤醒时重试交付,进而重复弹出支付窗口,这是苹果用来避免漏单的默认机制,和系统版本无关。
  • 检查是否存在重复注册IAP监听器的问题。如果多次添加交易回调监听,同一个成功交易可能会被多次触发处理逻辑,若处理逻辑中包含发起新支付的代码,就会导致二次弹窗。
  • 确认使用的flutter_inapp_purchase插件版本,该插件的2.0.0~2.1.0版本存在已知的交易回调漏发、finishTransaction调用不生效的问题,可尝试升级到最新稳定版验证,也可替换为官方维护的in_app_purchase插件做兼容性测试。

内容的提问来源于stack exchange,提问作者Tomas Baran

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.26 00:15:03