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("订单未支付!");
}
相关推荐
kymjs张涛2 天前
零一开源|前沿技术周刊 #12
ios·google·github
程序员爱钓鱼3 天前
Go语言实战案例-实现分页查询接口
后端·google·go
小溪彼岸4 天前
如何从Google Colab 中下载文件
google
程序员爱钓鱼4 天前
Go语言实战案例-创建模型并自动迁移
后端·google·go
程序员爱钓鱼6 天前
Go语言实战案例:执行基本的增删改查
后端·google·go
程序员爱钓鱼6 天前
Go语言实战案例:连接MySQL数据库
后端·google·go
程序员爱钓鱼7 天前
Go语言实战案例:静态资源服务(CSS、JS、图片)
后端·google·go
程序员爱钓鱼7 天前
Go语言实战案例:接入支付宝/微信模拟支付回调接口
后端·google·go
程序员爱钓鱼8 天前
Go语言实战案例:简易图像验证码生成
后端·google·go
TechCampus10 天前
A2A 协议:让 AI Agent 之间真正“会说话”
人工智能·google