Google Play 开发者 API - 400 无效值 - InAppPurchases

2024-06-22

我的问题类似于this one https://stackoverflow.com/questions/35019357/google-play-developer-api-query-purchase-token-returns-invalid-value。但是,我正在使用API Java 客户端库 https://developers.google.com/api-client-library/java/apis/androidpublisher/v2使用服务帐户,从我的服务器调用 API。

我的代码如下this https://developers.google.com/identity/protocols/OAuth2ServiceAccount指南,非常简单。但是,我似乎无法收到适合我的请求的错误。这就是我建立我的AndroidPublisher:

val credential = GoogleCredential.fromStream(FileInputStream(
        "/path/to/json"
)).createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER))

androidPublisher = AndroidPublisher.Builder(httpTransport, JSON_FACTORY, credential)
        .setApplicationName(packageName)
        .build()

JSON 是从开发者控制台的服务帐户下生成的。这就是我提出要求的方式:

androidPublisher.purchases().subscriptions().get(packageName, "valid-sku", "invalid-token").execute()

我的订阅 ID 有效,但我的令牌无效。我预计响应中会出现诸如“无效令牌”之类的错误。然而,我得到的是:

com.google.api.client.googleapis.json.GoogleJsonResponseException: 400 Bad Request
{
  "code" : 400,
  "errors" : [ {
    "domain" : "global",
    "message" : "Invalid Value",
    "reason" : "invalid"
  } ],
  "message" : "Invalid Value"
}

这是由于令牌无效而导致的一般错误还是身份验证问题?如果是身份验证问题,我该如何解决?如果是无效令牌问题,我怎么知道?

更多信息:

  • 当尝试从 API Explorer 进行该调用时,我也遇到了同样的错误(这次使用客户端 ID 和 API 密钥而不是服务帐户)。
  • I have not委派对服务帐户的域范围访问。由于某种原因我必须这么做吗?
  • 我可以成功制作其他电话到 API,例如inappproducts.list https://developers.google.com/android-publisher/api-ref/inappproducts/list

根据我的经验,如果你有HTTP 400错误与Invalid Value那么购买或订阅就是FRAUD.

