伸手系列直接上代码

服务器端只处理回验以及 验证成功后的 交易记录以及道具添加逻辑

1.Controller

 public BaseResponse androidPay(@RequestBody GooglePayDto googlePayDto){String productId=googlePayDto.getProductId();String orderId=googlePayDto.getOrderId();String purchaseToken=googlePayDto.getPurchaseToken();String email="xxpay@pc-api-5677xxxxxxx-94.iam.gserviceaccount.com";try {//初始化身份googleConfig.getJsonpath()是证书地址GoogleCredential credential = GoogleCredential.fromStream(new FileInputStream(googleConfig.getJsonpath())).createScoped(AndroidPublisherScopes.all());//createScoped给令牌访问权限设置使用的权限范围//credential.refreshToken();//注意这里if(credential==null) {logger.error("Get GoogleCredential fails获取谷歌凭证失败!");}HttpTransport httpTransport = GoogleNetHttpTransport.newTrustedTransport();JacksonFactory JSON_FACTORY = JacksonFactory.getDefaultInstance();AndroidPublisher publisher = new AndroidPublisher.Builder(httpTransport, JSON_FACTORY, credential).build();AndroidPublisher.Purchases.Products products = publisher.purchases().products();AndroidPublisher.Purchases.Products.Get product = products.get("com.shierke.umeapp", productId,purchaseToken);ProductPurchase purchase= product.execute();if(purchase!=null) {if (purchase.getPurchaseState() == 0)//0. Purchased 1. Canceled 2. Pending{if (purchase.getConsumptionState() == 1)//0. Yet to be consumed 1. Consumed{if(purchase.getPurchaseType().equals(0)){logger.info("沙盒环境谷歌返回JSON:"+purchase.toString());}if (!vipOrdrService.isExist("android", orderId)) {处理业务逻辑return ReturnResponseUtil.Success("验证成功!",null);}elsereturn ReturnResponseUtil.Error(ReturnResponseUtil.BUSSINESS_ERROR, "数据库保存订单失败");}elsereturn ReturnResponseUtil.Error(ReturnResponseUtil.BUSSINESS_ERROR, "android请勿重复消费");//}else{return ReturnResponseUtil.Error(ReturnResponseUtil.BUSSINESS_ERROR,"订单未支付");}}else{return ReturnResponseUtil.Error(ReturnResponseUtil.BUSSINESS_ERROR,"订单未支付");}}elsereturn ReturnResponseUtil.Error(ReturnResponseUtil.BUSSINESS_ERROR,"支付失败purchase为空");// 通过consumptionState, purchaseState可以判断订单的状态}catch (Exception ex){ex.printStackTrace();logger.info(ex.getMessage());}return null;}

附上https://github.com/TianM/ApplePayAndGooglePay

伸手系列-谷歌google支付-java相关推荐

  1. 伸手系列-苹果apple退款-java

    在管理后台填写你的接口地址,苹果apple会主动通知你 @RestController @RequestMapping("/api/refund") public class Re ...

  2. 微信支付-java实现微信支付-后端篇

    微信支付系列文章 微信支付-java后端实现 微信支付-vue 前端实现 java demo: 下载地址文章底部 技术栈 Spring boot java XML (微信在http协议中数据传输方案) ...

  3. java微信支付v3系列——5.微信支付成功回调

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  4. java微信支付v3系列——6.微信支付查询订单API

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  5. java微信支付v3系列——1.微信支付准备工作

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  6. java微信支付v3系列——7.微信支付之申请退款

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  7. java微信支付v3系列——8.微信支付之退款成功回调

    目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...

  8. 谷歌play支付_Google Play的新功能

    谷歌play支付 Google mentioned that in the last 21 months, there have been 116 billion downloads of the a ...

  9. 关于Google Pay JAVA后端处理

    Google Pay JAVA后端处理 前言:最近接了个需求,关于谷歌支付的处理流程.觉得有必要记录下来,在网上也找了很多资料,不 全.怎么个不全法呢? *第一:很多人用的方法就是使用谷歌的publi ...

最新文章

  1. CCF201809(Java)
  2. Mac上安装create-react-app
  3. .NET Core 使用 grpc 实现微服务
  4. 文件上传 java 完美,vue+java实现文件上传(excel等),会出现跨域问题,直接用form表单提交就不会有问题了(new FormData())...
  5. 栈应用_计算按运算符优先级分布的算式(代码、分析、汇编)
  6. 一、在vue项目中使用mock.js(详解)
  7. cad vba编程从入门到精通_【CAD教程】CAD2020零基础入门到精通全套视频教程
  8. 终端仿真程序_SecureCRT for mac(终端SSH工具)
  9. 如何使用 SQL Server FILESTREAM 存储非结构化数据?
  10. .com才是顶级域名,baidu.com是二级域名
  11. 阿里云对象存储OSS有什么功能?
  12. 戴维斯计算机科学值得读吗,2018加州大学戴维斯分校计算机科学专业基本信息详细解读...
  13. 更换CSDN博客皮肤
  14. 联筑赚:我国盘扣式脚手架行业发展概况与展
  15. 2021-04-15 kk日记,415系统支持战况总结
  16. python读取word文件并替换部分文字_python批量替换
  17. JavaScript 有趣的冷知识:tagged template literals
  18. 3.ConcurrentMap-并发Map
  19. 冯诺依曼计算机主机,冯诺依曼结构计算机包括哪五大部分?
  20. Python+Vue计算机毕业设计大数据在线考试系统在线阅卷系统及大数据统计分析7o33p(源码+程序+LW+部署)

热门文章

  1. 微信小程序开发的作用_分享微信小程序开发可以实现什么
  2. 基金定投的七大误区 影响你超过10%的年收益!
  3. leetcode/加减的目标值,给数组元素添加+或-号组成的表达式值=target的方案数
  4. Java内存溢出场景及解决办法
  5. python函数绘制表格_练习:使用python turtle制作表格
  6. 机器学习 之 最小二乘法,各种损失函数
  7. “基础-中级-高级”Java程序员面试集结,看完献出我的膝盖
  8. ec6110刷linux系统,华为DIIEC6110M_VER_C主板救砖纯净系统烧录固件包下载
  9. 怎样设计MindMapper中的导图结构
  10. 英国金融监管机构进一步审查ICO