我正在 flutter 中使用 in_app_purchase 插件来处理 Google Play 商店的非消耗性产品(高级功能)的购买。我成功使用我的测试用户(开发者帐户)购买了产品
但是,当我请求退款时,即使退款已获得批准,我也没有在 InAppPurchase.instance.purchase 流中收到来自应用程序的取消通知。我完全确定我一直在听直播。
我什至尝试在退款后再次购买,以确保购买退款。我可以第二次购买,但没有收到取消通知。
您能帮我了解如何获取取消通知吗?我没有使用任何后端服务器,但我知道出于安全目的我将来应该使用。
不幸的是,截至目前,还没有取消购买的收听。但如果产品被取消,它将从购买清单中消失。您可以通过检查历史记录来取消高级功能,如下所示:
void _checkPremiumFeature() async {
List<GooglePlayPurchaseDetails>? history = await queryPastPurchasesForAndroid();
if (history == null) return;
bool purchased = false;
// check if any past purchase
for (var purchase in history) {
logger.w(
'Purchased product found in history: ${purchase.productID}, status: ${purchase.status}');
if (purchase.status == PurchaseStatus.purchased ||
purchase.status == PurchaseStatus.restored) {
purchased = true;
}
}
if (!purchased) {
logger.w('No purchased products found in history');
}
_accessDbProvider.setPremium(purchased);
}