Dev*_*Ltd 8 android in-app-purchase xamarin.android xamarin google-play-services
在过去的几周里,我们在Android上遇到了许多失败的应用程序内购买失败(iOS一直很好).
我们使用Xamarin.InAppBilling组件(版本2.2.0)已经绝对好几个月,但最近我们可以看到我们正在调用行(A)但是通常的IAP回调没有被调用,这意味着......
Google未收到购买请求 - 我们可以对此进行排除,他们会收取费用.
谷歌没有回复 - 我们最可能的情况
Xamarin.InAppBilling中的一个错误 - 不太可能,因为它一直在工作.
我们没有正确注册回调 - 不太可能,因为我们已经记录了每个回调的第一行...
_serviceConnection.BillingHandler.OnUserCanceled += BillingHandler_OnProductCanceled;
_serviceConnection.BillingHandler.OnProductPurchased += BillingHandler_OnProductPurchased;
_serviceConnection.BillingHandler.OnGetProductsError += BillingHandler_OnGetProductsError;
_serviceConnection.BillingHandler.OnPurchaseConsumed += BillingHandler_OnPurchaseConsumed;
_serviceConnection.BillingHandler.OnPurchaseConsumedError += BillingHandler_OnPurchaseConsumedError;
_serviceConnection.BillingHandler.OnProductPurchasedError += BillingHandler_OnProductPurchasedError;
_serviceConnection.BillingHandler.OnPurchaseFailedValidation += BillingHandler_OnPurchaseFailedValidation;
_serviceConnection.BillingHandler.OnInvalidOwnedItemsBundleReturned += BillingHandler_OnInvalidOwnedItemsBundleReturned;
Run Code Online (Sandbox Code Playgroud)这是调用购买代码的摘录......
Device.BeginInvokeOnMainThread (async () => {
var products = await _serviceConnection.BillingHandler.QueryInventoryAsync (new List<String> { consumableSku }, ItemType.Product);
if (products != null && products.Count == 1) {
var product = products [0];
logger.Log ("FeatureService purchaseConsumableFromGooglePlay product:"+product.ToString()+ " payload:" + this.developerPayload);
// (A)
_serviceConnection.BillingHandler.BuyProduct (product, this.developerPayload);
} else {
this.iapConsumableEvent.Purchased = false;
this.Publish<IapConsumableEvent> (this.iapConsumableEvent);
}
});
logger.Log ("FeatureService purchaseConsumableFromGooglePlay completed");
Run Code Online (Sandbox Code Playgroud)
大多数情况下会调用BillingHandler回调,但是当它不起作用时,似乎不会调用那些回调.
我们在Android 7和8上看过这个(所以它是Android 8的问题).
我们不确定从哪里开始,有任何关于进一步调试的建议表示赞赏.
好的,
事实证明这是谷歌的一个问题
感谢您对 Google Play 开发者支持的回复!
我们的团队最近进行了一些更改,应该可以解决此问题(您已经确认了这一点)。
另一方面,我们确实鼓励开发人员使用我们新的 Play Billing 库 ( https://developer.android.com/google/play/billing/billing_library.html ),它可以优雅地处理大多数用例,并且是一个很好的示例与它集成的方法是我们的开源示例: https://github.com/googlesamples/android-play-billing/tree/master/TrivialDrive_v2 感谢您对此修复的耐心,我希望这会有所帮助!如果您还有任何疑问,请告诉我。我很乐意提供帮助。
| 归档时间: |
|
| 查看次数: |
322 次 |
| 最近记录: |