整个开发背景是前端在调用完google play支付流程后,需要后台验证支付结果以及在自己的服务生成订单相关信息。由此着手对google后台验证的调研,首先官方流程:

https://developers.google.com/android-publisher/authorization

下面我将已网上原有贴复制+自己手动截图的形式详细描述下整个操作流程:

实现步骤

1.管理者用项目最高权限的GP账号登录,访问https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=https://www.example.com/oauth2callback&client_id=123456789  获得code,保存此code(4/SIIu58MuX3Ixuea-FJPo3rgg3x5LIDyadb8MzztPV7c#)

2.迅速访问,请注意是在步骤1后迅速访问。POST请求,https://accounts.google.com/o/oauth2/token?grant_type=authorization_code&code=4/SIIu58MuX3Ixuea-FJPo3rgg3x5LIDyadb8MzztPV7c#&client_id=123456789&client_secret=123456789&redirect_uri=https://www.example.com/oauth2callback。获得返回的refresh_token,妥善保存此token。以后的请求中都不会再出现,对于当前创建的账号的唯一且永久有效的

3.携带refresh_token可获取access_token,POST请求访问https://accounts.google.com/o/oauth2/token,参数grant_type=refresh_token为固定值,client_id,client_secret,refresh_token

PS:值得注意的是,2与3的POST请求在摸索初期我都用postman去模拟,参数不是一个JSON,是已表单的形式传参的,这点在后续也会截图表述。

4.验证:Get请求,请求接口:https://www.googleapis.com/androidpublisher/v2/applications/packageName/purchases/products/productId/tokens/purchaseToken?access_token=access_token

操作截图

在Google APIs选择Credentials,Create New Project,点击创建一个auth2.0的web应用

https://console.developers.google.com/apis/dashboard

我用的是Java后台的http验证,创建了Web application,红框处完全可以填示例的url,至少单在验证支付状态的需求里这个redirect_uri是没有用到的

Anyway,请求需要的clien_id client_secret,redirect_uri都已经创建好了。操作步骤1,得到下图,保存code

同时,此时要开启一个google应用,才能在后台执行查询的api。

拿到code后,执行步骤2,我用的是Postman。Post请求,请求头Content-Type = application/x-www-form-urlencoded

第一次请求会获得refresh_token,妥善保存

拿到refresh_token后,就可以执行步骤3,请求获得access_token,步骤3.4很流畅 不截图了。

以上是整个请求流程的Postman访问。

正常情况下,按此流程操作请求到步骤4后,并不能得到想要的结果。会报一系列的错误code,下面来讲述这些错误的解决。

先推一个链接,尾部有两个错误的解决http://blog.csdn.net/lemonzone2010/article/details/44983659。创建Link的截图因为我没有主权限账号,所以没有截图。

这里写一下自己遇到的401code ,报错message如下:

The current user has insufficient permissions to perform the requested operation

困惑我的是整个google console 配置的是全局的Link  。在测试的客户端项目跑通整个流程后,新建的正式项目用同样的代码去测试就报了没有权限的code。反复查询无果,包裹google上搜索的设置一个XXXemail等等的操作都无济于事,万念俱灰之际,重新创建一个Web application,Link配置后。401code没了

{

"kind": "androidpublisher#productPurchase",

"purchaseTimeMillis": "1516155154486",

"purchaseState": 0,

"consumptionState": 1,

"developerPayload": "",

"orderId": "GPA.3322-0256-8697-13965",

"purchaseType": 0

}

成功。

