uni-app iap苹果内购 订阅 Bug

发布于 1周前 作者 bupafengyu 来自 Uni-App

uni-app iap苹果内购 订阅 Bug

信息类别 内容
产品分类 uniapp/App
PC开发环境 Windows
PC版本号 000
HBuilderX类型 正式
HBuilderX版本 3.98
手机系统 iOS
手机系统版本 iOS 17
手机厂商 苹果
手机机型 全部
页面类型 vue
vue版本 vue3
打包方式 云端
项目创建方式 HBuilderX

操作步骤:

  1. 订阅支付
  2. 调用restoreCompletedTransactions(然后调用finish)关闭所有状态未1 和2的事务
  3. 调用requestPayment

预期结果:

支付后返回transaction.transactionState=1 的事务 或 弹出已经购买过的苹果提示 无论如何不应该恢复购买

实际结果:

返回transaction.transactionState=3 的事务

bug描述:

IOS的苹果内购(iap)
https://uniapp.dcloud.net.cn/api/plugins/payment.html

  1. 上面这个文档给的支付流程中要调用一个restoreCompletedTransactions,用来关闭订单。我明白这样做的目的,因为对于苹果来说一个订单是一个事务,需要关闭。
  2. 对于苹果来说,它提供restoreCompletedTransactions目的是用于恢复购买的,只不过刚好可以获取到未关闭的事务,便用在了这里,我也可以理解。
  3. 但是对于订阅类型的商品,我调用restoreCompletedTransactions之后会产生一个transaction.transactionState=3 的事务,当我调起支付时直接把这个事务返回给我了,我需要的是支付后返回一个transaction.transactionState=1的

1 回复

我希望我能自己控制addTransactionObserver,我能在启动app时拿到addTransactionObserver的返回队列

回到顶部
AI 助手
你好,我是IT营的 AI 助手
您可以尝试点击下方的快捷入口开启体验!