这种现象可能有很多情况,最常见的原因就是 已有的Apple订单没有正确关闭! 经过老狗的测试,老狗遇到的是下面这种情况:
沙箱测试环境下,订阅会员成功后,后续每5分钟自动续费一次(沙箱设置),自动续费后,下次再支付,就不会有已订阅的提示了,直接自动提示支付成功了!但此时会员其实并没有增加有效期!(正常情况下,订阅有效期间订阅相同内容,apple支付会直接提示已订阅,无需重复订阅)
经过学习和排查发现我的错误原因,是因为app前端没有正确处理自动续费的通知!出现问题的逻辑步骤大概如下:
这就是Apple侧的前端支付通知设计,不仅是当下的支付会有通知,以前的自动续费但未完结的订单也会通知!
在apple自动续费后,下次初始化iap支付时,会立即通知之前没有处理完成的订单,一般自动续费都是支付成功的订单,所以现象就是:当你初始化支付时,apple还没开始处理新的支付,你的程序就(误以为)接收到了支付成功的通知,从而自动完成了。。。
(网络搜集到的)解决方案 也“很简单”:在进入商品页面,或启动app时,就初始化一次iap支付,此时可能接收到一些自动续费的成功的通知,接收到通知时,正确处理这些通知,调用“complate”保证把这些通知相关的交易正确关闭,这样就不会再收到这些通知了!
当然这种解决方案也有问题:如果自动续费的通知没有和服务端订单匹配上,怎么处理?是不是会影响用户权益?这就要你自己取舍了! 普遍的做法是:如果接收到支付成功通知,象征性地与服务端校验,无论服务端是否处理成功,前端都要调用“complate”,来确保这个通知完结!不要影响后续的支付!!!
上面是基于网上搜集资料和自己实际问题总结的文字,仅供参考!
再往下是 Gemini 的回答,请自行阅读分析
flutter 开发鸿蒙,不知道哪个组织拉了一个 flutter 分支进行了适配,官方版本 flutter 是不支持鸿蒙系统的,所以为了开发鸿蒙,需要安装适配后的 flutter 版本,仓库地址:https://gitcode.com/openharmony-tpc/flutter_flutter/
新版本其实切换很简单,只需要两步:
只是这两步,我踩了一个小坑搞了一个钟头。。
Mac 并没有 Windows 那样的“我的电脑”,最接近的概念是访达的“电脑”:
显示内容:
所以 Mac 的“访达 → 电脑” 就相当于 Windows 的“我的电脑”,只不过Mac中一般 单独的硬盘只是其中一个卷。
打开方法如下:
在 Mac 上安装软件的方法有几种,取决于软件的来源和类型。我将列出所有常见安装方式:
这是最简单和最安全的方法。
在 Mac 上卸载软件有几种方式,取决于软件的安装方式。下面我按常见情况分成几类讲清楚 👇
适用于:从 Mac App Store 下载的应用。
🧹这种方式会彻底删除 App 的主程序,但不会清理配置文件(它们在 ~/Library 中)。