我正在获取过去的购买详细信息,正如文档中提到的,我将获取的详细信息提供给
ChangeSubscriptionParam
,并提供所需的 ProationMode
。
但是,我在 Playstore 模式中收到错误为
Something went wrong on our end. Please try again
,并且调试控制台显示 Activity finished with resultCode 0 and billing's responseCode: 5
。
这是我正在使用的代码:
final platform = iapConnection
.getPlatformAddition<InAppPurchaseAndroidPlatformAddition>();
final pastPurchases = await platform.queryPastPurchases();
GooglePlayPurchaseDetails? oldPurchaseDetails;
// Assumes 1 or none active purchase.
for (var purchase in pastPurchases.pastPurchases) {
oldPurchaseDetails = purchase;
}
final purchaseParam = GooglePlayPurchaseParam(
productDetails: event.productDetails,
changeSubscriptionParam: oldPurchaseDetails != null
? ChangeSubscriptionParam(
oldPurchaseDetails: oldPurchaseDetails,
prorationMode: ProrationMode.deferred)
: null);
await iapConnection.buyNonConsumable(purchaseParam: purchaseParam);
我找出了错误的原因。因此,我在印度尝试订阅模式,并设置了 3 个订阅模式,但其中 2 个的价格超过 5000,因为它们被视为预付费计划(印度的订阅规则)。根据 documentation 当升级、从自动续订计划降级到预付费计划时,唯一允许的按比例分配模式是 IMMEDIATE_AND_CHARGE_FULL_PRICE,而我的目标是 DEFERED 按比例分配模式,因此出现错误。