android - 检查应用内订阅是否在我的无服务器 android 应用中处于活动状态
问题描述
我有一个功能简单的无服务器安卓应用程序:如果用户有一些应用内订阅(自动更新),那么他可以在应用程序中使用功能,否则没有。我知道,如何通过获取订阅信息(价格、标题等)和致电付款来发挥作用。但我无法检查当前用户是否有活动(未取消)订阅。我在许多网站和教程上阅读了很多信息,并且写到我必须在我的服务器中使用 google API。但是我没有自己的服务器。我为应用内订阅使用了两个不同的库:
'com.anjlab.android.iab.v3:library:1.0.44'
和
'com.android.billingclient:billing:1.1'
但没有人帮我检查用户是否有活动订阅。那么,如何完成这个任务呢?请帮助我,也许我错过了一些信息......
解决方案
编辑: Anjlab 库在最长的时间内没有更新。请使用 Google 自己的计费库,这个分步过程应该可以帮助您轻松地将其集成到您的应用中 - Google In App Billing library
使用anjlab 应用内计费库我也面临类似的情况。这就是我为解决它所做的。
调用方法billingProcessor.loadOwnedPurchasesFromGoogle();
然后检查transactionDetails的值,如果TransactionDetails
对象返回null,则表示用户没有订阅或取消订阅,否则仍然订阅。
void checkIfUserIsSusbcribed(){
Boolean purchaseResult = billingProcessor.loadOwnedPurchasesFromGoogle();
if(purchaseResult){
TransactionDetails subscriptionTransactionDetails = billingProcessor.getSubscriptionTransactionDetails(YOUR_SUBSCRIPTION_ID);
if(subscriptionTransactionDetails!=null)
//User is still subscribed
else
//Not subscribed
}
}
另外,需要注意的是,TransactionDetails
对象只会在订阅期到期后返回null。
推荐阅读
- ios - 我们的 iOS 应用程序被删除后我能做什么?
- pdf - JsReport Chrome-pdf 配方横向选项
- sql - 在oracle中将父子行转换为JSON
- php - 在 HEADER 中使用用户令牌验证 API
- python - csv.DictReader 分隔符在带有多个引号的 csv 字段中
- python-3.x - 将数据从数据框的顶部移动到底部(df 的列具有不同的长度索引)
- java - 为什么节点被添加到错误的链表中?
- cassandra - 第三个 Cassandra 节点有不同的负载
- haskell - 这种处理哈希冲突的方法是新的/独特的吗?
- android - 我如何为 Nexus 5x 构建 android 4.4.4_r1