Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/212.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Android 无法使用购买。订阅:确认以确认订阅_Android_Google Play_In App Purchase_Google Play Developer Api - Fatal编程技术网

Android 无法使用购买。订阅:确认以确认订阅

Android 无法使用购买。订阅:确认以确认订阅,android,google-play,in-app-purchase,google-play-developer-api,Android,Google Play,In App Purchase,Google Play Developer Api,​目前,我使用服务器接收GCP发布/订阅消息,我想执行购买。订阅:确认呼叫,确认服务器收到通知时尚未确认的订阅 以下是场景… 用户购买30天的订阅,然后升级到1年。 在服务器端,当30天的订阅期即将到期时,将收到升级事务的通知。当服务器使用Purchase.Subscription:Get检索信息时,您可以看到此升级事务的acknowledgeState为0,因此服务器调用Purchase.Subscription:Acknowledge来确认此事务,但问题是它返回一条错误消息,说明“认购购买不

​目前,我使用服务器接收GCP发布/订阅消息,我想执行
购买。订阅:确认
呼叫,确认服务器收到通知时尚未确认的订阅

以下是场景…
用户购买30天的订阅,然后升级到1年。 在服务器端,当30天的订阅期即将到期时,将收到升级事务的通知。当服务器使用
Purchase.Subscription:Get
检索信息时,您可以看到此升级事务的acknowledgeState为0,因此服务器调用
Purchase.Subscription:Acknowledge
来确认此事务,但问题是它返回一条错误消息,说明“认购购买不归使用方所有”

以下是错误消息的外观: ​

有人有同样的问题吗


另一个信息是,在Android应用程序中,我在BillingFlowParams类中将“按比例分配模式”设置为“延迟”,这就是为什么我无法立即在应用程序中确认新交易的原因,因为新交易的状态尚未购买,我只能在服务器端进行确认。

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

文中提到了如何整合这一点

看看下面的链接,这些可能会给你更多的信息


我们也面临着同样的问题。我们尝试在用户以延迟模式更改订阅后立即调用确认API,也尝试在商店激活新订阅后立即调用确认API。在这两种情况下,我们都得到了相同的
productNotOwnedByUser
错误。最终,3天后,订阅成功由于未得到承认,将撤销这项承诺

我们联系了谷歌支持团队,他们已经确认这是他们方面的一个问题。他们也正在对此进行修复。同时,他们已经为我们禁用了退款,这意味着如果更改的订阅未被确认,它将不会被撤销,但用户将继续使用相同的订阅。尽管我不确定他们是否已启用d这是针对我们的账户或全球的

更新:
谷歌已经确认他们已经解决了这个问题,现在可以使用了。我们已经测试并验证了同样的问题,它可以正常工作。

在变更计划实际发生后,即当前订阅结束后,您是否尝试过确认购买。这可能不是一个现实的解决方案,但仍然想知道行为。当您您是否尝试在过期后确认购买?我遇到了同样的问题。请仔细检查一下。。
{
    "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."
    }
}