您可以查看这些购买的订单 ID 部分。大概的格式是XXXXXXXXXXXX.XXXXXXXXXXXX这是错误的并且应该是GPA.XXXX.XXXXX.XXXXX.XXX

  • 我并没有真正计算 X 字符的数量。我只是添加来展示逻辑。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Google Play 开发者 API - 400 无效值 - InAppPurchases 的相关文章

  • Lombok 如何将代码生成到现有类中? [复制]

    这个问题在这里已经有答案了 我可以使用注释处理器从头开始生成类 但我无法像 lombok 那样修改类 我在 android studio 中搜索了 lombok 生成的类 但是我什么也没找到 然后我通过他们的网站检查了龙目岛概述 还在论坛中
  • 多线程以原子方式对大量值求和

    我正在开发一个应用程序 其中有大量线程 并且必须自动添加 100 个值 我在用AtomicLong效果很好 但仍需要提高性能 有没有比 AtomicLong 提供更好性能的东西 您可以使用长加法器 https docs oracle com
  • Eclipse + Spring Boot 中“抛出 new SilentExitException()”处的断点

    每次我在 Eclipse IDE Spring Tool Suite 中以调试模式运行 Spring Boot 项目时 线程都会停止在throw new SilentExitException 即使没有断点也行 有什么解决方案可以避免这种行
  • CameraX:将照片捕获为位图

    我正在尝试使用护目镜CameraX示例应用程序 CameraXBasic 可以在 Github 上找到 并且希望将图像捕获为位图 以便能够在保存图像之前对图像进行一些修改 有人对如何实现这一目标有建议吗 请参阅下面的Google原始代码来捕
  • 为什么在Java中读取易失性和写入字段成员是不可扩展的?

    观察以下用 Java 编写的程序 完整的可运行版本如下 但程序的重要部分在下面的代码片段中 import java util ArrayList A not easy to explain benchmark class MultiVola
  • 限制执行第三方软件的线程的权限

    我正在开发一个基于 Eclipse 的应用程序 能够执行第三方组件 不是 eclipse plugin 每个组件都有一个列出权限 以及相应动机 的自定义描述符 这样最终用户可以决定是否执行它 组件在单独的线程中执行 如何根据描述符限制这些线
  • uniVocity 不会将第一列解析为 beans

    我试图在 uniVocity parsers 的帮助下从 GTFS zip 读取 CSV 文件 但遇到了一个我无法解决的问题 由于某种原因 某些 CSV 文件的第一列似乎无法正确解析 例如 在 stops txt 文件中 如下所示 stop
  • 在Java中,为什么equals()和hashCode()必须一致?

    如果我重写类上的任一方法 它必须确保如果A equals B true then A hashCode B hashCode也一定是真的 有人可以给我看一个简单的例子 如果违反了这一点 就会导致问题吗 我认为这与您是否使用该类作为 Hash
  • 在java中将HTML转换为RTF?

    我需要将 HTML 转换为 RTF 我正在使用以下代码 private static String convertToRTF String htmlStr OutputStream os new ByteArrayOutputStream
  • 问题:将大数据传递给第二个 Activity

    我有一个奇怪的问题 我在网上浏览但没有找到答案 我仍然是android编程的初学者 那么让我们开始吧 我想做的就是用一些数据调用第二个活动 它适用于小数据 但如果数据变大 第二个 Activity 将不会显示 第一个 Activity 将完
  • 如何将堆栈跟踪转换为字符串?

    转换结果的最简单方法是什么Throwable getStackTrace 到描述堆栈跟踪的字符串 Use Throwable printStackTrace PrintWriter pw https docs oracle com java
  • Spring Data JPA 规范继承

    我有三个实体 如下所示 Entity Inheritance strategy InheritanceType JOINED DiscriminatorColumn name type public abstract class Emplo
  • 自动装箱是否调用 valueOf()?

    我试图确定以下陈述是否保证为真 Boolean true Boolean TRUE Boolean true Boolean valueOf true Integer 1 Integer valueOf 1 我一直认为自动装箱相当于调用va
  • java应用程序,线程在终止MySQL连接后挂起

    我有一些工作线程正在运行 其中包括 MySQL 和 mysql connector java 5 1 20 当我杀死一些 SQL 语句 使用 mysql 客户端的kill 连接id 时 java线程挂起 这应该抛出一些异常 jstack 打
  • 为什么 (Oracle) JVM 对内存使用有固定上限 (-Xmx)?

    本着提问的精神Java 为什么存在 MaxPermSize https stackoverflow com questions 3356005 java why does maxpermsize exist 我想问一下为什么Oracle J
  • JRuby调用了错误的方法

    我在调用 Java 方法时遇到了一个奇怪的问题JRuby http en wikipedia org wiki JRuby 在我的 Java 类中 这些方法定义了两次 看来 JRuby 调用了错误的方法 所以我尝试使用java method
  • 在同步子句中抛出异常的副作用?

    从同步子句中抛出异常是否有任何不清楚的副作用 锁会发生什么情况 private void doSomething throws Exception synchronized lock doSomething 我没有看到任何副作用 The 锁
  • Java中有没有办法随机获取HashMap的值?

    Java中有没有办法随机获取HashMap的值 这有效 Random generator new Random Object values myHashMap values toArray Object randomValue values
  • 在 Ubuntu 上的 Tomcat 中加载共享本机库

    如何在 Ubuntu 上的 Tomcat6 中加载共享库 我创建了一个名为 libawragrids so 的库 awragrids 并将其放置在 var lib tomcat6 shared 我在调用启动 tomcat 的终端中设置了以下
  • GridLayout 中的 JLabel

    如何添加JLabel出于GridLayout 我有一个 8x8 网格布局 Container content getContentPane content setLayout new GridLayout 8 8 2 2 for int f

