android - 为什么查询 Purchases.subscriptions 资源时 developerPayload 字段为空?
问题描述
我正在使用Google Play Billing Library实现应用内订阅。一切正常,除了一个想法,当我确认购买时,我将developerPayload设置为某个字符串值。然后我可以在应用程序内查询购买时看到这个值,但是当我在后端使用 Google Developer Api 来验证订阅时,developerPayload字段为空,所有其他字段都是正确的。
我的后端是用 .NET core 2.2 编写的,我正在使用Google.Apis.AndroidPublisher.v3库。
我还用 python 库检查过,结果是一样的。
这就是我准备确认参数的方式,developerPayload只是一个包含大约 60 个字符的简单字符串。
val params = AcknowledgePurchaseParams.newBuilder()
.setDeveloperPayload(developerPayload)
.setPurchaseToken(purchase.purchaseToken)
.build()
billingClient.acknowledgePurchase(params) { billingResult ->
...
}
解决方案
我面临同样的问题这是我请求 Google Api 时的响应
{种类:'androidpublisher#subscriptionPurchase',startTimeMillis:'1564065118619',expiryTimeMillis:'1564065536468',自动更新:true,priceCurrencyCode:'SAR',priceAmountMicros:'10990000',
countryCode:'SA',developerPayload:'',paymentState: 1、
orderId: 'GPA.3399-9037-3439-13416', purchaseType: 0,
acknowledgementState: 0 }
并且可以从 Android 发送
AcknowledgePurchaseParams acknowledgePurchaseParams =
AcknowledgePurchaseParams.newBuilder()
.setPurchaseToken(purchase.getPurchaseToken())
.setDeveloperPayload(String.valueOf(user.getId()))
.build();
mBillingClient.acknowledgePurchase(acknowledgePurchaseParams, this);
推荐阅读
- javascript - 使用js将按钮附加到输入
- python - 如何确定我的 GPU 上的 Tensorflow 的速度?
- jmeter - 了解线程组属性之间的差异
- r - paste() 中的错误 <- 赋值的函数目标扩展到非语言对象
- google-apps-script - setValue 没有设置谷歌表格中单元格的值
- python - 通过 pytest 在 Python 中为每个测试重置类和类变量
- laravel - 我应该如何更新 Laravel Nova 中的 Status 字段状态
- powershell - 如何使用 PowerShell 删除文件名中的前导或尾随空格?
- python - 选择行匹配条件,上一行下一行
- unity3d - 有没有办法获得对场景对象预制件的引用?