我正在尝试在我的应用程序中实施应用程序内计费,除了退款之外,一切都很好。在过去的几天里,我一直在反对这一点,如果用户要求退款,似乎无法从应用程序方面知道。我希望能够在用户获得退款后撤销对一次性托管产品(删除广告)的访问权限。我没有使用后端,所以我依赖 Google Play API。
我尝试的是查询 Google Play API,queryPurchaseHistoryAsync
它会返回用户最近购买的列表。这似乎不起作用,因为在要求退款后购买仍然存在(在写这篇文章之前已经等待了一天)。
这是我所做的:
- 在真实设备上安装应用程序
- 购买应用内内容
- 验证应用是否解锁了内容
- 转到我的 Google Play 订单历史记录并为应用内商品申请退款
- 10 分钟后,交易被退回(完全没有我作为开发人员参与)
- 应用仍然提供付费内容
- 清理 Play 商店应用数据和缓存
- 应用仍然提供付费内容
所以任何用户都可以购买我的应用内产品,然后立即转到他的 Google Play 页面并要求退款?是我遗漏了一些明显的东西还是这个 API 是一场噩梦?
PurchaseState
枚举是
public @interface PurchaseState {
// Purchase with unknown state.
int UNSPECIFIED_STATE = 0;
// Purchase is completed.
int PURCHASED = 1;
// Purchase is waiting for payment completion.
int PENDING = 2;
}
我在这里没有看到任何与退款相关的内容,在我看来这是一个非常正常的用例,所以我仍然认为我缺少一些关键信息,我该怎么做?
谢谢你的帮助