android - 无法使用 Purchase.Subscription:acknowledge 来确认订阅
问题描述
目前我使用服务器接收 GCP Pub/Sub 消息,我想Purchase.Subscriptions:acknowledge
在服务器收到通知时执行调用以确认尚未确认的订阅。
这是场景...
用户购买订阅 A,订阅期为 30 天,然后升级为 1 年期。在服务器端,将在 30 天订阅期即将到期时收到升级交易的通知。由于服务器通过使用检索信息,Purchase.Subscription:Get
您可以看到此升级交易的确认状态为0,因此服务器调用Purchase.Subscription:Acknowledge
确认此交易,但问题是它返回错误消息说“订阅购买不是由使用拥有” .
以下是错误消息的样子:</p>
{
"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 应用程序中,我DEFERRED
在 BillingFlowParams 类中设置了按比例分配模式,这就是为什么我不能立即在应用程序中确认新交易,因为新交易的状态尚未购买,我可以只在服务器端进行确认。
解决方案
如果您正在实现Purchase.Subscription:Acknowledge
Purchase 对象,现在包含一个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
推荐阅读
- javascript - Javascript'元素必须是表格'
我正在使用这个表格排序器:https ://github.com/tristen/tablesort
但是,当我查看此页面时,我无法对列进行排序。Chrome 开发工具显示
Uncaught Error: Element must be a table
- java - Java - 函数分析
- java - 如何使用 gridlayout 设置 OnClick android cardview 示例
- jmeter - JMeter Graph - 为什么有更多线程时响应时间会降低
- angular - 在 Angular.io 项目中加载 worker pdf.woker.js 的正确方法,
- date - Yii2 掩码输入日期时间,dd-mm-yyyy hh:mm
- unix - 无法在 oracle 中解析 CRLF 文件
- c++ - C++2a 合约编程和编译器
- javascript - 将文本标签添加到 d3 节点此弯曲力布局
- python-3.x - Python Flask 分页错误:分页页面返回 404