我正在使用 Google Play Billing Library 5,并且有一个具有不同基本计划的订阅产品。
PurchasesUpdatedListener在或 的回调中处理购买时queryPurchasesAsync,我会收到一个对象列表Purchase,其中包含产品 ID、购买时间以及是否自动续订等内容。
但我如何知道用户选择了哪个基本计划以及该计划何时到期?
返回PurchaseHistoryRecord的queryPurchaseHistoryAsync似乎也不包含此信息。
我知道 Play Developer API 使用 来返回过期时间purchases.subscriptionsv2.get,但是直接使用 API 带来的不便是否有必要?
android in-app-billing android-billing play-billing-library google-play-billing
我想获得购买用户的名称/ ID.AccountManager如果可能的话,我想不这样做,因为它的使用需要额外的许可.即使AccountManager我没有看到确定当前账户的方法,所以欢迎任何建议.
android in-app-billing android-account google-play android-billing
我正在为非消耗性应用内购买实施新的 BillingClient 库 (v2.1.0)。我正在测试与测试用户的待处理交易。它适用于“信用卡在几分钟后批准”,但对于“信用卡缓慢,几分钟后拒绝”,购买状态始终处于待处理状态(在 Play 管理中心显示为取消后等待数小时)。
为了检索购买状态,我调用文档中的mBillingClient.queryPurchases(BillingClient.SkuType.INAPP)状态
有没有人遇到过这个问题?这是开发环境问题还是最终用户也会发生这种情况?
谢谢!
为什么我们的用户可以在 Play 商店上重新订阅,尽管在 Google Play 控制台上选择退出?
我们正在 Android 应用程序上实现订阅。我们已将“重新订阅”选项选择为“未启用”。
然而,当我们通过取消订阅并等到上一个订阅过期后进行测试时,用户可以选择在一段时间内直接从 Play 商店而不是应用程序重新订阅(“应用程序外”)购买”),然后他们以前的订阅完全消失。
当发生这种情况时,我们的 BE 会收到通知,但没有任何有关用户身份的信息,因为这是一次全新的购买,因此我们的 BE 不知道哪个用户有权重新订阅计划。
我要指出的是,我们不想依靠我们的移动应用程序来拦截此购买并更新我们的后端 - 因为订阅也会影响我们网站上的权利,并且我们不确定我们的应用程序下次何时启动。
这个“重新订阅”选项已在我们的 Google Play 开发控制台上被禁用,并且它似乎在约 1-3 小时后消失(在测试环境中),但在这段时间内,我们无法阻止用户“重新订阅”在 Play 商店中订阅”
android android-billing android-developer-api google-developers-console
我已在我的应用中实施了应用内结算 - 最近谷歌已对其进行了更新,之前我正在测试应用内结算"android.test.purchased"并且工作正常(购买完整版和恢复完整版).
现在我从这里接受了更改的课程 https://code.google.com/p/marketbilling/source/detail?r=7bc191a004483a1034b758e1df0bda062088d840
之后,我无法测试应用程序,它在Logcat中给出以下错误 "IabHelper: In-app billing error: Purchase signature verification FAILED for sku android.test.purchased
".
我已经检查了我的密钥,包名和app版本都是正确的,有没有人遇到过这个问题?
请帮我解决一下这个.
android billing in-app-purchase in-app-billing android-billing
大家.
我刚开始在应用程序中购买应用程序.
这对我来说是新事物.
现在我在网上看到了一些例子,我发现在将结算库链接到它之前,github上的一个项目充满了错误.
当我这样做时,我刚解决了项目中的错误,但仍然有一个感叹号红色标记,因为android计费库包有错误.
我检查了错误,但我无法解决它,因为我不明白如何.
拜托,伙计们,我真的需要一些帮助.
我在这些行中得到了错误
@Override
public android.os.IBinder asBinder()
{
return this;
}
Run Code Online (Sandbox Code Playgroud)
在asBinder中的错误和它的说法"在这一行的多个标记
- The method asBinder() of type IMarketBillingService.Stub must override a superclass method
- implements android.os.IInterface.asBinder"
Run Code Online (Sandbox Code Playgroud)
与此代码相同,我也收到错误
@Override
public android.os.Bundle sendBillingRequest(android.os.Bundle bundle) throws android.os.RemoteException
{
android.os.Parcel _data = android.os.Parcel.obtain();
android.os.Parcel _reply = android.os.Parcel.obtain();
android.os.Bundle _result;
try {
_data.writeInterfaceToken(DESCRIPTOR);
if ((bundle!=null)) {
_data.writeInt(1);
bundle.writeToParcel(_data, 0);
} else {
_data.writeInt(0);
}
mRemote.transact(Stub.TRANSACTION_sendBillingRequest, _data, _reply, 0);
_reply.readException();
if ((0!=_reply.readInt()))
{
_result = android.os.Bundle.CREATOR.createFromParcel(_reply);
} else {
_result …Run Code Online (Sandbox Code Playgroud) 我正在开发一个Android应用程序,我希望该应用程序的某些功能不是免费的.
我曾考虑过使用应用内Billing Version 3 API,因此我在开发者控制台中定义了"应用内商品".
阅读文档后,我知道当我开始购买流程时,我应该传入一个字符串令牌,帮助应用程序唯一地识别进行购买的用户.
但是我如何获得识别用户的字符串标记?
谢谢
android billing in-app-purchase in-app-billing android-billing
调试详细信息:按照从 Android Billing 4.0 迁移到 5.0 的教程https://developer.android.com/google/play/billing/migrate-gpblv5,特别是“显示可供购买的产品”部分 ImmutableList 中的“of”被标记为红色,Android Studio 中的错误是
无法解析“ImmutableList”中的“of”方法”
我该如何解决?
获得编译错误的最小可重现代码:
QueryProductDetailsParams queryProductDetailsParams =
QueryProductDetailsParams.newBuilder()
.setProductList(
ImmutableList.of(
QueryProductDetailsParams.Product.newBuilder()
.setProductId(PREMIUM_MONTHLY_VERSION_ID)
.setProductType(BillingClient.ProductType.SUBS)
.build()))
.build();
Run Code Online (Sandbox Code Playgroud)
以下是具体细节:
期望的行为:代码编译良好。
具体问题或错误:编译错误。
我想从产品列表中删除现有订阅产品.
我怎么能这样做,因为我没有在我的开发者控制台上找到删除订阅的任何选项?
此外,如果以任何可能的方式允许,那么当他们在与Google Play通信时从他们的应用程序呼叫RESTORE_TRANSACTION时,它是否会对已购买该订阅的现有用户产生任何影响?
我在测试应用内结算时遇到问题。
(使用 Google Play In-app Billing Version 3 API)
问题:
退款的应用内购买仍然存在于购买列表中,由 提供BillingClient.queryPurchases()。
当我在 1 月份尝试退款时,退款的商品从购买清单中消失了。
我做了什么:
BillingClient.queryPurchases()在我的应用程序中检查了我的购买提供。最小校验码:
private val client: BillingClient // provided
fun check() {
// client.startConnection() already completed here
client.queryPurchases(BillingClient.SkuType.INAPP)
.run {
purchasesList
.map { it.originalJson }
.forEach { Log.d("billing", "json = $it") }
}
}
Run Code Online (Sandbox Code Playgroud)
我想做什么:
我想取消我所有的测试购买。
有没有人有什么建议?先感谢您。
android google-play android-billing google-play-services play-billing-library