Unity 的 IAP - 迁移到 Google 计费版本 3 后初始化失败

Unity's IAP - initialization failure after migration to Google Billing version 3

昨天我通过开发者控制台将我游戏的新版本推送到 Google Play 商店。捆绑传输成功后,我收到一条警告消息,提示我使用的是旧版本的应用内计费模块,建议迁移到当前版本 (v3)。因此,我已将所有 packages/IAP Unity 服务更新到最新版本(Unity ver:2019.4.18f1(64 位),IAP 包:In App Purchasing 2.2.2,Unity Services IN-APP PURCHASING“up to日期").

我现在遇到的问题发生在以不可预测的方式工作的初始化过程中。它时不时地正确工作,从而导致正确的 inap 行为 - 初始化以及产品的购买工作得很好。不幸的是,初始化过程经常失败,并显示以下消息 logcat:

I/Unity: UnityIAP Version: 2.2.6
W/Unity: Unavailable product test-test
(Filename: ./Runtime/Export/Debug/Debug.bindings.h Line: 35)
// etc...

在我的项目中,Unity 的计费模块被包装在一个单例中 class,它在第一次使用时执行 Unity 的 IAP 的初始化(单例的使用和可能的初始化:IAPManager.Instance)。

为了初始化模块,我使用了以下代码 - IAPManager.Instance.Init() 结果是在 IAPManager.Instance 中第一次触发了 Init(),在 [=11= 中第二次触发了 Init() ].因此,Unity 的 IAP 初始化有两次折叠执行,不幸的是失败并显示 Products unavailable logcat 消息。

触发 Unity 的 IAP 初始化一次只解决了这个问题。