我发现In-app Billing Library(使用BillingClient)和In-app Billing API(使用IInAppBillingService)都用于管理订阅。我的问题是在什么情况下应该使用哪一个。
我正在使用In-app Billing API进行测试,并在应用程序的启动画面上检查订阅状态。我的逻辑很简单,使用getPurchases()方法获取已购买状态。如果getPurchases()返回为空,则认为处于“未购买状态”,否则为“已购买状态”。这是否解决以下情况?
1. 延迟计费 2. 购买到期
如果一个循环付款失败(例如,因为客户的信用卡无效),则订阅不会续订。getPurchases()方法不会返回失败或过期的订阅。
这是否意味着:
我正在使用In-app Billing API进行测试,并在应用程序的启动画面上检查订阅状态。我的逻辑很简单,使用getPurchases()方法获取已购买状态。如果getPurchases()返回为空,则认为处于“未购买状态”,否则为“已购买状态”。这是否解决以下情况?
1. 延迟计费 2. 购买到期
如果一个循环付款失败(例如,因为客户的信用卡无效),则订阅不会续订。getPurchases()方法不会返回失败或过期的订阅。
这是否意味着:
Bundle ownedSubscripedItems = mService.getPurchases(3, getPackageName(), "subs", null);
ArrayList<String> purchaseDataList =
ownedSubscripedItems.getStringArrayList("INAPP_PURCHASE_DATA_LIST");
在过期的订阅中,purchaseDataList数组会为空吗?
而对于延迟结算的用户,响应会是什么?如何检查这些用户是否享有延迟结算?他们的响应是否与普通用户相同?