1.订阅支付 2.调用restoreCompletedTransactions(然后调用finish)关闭所有状态未1 和2的事务 3.调用requestPayment
- 发布:2023-11-22 13:32
- 更新:2023-11-22 13:34
- 阅读:278
产品分类: uniapp/App
PC开发环境操作系统: Windows
PC开发环境操作系统版本号: 000
HBuilderX类型: 正式
HBuilderX版本号: 3.98
手机系统: iOS
手机系统版本号: iOS 17
手机厂商: 苹果
手机机型: 全部
页面类型: vue
vue版本: vue3
打包方式: 云端
项目创建方式: HBuilderX
操作步骤:
预期结果:
支付后返回transaction.transactionState=1 的事务 或 弹出已经购买过的苹果提示 无论如何不应该恢复购买
支付后返回transaction.transactionState=1 的事务 或 弹出已经购买过的苹果提示 无论如何不应该恢复购买
实际结果:
返回transaction.transactionState=3 的事务
返回transaction.transactionState=3 的事务
bug描述:
IOS的苹果内购(iap)
https://uniapp.dcloud.net.cn/api/plugins/payment.html
1.上面这个文档给的支付流程中要调用一个restoreCompletedTransactions,用来关闭订单。我明白这样做的目的,因为对于苹果来说一个订单是一个事务,需要关闭。 <br/> 2.对于苹果来说,它提供restoreCompletedTransactions目的是用于恢复购买的,只不过刚好可以获取到未关闭的事务,便用在了这里,我也可以理解。 <br/> 3.但是对于订阅类型的商品,我调用restoreCompletedTransactions之后会产生一个transaction.transactionState=3 的事务,当我调起支付时直接把这个事务返回给我了,我需要的是支付后返回一个transaction.transactionState=1的
1 个回复
3***@qq.com (作者) - wo
我希望我能自己控制addTransactionObserver,我能在启动app时拿到addTransactionObserver的返回队列