相关疑难解决方法(0)

退款客户应用内购买,但 BillingClient 仍显示用户已购买?

我正在使用以下内容BillingClient

implementation 'com.android.billingclient:billing:1.2.2'
Run Code Online (Sandbox Code Playgroud)

虽然我已经发出退款如下

在此处输入图片说明

但我仍然收到以下回复 BillingClient.queryPurchases

{
  "orderId": "GPA.3352-2555-5719-25534",
  "packageName": "com.yocto.wenote",
  "productId": "note_list_promo",
  "purchaseTime": 1560501011137,
  "purchaseState": 0,
  "purchaseToken": "djjneabakdaenkjafajbbclo.AO-J1OzbDNn5WkobYbSqLNzoBokm1F552-CqzfLQuNXK69bhxC-TnOTqdPV1RCl9T2okpSWfRD9RrE0eFhSN8glUbsOM5XUBDRnm_yK2Ohq_uyNuU17i1dc3CBhdeEn9uZCIfD3zY4tF"
}
Run Code Online (Sandbox Code Playgroud)

根据文档 BillingClient.queryPurchases

获取在您的应用内购买的所有商品的购买详情。此方法使用 Google Play Store 应用程序的缓存,而无需发起网络请求。

这可能是原因。我尝试使用另一个功能 -queryPurchaseHistoryAsync也无济于事。根据文档

返回用户最近为每个 SKU 进行的购买,即使该购买已过期、取消或消费。

对于queryPurchaseHistoryAsync,没有purchaseState表示以下购买被取消!

{
  "productId": "note_list_promo",
  "purchaseToken": "djjneabakdaenkjafajbbclo.AO-J1OzbDNn5WkobYbSqLNzoBokm1F552-CqzfLQuNXK69bhxC-TnOTqdPV1RCl9T2okpSWfRD9RrE0eFhSN8glUbsOM5XUBDRnm_yK2Ohq_uyNuU17i1dc3CBhdeEn9uZCIfD3zY4tF",
  "purchaseTime": 1560501011137,
  "developerPayload": null
}
Run Code Online (Sandbox Code Playgroud)

谷歌真的应该提供一个非缓存版本的queryPurchases.

知道我做错了什么吗?在我发出退款后,我不希望用户可以继续使用付费功能。

android android-billing

11
推荐指数
1
解决办法
1609
查看次数

标签 统计

android ×1

android-billing ×1