GooglePay退款Api接入

  • GooglePay退款Api接入准备工作
    • mavne依赖
    • 代码
    • 遇到的大坑
    • 参考文档

GooglePay退款Api接入准备工作

(1)在GooglePay 主体账户下创建服务账号,保存秘钥(json),并给服务账号添加应用以及应用权限,给服务账号分配账号权限(建议直接给管理员,必须要有财务权限),细节可以参考其他博客,大佬们有详细介绍,我就不累赘了.
注意:申请的服务账号不是立即生效的,官方给的说法是24小时左右,网上说可以通过在应用类新建计费点(随便建一个,后续删除即可)的方式,强制刷新.可以缩短到几分钟生效.

mavne依赖

 <!-- google pay 依赖 --><dependency><groupId>com.google.api-client</groupId><artifactId>google-api-client</artifactId><version>1.32.1</version></dependency><dependency><groupId>com.google.auth</groupId><artifactId>google-auth-library-oauth2-http</artifactId><version>0.26.0</version></dependency><dependency><groupId>com.google.apis</groupId><artifactId>google-api-services-androidpublisher</artifactId><version>v3-rev20210605-1.32.1</version></dependency>

代码

//你下载的json秘钥的地址
private final static String keyPath =""
//包体在google商店的包名(com开头的)
private final static String packageName =""public static void main(String args[]) {AndroidPublisher androidPublisher = getAndroidPublisher();VoidedPurchasesListResponse voidedPurchasesListResponse =null;try {voidedPurchasesListResponse = androidPublisher.purchases().voidedpurchases().list(packageName).execute();Sys} catch (IOException e) {e.printStackTrace();}System.out.println(voidedPurchasesListResponse);}public static AndroidPublisher getAndroidPublisher(){ClassPathResource classPathResource = new ClassPathResource(keyPath);GoogleCredentials credentials = null;try {credentials = GoogleCredentials.fromStream(classPathResource.getInputStream())//给权限.根据官方文档;https://www.googleapis.com/auth/androidpublisher.createScoped(AndroidPublisherScopes.ANDROIDPUBLISHER);} catch (IOException e) {e.printStackTrace();}AndroidPublisher androidPublisher = null;try {androidPublisher = new AndroidPublisher.Builder(GoogleNetHttpTransport.newTrustedTransport(),GsonFactory.getDefaultInstance(),new HttpCredentialsAdapter(credentials)).build();} catch (GeneralSecurityException e) {e.printStackTrace();} catch (IOException e) {e.printStackTrace();}return androidPublisher;}

遇到的大坑

{ "code": 403,"errors": [{ "domain": "androidpublisher","message": "The current user has insufficient permissions to perform the requested operation.","reason": "forbidden"}],"message": "The current user has insufficient permissions to perform the requested operation."
}

是由于当时查询退款的时间的时候,手抽,选择的20207月的订单,导致反馈的这个错误,开始一直以为是授权失败的问题,结果是查询范围没有权限.其实权限是通的.给自己的警醒,后续做第三方api时,最开始后的时候从最简单方案的开始.慢慢来.

参考文档

官方文档:
https://developers.google.com/identity/protocols/oauth2
https://developers.google.com/android-publisher/api-ref/rest/v3/purchases.voidedpurchases/list
https://developers.google.com/identity/protocols/oauth2/service-account

各位大佬博客:
https://www.jianshu.com/p/6ce1d630d4be

接入GoogePay 退款APi相关推荐

  1. 【chrome插件】web版微信接入图灵机器人API实现自动回复

    小贱鸡自动回复API已经不可以用了,现在改良接入图灵机器人API 360chrome浏览器团队翻译了部分谷歌插件开发文档 地址:http://open.chrome.360.cn/extension_ ...

  2. 支付宝商家二维码收款、订单状态查询、退款API试用笔记

    情景 商家的app或商城支持支付宝支付,支付的方式是商家根据商品价格生成相应的付款二维码,用户扫码付款,同时商家需要查看支付订单状态,备货出货,当然还要支持退款. 准备测试环境 1.开通开发者服务 用 ...

  3. html插入地图的方法,JavaScript接入百度地图API的方法步骤

    一.百度地图API接入 1.搜索百度地图开发平台 2.注册百度账号 3.登陆并申请成为开发者 4.在百度地图开发平台的首页选择控制台,在控制台中创建应用 创建好应用以后就能在控制台我的应用中看到这个应 ...

  4. 微信退款------API操作

    这个是微信退款api 可以直接复制去测试.如果没有问题可以直接封装自己的方法 package com.huanuan.zl.order.weixin;import java.io.InputStrea ...

  5. java 接入百度地图api

    先打开接入百度地图API 官网 http://lbsyun.baidu.com/ 然后点击 开发者文档 → web服务API 如果是第一次打开 则要填写信息 验证码一堆- 如果已经注册过了,则进入这一 ...

  6. 微信上的Siri:小i机器人首次接入微信语音API

    微信上的Siri:小i机器人首次接入微信语音API 不久前我们曾介绍过微信开放系统API,首次和印象笔记合作,可以将聊天内容无缝保存到印象笔记.除印象笔记外,智能语音助手小i机器人也是首批获得微信系统 ...

  7. uni-app微信小程序接入皮卡智能api进行抠图操作

    1.接入皮卡智能api容易踩坑,切记!!!!!! 2.可以传二进制流的接口不一定要通过request formdata去请求 可以使用uploadFile api去发起请求 uni.chooseIma ...

  8. java接入支付宝支付api

    https://b.alipay.com/登录支付宝商家服务开通支付,进入开放平台,查看开放平台密钥的APPID(应用ID),应用公钥,支付宝公钥,授权回调地址. 初次支付可能还没有设置应用密钥,可以 ...

  9. java接入支付宝网站api

    由于个人账号权限不够,使用了沙箱环境https://openhome.alipay.com/platform/appDaily.htm 具体的公钥,私钥就不具体说明,支付宝接入文档会提示的 其次下载支 ...

最新文章

  1. keras merge
  2. HttpSessionListener监听Session的创建和失效
  3. 【重大更新】DevExpress v17.1新版亮点(ASP.NET篇)
  4. 3.爱跑步的蜗壳人动态(下同)
  5. H3C 使用命令视图
  6. ping tracert over TCP
  7. laravel框架连接Oracle,laravel5.8(十四)连接oracle数据库
  8. switch 大气层双系统 进入破解系统 及安装nsp nsz 格式教程
  9. Windows Server 2008 R2 学习笔记——VMware Workstation中服务器(Windows Server 2008 R2)与客户机(Windows 7)的安装
  10. 工商银行网银支付问题 有网站想要安装以下加载项 来自Industrial and Commercial Bank of China Limited‘ 第三方支付机构上送网联跳转报文请求参数错误
  11. ssl2206 最小花费
  12. js:写一个函数实现任意数组的翻转
  13. 操作系统有哪些.智能手机的操作系统有哪些?
  14. NR PRACH(一)Preamble的确定
  15. 算法问题:整数除法详解(Java方向)
  16. 【毕业设计源码】基于微信小程序的查寝系统的设计与实现
  17. Ubuntu aria2c 下载
  18. 结构化 VS 非结构化
  19. 好久不见——洗尽铅华后的释然放手
  20. javascript中使用枚举定义一个对象进行数据转换

热门文章

  1. 敦煌莫高窟唐代离婚协议书曝光 用词浪漫煽情
  2. 多伦多大学计算机科学选课,多伦多大学选课攻略 帮你彻底摆脱选课恐惧症!(内含福利)...
  3. Facebook SDK For Unity
  4. 乔治亚理工学院计算机专业排名,乔治亚理工学院专业排名及优势专业推荐(2020年USNews美国大学专业排名)...
  5. jQuery整理笔记七----几个经典表单应用 .
  6. 【SCI】SCI投稿必知必会(长期更新)
  7. 向控件拖放数据,不积硅步无以至千里
  8. js根据出生日期 计算岁数
  9. dji Tello edu 开发
  10. RT5350使用uboot从U盘启动linux成功