问题描述
我在flutter应用中添加了in_app_purchase插件以进行付款。它在android和sandbox上完美运行,但是在发布应用程序后,它不能与真实卡一起正常使用。付款成功完成,应该已经添加了硬币,但是没有添加。
这是我的代码:
_initialize() async {
_available = await _iap.isAvailable();
if (_available) {
await _getProducts();
_subscription =
_iap.purchaseUpdatedStream.listen((purchases) => setState(() {
print('New purchase');
_purchases.addAll(purchases);
Platform.isIOS ? _getPastPurchases() : _verifyPurchase();
}));
}
}
Future<void> _getPastPurchases() async {
QueryPurchaseDetailsResponse response = await _iap.queryPastPurchases();
print(response.pastPurchases);
for (PurchaseDetails purchaseDetails in response.pastPurchases) {
print('Purchase status: ${purchaseDetails.status}');
_iap.completePurchase(purchaseDetails);
if (purchaseDetails.status == PurchaseStatus.purchased) {
_verifyPurchase();
}
}
if(mounted) {
setState(() => _purchases = response.pastPurchases);
}
}
// the problem somewhere in _getPastPurchases method,I try to complete purchases,and then verify it
_verifyPurchase() {
PurchaseDetails purchaseDetails = _hasPurchased(widget.productID);
if(purchaseDetails != null && purchaseDetails.status == PurchaseStatus.purchased) {
// my logic to add purchased coins
}
}
//Probably,purchaseDetails.status == PurchaseStatus.purchased condition is false somehow,//but I don't know what's wrong and then why in sandbox is working correctly
预先感谢
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)