随机推荐

  • iPad 方向检查 UIView 类?

    我有一个UIView我添加到我的主类中的类UIViewController我需要在应用程序启动时检查设备 iPad 的方向 在viewDidLoad方法 然而 由于该类是一个UIView not UIViewController 我不能使用
  • 使用 multers3 node.js 将图像上传到 DigitalOcean Spaces 时出现 SignatureDoesNotMatch:null 错误

    Error code SignatureDoesNotMatch extendedRequestId undefined message null name SignatureDoesNotMatch region null Load de
  • NUnit辅助线程异常

    我正在测试启动辅助线程的代码 并且这个线程有时会抛出异常 我想编写一个测试 如果没有正确处理该异常 该测试就会失败 我已经准备好了该测试 我在 NUnit 中看到的是 LegacyImportWrapperTests Import Exce
  • React 漂亮的 DnD- 嵌套列表,但无需在父列表之间拖动

    我目前正在尝试使用 React Beautiful DnD 创建一个可拖动的容器对象列表 在这些对象中 我还构建了可拖动元素的子列表 我知道该库在技术上不支持嵌套列表 但我已经看到了许多解决方法 并且我相信我的用例比大多数用例更简单 因为我
  • 清除 PHP CLI 输出

    我正在尝试在我的 php CLI 应用程序上使用 实时 进度指示器 而不是输出为 1Done 2Done 3Done 我宁愿它清除并只显示最新结果 系统 命令 C CLS 不起作用 ob flush flush 或我发现的其他任何东西也没有
  • MFC - 显示对话框后立即执行代码(.NET 相当于 Form.Shown)

    我正在对 C MFC 项目进行一些小的更改 我是 NET 开发人员 因此 Windows 编程对我来说是新的 我需要在 CDialog 第一次完全显示 绘制 后立即启动一些方法 但仅一次 我怎样才能做到这一点 在 NET中我会处理表格所示
  • Golang 有 libfaketime 替代品吗?

    我想自动化一些测试 我必须操纵系统时间来检查用 golang 编写的程序的身份验证行为 根据这个帖子 https stackoverflow com questions 36024872 libfaketime doesnt work wi
  • 如何生成0到1之间的随机数?

    我想生成 0 1 之间的随机数 我正在尝试以下操作 double r2 return rand 10000 10000 0 int SA double u u r2 但它不会产生预期的结果 我该如何修复它 在你的版本中rand 10000将
  • Json 数组的 Avro 架构

    假设我有以下 json id 1 text some text user id 1 id 1 text some text user id 2 对于这个对象数组来说 合适的 avro 模式是什么 简短回答 该对象数组的适当 avro 架构如
  • 当我调用 fillRoundRect() 时,只有 1 个角被圆化

    当运行此代码时 import java awt Color import java awt Graphics import java awt Graphics2D import java awt RenderingHints import
  • useEffect 钩子加载数据两次,我的意思是它运行了两次[重复]

    这个问题在这里已经有答案了 我正在尝试将数据加载到我的App js文件从后端反应 我使用 redux 构建了从后端到前端的整个数据获取和存储管道 这是代码 function App const dispatch useDispatch us
  • WordPress api v2 按标签过滤帖子

    如何使用 wordpress api v2 获取特定标签的所有帖子 例如 我有一个 ID 为 24 的标签 programming 如何获取包含此 id 的所有帖子 我试过了 wp json wp v2 posts filter tag 2
  • 如何提高PHP性能?

    我已经为 Facebook 创建了 PHP 应用程序 它使用 MySQL Memcached 并在 Centos 2 6 Ghz 和 2 GB RAM 上的 Lighttpd 上运行 它基本上是一个 PHP 文件 第一次运行后会被缓存 每次
  • 在 NestedScrollView 内部时,回收器视图对于大数据加载速度非常慢

    我已经添加了RecyclerView在我的里面NestedScrollView 基本上我希望 RecyclerView 与其他视图一起滚动 我面临的问题是 对于一小部分数据 它工作正常 但对于大量数据 200 个条目 每当我启动活动时 它都
  • MySQL C++ 连接器:获取 insert_id

    我正在使用 mysql 连接器 C 我的表中有一个 auto increment 列 我想在执行插入操作时获取插入 id 有人知道如何得到它吗 谢谢 我的代码是这样的 conn gt setAutoCommit 0 pstmt reset
  • 如何在桌面应用程序中使用 ZeroMQ

    我正在开发一个桌面应用程序 该应用程序部署在Windows和Mac平台上 作为应用程序的一部分 它应该与本机层进行通信 目前本机层和Java层之间的通信是使用套接字完成的 最近团队中有人建议使用zeroMQ 你们中的任何一位都可以澄清我的疑
  • 如何从 DateTime 获取 12 小时日期

    当我获得 DateTime Hour 属性时 我总是获得 24 小时时间 因此 6PM 会给我 18 我如何获得 12 小时 时间 这样 6PM 就给了我 6 我显然可以自己进行检查 但我假设有一个内置函数可以做到这一点 怎么样 DateT
  • UITableView cellForRowAt 中的 API 异步调用

    我有 UITableView 来显示文件列表 每个文件名都使用特定的代码组合进行编码 为了获得真实的文件名 我必须使用当前文件名调用我的服务器端 是否可以在 cellForRowAt indexPath 表视图委托函数上调用此类操作 var
  • 动态添加新选项卡到 mat-tab-group

    我正在使用 Angular v8 和 Angular Materials 特别是 mat tab group 和 mat tab 我想要像下面这样的东西 我希望能够单击 看起来像一个选项卡 结果是它将创建一个新选项卡 单击 后 我们将看到如
  • Google Play 开发者 API - 400 无效值 - InAppPurchases

    我的问题类似于this one https stackoverflow com questions 35019357 google play developer api query purchase token returns invali