无法使用Purchase.Subscription:确认确认订阅

Kev*_* Tu 5 android in-app-purchase google-play google-play-developer-api

当前,我使用一台服务器来接收GCP发布/ Purchase.Subscriptions:acknowledge订阅消息,并且我想执行一次呼叫以确认在服务器收到通知后尚未确认的订阅。

这是方案...
用户购买订阅A,期限为30天,然后升级到1年。在服务器端,当30天期限的订阅即将到期时,将收到升级交易的通知。当服务器使用检索信息时,Purchase.Subscription:Get您可以看到此升级后的交易的acceptState为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."
    }
}
Run Code Online (Sandbox Code Playgroud)

有人有同样的问题吗?

另一个信息是,在Android App中,我DEFERRED在BillingFlowParams类中将按比例分配模式设置为,这就是为什么我不能立即在App中确认新交易的原因,因为新交易的状态尚未被购买,我可以仅在服务器端进行确认。

小智 2

如果您正在实现Purchase.Subscription:AcknowledgePurchase对象,那么现在包含一个isAcknowledged()方法来指示购买是否已被确认。此外,服务器端 API 现在包括Product.purchases.get()和 的确认布尔值Product.subscriptions.get()。在确认购买之前,请务必使用这些方法来确定购买是否已被确认。

这里提到了如何集成这个

请查看下面的链接,这些链接可能会为您提供更多相关信息。

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/acknowledge

https://developers.google.com/android-publisher/api-ref/purchases/subscriptions/get