伸手系列-谷歌google支付-java
伸手系列直接上代码
服务器端只处理回验以及 验证成功后的 交易记录以及道具添加逻辑
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相关推荐
- 伸手系列-苹果apple退款-java
在管理后台填写你的接口地址,苹果apple会主动通知你 @RestController @RequestMapping("/api/refund") public class Re ...
- 微信支付-java实现微信支付-后端篇
微信支付系列文章 微信支付-java后端实现 微信支付-vue 前端实现 java demo: 下载地址文章底部 技术栈 Spring boot java XML (微信在http协议中数据传输方案) ...
- java微信支付v3系列——5.微信支付成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——6.微信支付查询订单API
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——1.微信支付准备工作
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——7.微信支付之申请退款
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- java微信支付v3系列——8.微信支付之退款成功回调
目录 java微信支付v3系列--1.微信支付准备工作 java微信支付v3系列--2.微信支付基本配置 java微信支付v3系列--3.订单创建准备操作 java微信支付v3系列--4.创建订单的封 ...
- 谷歌play支付_Google Play的新功能
谷歌play支付 Google mentioned that in the last 21 months, there have been 116 billion downloads of the a ...
- 关于Google Pay JAVA后端处理
Google Pay JAVA后端处理 前言:最近接了个需求,关于谷歌支付的处理流程.觉得有必要记录下来,在网上也找了很多资料,不 全.怎么个不全法呢? *第一:很多人用的方法就是使用谷歌的publi ...
最新文章
- linux下安装libsvm_Linux下libsvm的安装及简单练习
- Android网络连接异常处理方案
- postfix+mysql+dovecot
- C#和Java在重写上的区别
- dataframe数据标准化处理_数据处理中的标准化、归一化究竟是什么?
- openssl windows安装
- 3 PP配置-一般设置-检查计量单位
- 心情随笔——2012121
- bzoj1051 [HAOI2006]受欢迎的牛
- MySQL下载安装、配置与使用(win7x64)
- jquery-ajax请求.NET MVC 后台
- error: Zip file too big (greater than 4294959102 bytes)
- 经验分布函数(Empirical Distribution Functions)
- 重复抽样与不重复抽样的抽样平均误差大小?
- android 渠道配置manifest,Android studio 配置多渠道打包配置
- 文件 或者 图片 与 base64 之间的转换
- pyhton 网络爬取软考题库保存text
- Python evel函数
- Java知识点梳理思维导图
- 【SSH 出现PTY错误】