谷歌pay服务端文档_google支付后台验证操作流程相关推荐

  1. 谷歌pay服务端文档_Google pay 服务器验证

    {"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],&q ...

  2. 谷歌pay服务端文档_米大师服务端说明

    1.后台接口说明 1.支付后台接口API 1.1 API 1.1.1 查询余额接口 (1)URL地址 [现网]https:// ysdk.qq.com/mpay/get_balance_m [沙箱]h ...

  3. 谷歌pay服务端文档_腾讯米大师支付服务器端接入流程

    腾讯开放平台的接入是非常麻烦的,文档各种不清不楚的,有些东西文档根本没有写,如果不跟腾讯的技术人员对接的话,你都可能做不出来.虽然他们也没有帮到什么 申请过程就不赘述(申请过程很蛋疼),直接开始接入. ...

  4. 干货-Google支付后台验证操作流程【业务后台-GP后台流程】

    整个开发背景是前端在调用完google play支付流程后,需要后台验证支付结果以及在自己的服务生成订单相关信息. 由此着手对google后台验证的调研,首先官方流程: 点我查看官方流程 整个操作流程 ...

  5. Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服务prd文档

    Axure原型作品介绍:Axure电影购票服务产品需求文档+Axure体育球赛购票服务产品需求文档+Axure演唱会购票服务原型+在线购票系统+在线买票+在线选座+移动端票务系统+Axure电影购票服 ...

  6. 微信sdk服务器支付文档,微信支付-普通下单开发者文档

    3.2. API接入(含示例代码) 本章节展示了如何使用微信支付服务端 SDK 快速接入小程序支付产品,完成与微信支付对接的部分. 注意: 文档中的代码示例是用来阐述 API 基本使用方法,代码中的示 ...

  7. Knife4j 2.0.8发布,史诗级微服务聚合文档中间件诞生

    Knife4j前身是swagger-bootstrap-ui,是一个为Swagger接口文档赋能的工具 文档:https://xiaoym.gitee.io/knife4j/(opens new wi ...

  8. SQLServer报表服务研究文档

    SQLServer报表服务研究文档. Ø 研究目的 研究CRM4.0中的报表与sqlserver2005中的报表的集成,如何将CRM中已经制作好的报表导出后在SQLSERVER2005中进行修改后再导 ...

  9. ICLR 2023 | StrucTexTv2:端到端文档图像理解预训练框架

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 点击进入->[计算机视觉]微信技术交流群 转载自:CSIG文档图像分析与识别专委会 本文简要介绍ICL ...

最新文章

  1. 最新最全大数据图谱,请拿走不谢!
  2. python【蓝桥杯vip练习题库】ADV-172身份证排序
  3. 1043 输出PATest(PAT乙级 C++)
  4. Android 自定义Application
  5. CMU博士Nature撰文:机器学习要避开这三个“大坑”
  6. Android 中this、getContext()、getApplicationContext()、getApplication()、getBaseContext() 之间的区别...
  7. 【BZOJ1030】[JSOI2007] 文本生成器(AC自动机上跑DP)
  8. 前端工程师都会喜欢的5个JavaScript库
  9. Esper 7.x集成SparkStream 2.x
  10. linux命令-locale字符显示
  11. 一致性 hash 算法
  12. Discuz!开发之模板制作CSS扩展规范与语法规范
  13. 一级域名、二级域名 cookie
  14. c++图像处理之对比度拉伸变换
  15. oppo怎么修改dns服务器地址,OPPO手机的WIFI设置里的DNS在哪
  16. PCB贴片元件封装焊盘设计尺寸标准
  17. python模糊搜索_在Python中使用Whoosh进行模糊搜索
  18. 上海大学生计算机应用能力大赛答辩,2018年(第十届)上海市大学生计算机应用能力大赛成功举行...
  19. 深入分析Android 9.0源代码——Service启动流程(startService方式)
  20. 云计算基础与应用 第四章 云网络

热门文章

  1. 我的世界服务器修改地图,我的世界如何修改地图?
  2. 布局技巧(等高、圣杯)
  3. 封装PC端使用海康插件播放摄像头直播流(基于VUE)
  4. LBS的球面距离计算及Geohash方案探讨(LBS之一)
  5. 2019年北京理工大学计算机专硕上岸经验分享
  6. python 爬取链家成交房数据案例
  7. 虚拟机安装教程win10_虚拟机安装实战教程
  8. zk-03-Zookeeper部署和运行
  9. pppoe拨号.bat
  10. 2021支付宝扫福玩法攻略