首页 > 解决方案 > 为什么查询 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 ->
...
}

标签: android.net-coregoogle-playandroid-billing

解决方案


我面临同样的问题这是我请求 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);

推荐阅读