google pay谷歌支付java后端验证最新版

折腾了两天,终于搞定,简单不废话快速搞定 这个文章不会太详细,大部分内容其他教程都有,只是为了解决其他教程里面常见的两个问题:

1.为什么我的google play控制台上没有api-access页面? 现在已经不需要这个页面了,按照我的教程来配置就行了,不用到处找api-access页面了。

2.为什么按照教程还是提示下面的报错:

json 复制代码
{
  "code": 401,
  "errors": [
    {
      "domain": "androidpublisher",
      "message": "The current user has insufficient permissions to perform the requested operation.",
      "reason": "permissionDenied"
    }
  ],
  "message": "The current user has insufficient permissions to perform the requested operation."
}

这个也是大部分教程都不太对的地方,看我下面标红的位置即可。

1.google cloud 创建服务账号 google cloud控制台-api和服务-凭据-创建凭据-服务账号:

账号随便填,记住这个邮件地址,然后点下一步 下一步的角色选择owner,很多教程都选了Service Account Admin,是没用的,至少这个版本没用! 一定要选择owner。(就是这个地方浪费了我两天的时间) 否则就会出现文章开头的"The current user has insufficient permissions to perform the requested operation"问题

保存之后,创建秘钥:

创建密钥之后会生成一个json文件。这个json文件,是为了让你获取这个服务账号的token用的,具体代码如下:

java 复制代码
// GOOGLE_PAY_KEY_JSON 是json文件的具体地址
InputStream inputStream = Files.newInputStream(ResourceUtils.getFile(GOOGLE_PAY_KEY_JSON).toPath())

ttpTransport transport = GoogleNetHttpTransport.newTrustedTransport();
GoogleCredentials credential = ServiceAccountCredentials.fromStream(inputStream).createScoped(AndroidPublisherScopes.ANDROIDPUBLISHER);
HttpRequestInitializer requestInitializer = new HttpCredentialsAdapter(credential);
AndroidPublisher androidPublish = new AndroidPublisher.Builder(transport, GsonFactory.getDefaultInstance(), requestInitializer)
        .setApplicationName(packageName).build();

获取token之后,接下来就要调用对应的api去查询支付的结果

  1. google play权限配置

上面的服务账号配置好之后,要想调通api,还要配置好相应的权限 goole play控制台-用户和权限-邀请新用户

输入刚刚的服务账号的邮件,权限选管理员,图省事儿。(实际上只选择财务数据的那两个就行了) 点了保存之后,刚刚的服务账号就有对应的权限可以调通查询支付结果的api了,代码如下:

java 复制代码
AndroidPublisher.Purchases.Products products = publisher.purchases().products();
AndroidPublisher.Purchases.Products.Get product = products
        .get(packageName, productId, purchaseToken);

ProductPurchase purchase = product.execute();
if (purchase.getPurchaseState() != 0) {
    log.error("订单未支付!");
}
相关推荐
围巾哥萧尘16 小时前
使用 Nano-banana 完成全套 IP 制作提示词体系🧣
google
小溪彼岸18 小时前
Google百万Token上下文Gemini CLI,离AI自由更近一步
google·gemini
pc大老1 天前
优化浏览体验:4个设置让Google Chrome更好用!
chrome·google·谷歌浏览器·谷歌·浏览器设置
程序员爱钓鱼1 天前
Go语言实战案例 — 项目实战篇:任务待办清单 Web 应用
后端·google·go
程序员爱钓鱼2 天前
Go语言实战案例 — 项目实战篇:图书管理系统(文件存储)
后端·google·go
程序员爱钓鱼3 天前
Go语言实战案例 — 工具开发篇:编写一个进程监控工具
后端·google·go
程序员爱钓鱼4 天前
Go语言实战案例 — 工具开发篇:Go 实现条形码识别器
后端·google·go
云雾J视界5 天前
AI时代技术面试重构:谷歌如何用Vibe Coding与抗作弊革命重塑招聘
人工智能·google·面试·重构·谷歌·ai工具·技术面试
深度学习机器5 天前
Embedding Gemma,谷歌发布的小而精向量模型,仅需0.3B|附RAG实战代码
google·llm·openai
程序员爱钓鱼5 天前
Go语言实战案例 — 工具开发篇:Go 实现二维码生成器
后端·google·go