目前我使用服务器接收 GCP Pub/Sub 消息,我想执行 Purchase.Subscriptions:acknowledge调用以确认在服务器收到通知时尚未确认的订阅。
这是场景...
用户购买订阅 A,订阅期限为 30 天,然后升级到订阅期限为 1 年。
在服务器端,将在 30 天订阅期即将到期时收到升级交易的通知。当服务器使用 Purchase.Subscription:Get 检索信息时可以看到这个升级事务的确认状态为0,所以服务器调用Purchase.Subscription:Acknowledge确认此交易,但问题是它返回一条错误消息,指出“订阅购买不归用户所有”。
以下是错误消息的样子:
{
"error": {
"errors": [
{
"domain": "androidpublisher",
"reason": "subscriptionNotOwnedByUser",
"message": "The subscription purchase not is owned by the user."
}
],
"code": 400,
"message": "The subscription purchase not is owned by the user."
}
}
有没有人有同样的问题?
其他信息是在Android App中,我将proration mode设置为
DEFERRED在 BillingFlowParams 类中,这就是为什么我不能立即在 App 中确认新交易,因为新交易的状态尚未购买,我只能在服务器端进行确认。
请您参考如下方法:
如果您正在实现 Purchase.Subscription:Acknowledge购买对象现在包含一个 isAcknowledged()指示是否已确认购买的方法。此外,服务器端 API 现在包括 Product.purchases.get() 的确认 bool 值。和 Product.subscriptions.get() .在确认购买之前,请务必使用这些方法来确定购买是否已被确认。
提到了如何集成 here
看看下面的链接,这些可能会给你更多的信息。
https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/acknowledge
https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get




