Google Pay主要支付流程

1.手机端向Java服务端发起支付,生成预订单,给手机端返回生成的订单号

2.手机端向Google发起支付(传入本地服务器生成的订单号)

3.Google服务器将支付结果返回给手机端(因这边用到的是消耗型的产品,所以购买后必须要通知gp我已经消耗了这次交易)

4.手机端向Java服务端发送校验请求,校验通过后即可处理订单(服务端重试校验,发货,保证订单正常发货成功)

配置

packageName:应用包名

例如:

credential:密钥

例如:

{"type": "service_account","project_id": "123456789526755524298661-783","private_key_id": "1234567890ac89f9c70f245f1798587ae9b7","private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvQASCBKcwggSjAgEAAoIBAQCX1kMC4Au/\n-----END PRIVATE KEY-----\n","client_email": "test02661-783.iam.gserviceaccount.com","client_id": "123456789","auth_uri": "https://accounts.google.com/o/oauth2/auth","token_uri": "https://oauth2.googleapis.com/token","auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs","client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/83.iam.gserviceaccount.com"}

credential获取步骤:

顺带提下需要设置下商品模板:

订单校验-响应结果

         {"resource": {object (ProductPurchase)}}ProductPurchase:{"kind": string, //这种表示 androidpublisher 服务中的一个 inappPurchase 对象"purchaseTimeMillis": string,//购买产品的时间,自纪元(1970 年 1 月 1 日)以来的毫秒数。"purchaseState": integer,//订单的购买状态。可能的值为:0. 已购买 1. 已取消 2. 待定"consumptionState": integer,//inapp产品的消费状态。可能的值为: 0. 尚未消耗 1. 已消耗"developerPayload": string,//包含有关订单的补充信息的开发人员指定的字符串。"orderId": string,//与购买 inapp 产品关联的订单 ID"purchaseType": integer,//inapp 产品的购买类型。仅当此购买不是使用标准应用内结算流程进行时才设置此字段。可能的值为: 0. 测试(即从许可测试帐户购买) 1. 促销(即使用促销代码购买) 2. 奖励(即通过观看视频广告而不是付费)"acknowledgementState": integer,//inapp 产品的确认状态。可能的值为: 0. 尚未确认 1. 确认"purchaseToken": string,//为识别此次购买而生成的购买令牌。"productId": string,//inapp 产品 SKU。"quantity": integer,//与购买 inapp 产品相关的数量。"obfuscatedExternalAccountId": string,//与您应用中的用户帐户唯一关联的 id 的混淆版本。仅在购买时使用https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedaccountid指定时出现。"obfuscatedExternalProfileId": string,//与您应用中的用户个人资料唯一关联的 id 的混淆版本。仅在购买时使用https://developer.android.com/reference/com/android/billingclient/api/BillingFlowParams.Builder#setobfuscatedprofileid指定时出现。"regionCode": string //授予产品时用户的 ISO 3166-1 alpha-2 计费区域代码。}

校验使用字段:

purchaseState = 0
acknowledgementState = 1

obfuscatedExternalAccountId = userId(此字段是由客户端在购买的时候上传给谷歌)

obfuscatedExternalProfileId = orderId(此字段是由客户端在购买的时候上传给谷歌)

服务端代码设计

借鉴:
android--GooglePay 谷歌支付内购接入(1)_怀化纱厂杨二狗的博客-CSDN博客_google pay 接入
Google内购 Java服务端(Springboot)校验订单详细流程_Simki的博客-CSDN博客_google支付 java
谷歌支付服务端服务账号订单校验_不eat鱼的猫的博客-CSDN博客_google pay 订单验证

谷歌支付(Java服务端)相关推荐

  1. 支付宝APP支付Java服务端

    支付宝APP支付Java服务端: 公司项目要求对接支付宝进行支付功能,这边做出整理方便以后使用(支付宝的支付对接还是很简单的). 1):去支付宝开放平台,-1.注册账号,2.创建应用 3.配置应用 4 ...

  2. 微信小程序支付java服务端集成采坑总结

    先上个微信小程序支付官方文档地址: https://pay.weixin.qq.com/wiki/doc/api/wxa/wxa_api.php?chapter=9_7&index=8 重点看 ...

  3. IOS IAP APP内支付 Java服务端代码

    场景:作为后台需要为app提供服务,在ios中,app内进行支付购买时需要进行二次验证. 基础:可以参考上一篇转载的博文In-App Purchase(iap)快速指南了解原理. 直接先上服务端测试通 ...

  4. 微信支付java服务端开发(APP)

    我这边是针对微信商户支付功能开发.其他的未涉及到. 当你所有的准备工作准备好后:微信支付申请成功,api_key 配置好,等等一系列. 那么让我们进入java开发吧. 微信支付demo下载: http ...

  5. 那些年,我们见过的 Java 服务端“问题”

    导读 明代著名的心学集大成者王阳明先生在<传习录>中有云: 道无精粗,人之所见有精粗.如这一间房,人初进来,只见一个大规模如此.处久,便柱壁之类,一一看得明白.再久,如柱上有些文藻,细细都 ...

  6. JAVA服务端实现页面截屏(附代码)

    JAVA服务端实现页面截屏 适配需求 方案一.使用JxBrowser 使用步骤: 方案二.JavaFX WebView 使用步骤: 方案三.Headless Chrome 使用步骤: 综上方案对比 记 ...

  7. app微信支付-java服务端接口 支付/查询/退款

    app微信支付-java服务端接口 支付-查询-退款 个人看微信的文档,看了很多前辈的写法,终于调通了,在这里做一下记录. 首先来定义各种处理类(微信支付不需要特殊jar包,很多处理需要自己封装,当然 ...

  8. Flex通信-Java服务端通信实例

    Flex与Java通信的方式有很多种,比较常用的有以下方式: WebService:一种跨语言的在线服务,只要用特定语言写好并部署到服务器,其它语言就可以调用 HttpService:通过http请求 ...

  9. 聊一聊 Java 服务端中的乱象

    点击上方"方志朋",选择"设为星标" 回复"666"获取新整理的面试文章 来源:阿里巴巴中间件 查尔斯·狄更斯在<双城记>中写道 ...

最新文章

  1. leecode第二十题(有效的括号)
  2. python版本越高越好吗-5个Python特性 越早知道越好的
  3. Python 计算机视觉(七)—— OpevCV进行直方图统计
  4. 华为鸿蒙os生态,华为鸿蒙系统终于来了! 首款方舟编译器应用正式上架: 鸿蒙OS可用...
  5. asm扩容流程_Oracle rac asm 扩容
  6. 如何实现input输入框自带清除按钮
  7. python 线程超时设置_python多任务之总结——(二)线程、协程
  8. matlab 工程文件下载,工程文件管理 - MATLAB Simulink - MathWorks 中国
  9. solr学习笔记-linux下配置solr
  10. matlab接触封装,MATLAB如何解除封装
  11. 小程序 跳转到腾讯文档小程序
  12. 个人银行账户管理程序(C++)
  13. HTML网页设计结课作业~仿蘑菇街商城网站源码(HTML+CSS+JS)
  14. PTA 7-13 列车调度 (25 分) C语言和C++实现(二分查找)
  15. 杨辉三角~~~~~~~~
  16. 双轴反作用轮定点自平衡杆动力学模型
  17. VUE之组件(Props特性深析)
  18. Nginx(SPEC文件打包)
  19. ad软件 pcb如何走线过孔_PCB走线和过孔的过流能力
  20. idea从零到精通01之idea下载和安装

热门文章

  1. Excel中如何进行字符串的截取
  2. java计算机毕业设计智能快递分拣系统源码+mysql数据库+系统+部署+lw文档
  3. 字幕编辑修改脚本-python方式
  4. 一文看懂数据清洗:缺失值、异常值和重复值的处理
  5. 超级详细的膝盖关节结构讲解
  6. 有道云笔记导出到notion
  7. 交换机分布缓存_细解网络设备缓存技术
  8. win10或者win11老是出现Amd的驱动问题 网上说的都是win10或者win11会自动回滚驱动
  9. 关于BP算法和梯度下降
  10. mysql极限_SQL极限函数limit()详解分页必备