​目前我使用服务器接收 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


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!