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("订单未支付!");
}
相关推荐
Helix25018 小时前
Chrome 性能优化实战:内存节省、硬件加速与 Flags 设置,让浏览器更流畅
chrome·google·性能优化·内存占用·硬件加速·设置技巧·浏览器优化
Helix25021 小时前
Chrome 标签页管理术:分组、固定、搜索与恢复,告别标签页混乱
chrome·google·分组·标签页管理·固定标签·标签页恢复
Helix2502 天前
Chrome 快捷键效率提升:10 个常用快捷键,把浏览速度提升一个量级
chrome·google·浏览器·使用技巧·效率工具·快捷键·爆红教程
不老刘4 天前
Antigravity 应用登录/token 交换超时 · 排查速查笔记
google·antigravity·反重力
seowmt6 天前
结构化数据和自然语言描述哪个更管用?答案分场景
人工智能·google·typescript·go语言·schema
ShineWinsu6 天前
对于ProtoBuffer:ProtoBuffer的介绍以及安装
linux·网络·google·协议·序列化·反序列化·protobuffer
wangruofeng18 天前
Pro 七个月没转正,Flash 四个月连发四代 Stable,写代码怎么选?拆解 Gemini 两条产品线分化逻辑。
google·aigc·ai编程
XLYcmy23 天前
ReasoningBank: Scaling Agent Self-Evolving with Reasoning Memory论文阅读
论文阅读·google·llm·agent·记忆·harness·自进化
亚林瓜子1 个月前
Google的编程Agent:antigravity CLI自动模式
ai·google·spec·coding·cli·auto·agy
小满zs1 个月前
Go语言第十章(指针)
后端·google·go