配置Google支付相关参数(client_id, client_secret, refresh_token)
1. 登陆Google开发者账号,点击左边API权限

创建新项目
- 转到 Google Play 管理中心的 API 权限页面。
 - 接受《服务条款》。
 - 点击创建新项目。
 系统会自动生成 Google Cloud 项目,并将其关联到您的 Google Play 管理中心。
2. 配置服务账号
转到 Google Play 管理中心的 API 权限页面,点击服务帐号下的创建新的服务帐号。

在创建帐号的过程中,您需要向自己的服务帐号授予对 Cloud 项目的访问权限,这样它才能显示在 Google Play 管理中心内。

点击Google cloud platform创建,先将Google play项目和自动创建的cloud platform项目绑定

然后点击创建服务账号

填入名称即可,其他都是可选。
完成后可以下载密钥保管到电脑上

在 Google Play 管理中心创建服务帐号后,点击完成。API 权限页面的“服务帐号”部分会自动刷新,您的服务帐号将随即列出。

点击授予访问权,为服务帐号提供执行相关操作所需的权限。此时,您应该能够通过服务帐号访问 Google Play Developer API。如需了解详情,请参阅针对服务器对服务器应用使用 OAuth 2.0。
3. 创建OAuth客户端
在创建 OAuth 客户端之前,您需要为产品配置品牌信息。
转到 Google Play 管理中心的 API 权限页面。点击 OAuth 客户端下的配置 OAuth 权限请求页面。由于我已经配置了相关信息,这里就没有显示配置客户端而是创建客户端。

配置产品的品牌信息。完成配置后,点击刷新 OAuth 权限请求信息。此部分会相应更新,您不会再看到与品牌信息有关的消息。
然后再创建客户端

- 创建好了之后查看客户端id和客户端密钥即client_id和client_secret
 

- 其中的重定向url可以问后端要
 
在 Google Play 管理中心创建 OAuth 客户端后,点击完成。API 权限页面的 OAuth 客户端部分会自动刷新,您的 OAuth 客户端将随即列出。
有时新的 OAuth 客户端不会立即显示在页面上。在这种情况下,请点击刷新 OAuth 客户端。新 OAuth 客户端的详细信息会以列表形式显示在此页面上。
4. 获取您的开发者 ID
有些 API 需要您提供 Google Play 管理中心开发者 ID。这是在创建您的 Google Play 开发者帐号时分配的一个长号码。您可以在 Google Play 管理中心内几乎任何页面(例如 API 权限页面)的网址中找到您的开发者 ID。
以 Google Play 管理中心的网址为例:
https://play.google.com/console/developers/1234567890123456789/api-access
在以上网址中,开发者 ID 为
1234567890123456789。注意:当应用从一个 Google Play 开发者帐号转移到另一个 Google Play 开发者帐号时,与该应用关联的开发者 ID 将会发生变化。这意味着,转移完成后,在该应用的 API 调用中,您将必须使用新的 Google Play 开发者帐号的开发者 ID。
5. 生成刷新令牌(refresh_token)
先使用你的Google play账号登陆后,转到以下uri:
https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=...
将上一步填写的重定向uri和client_id填入
注意:
redirect_uri参数必须与使用客户端 ID 注册的值完全匹配,包括末尾的反斜杠(如果有)。看到系统提示时,请选择允许访问。
- 如果有多个账号,选择你的开发者账号
 

浏览器将使用
code参数重定向到您的重定向 URI,该参数类似于4/eWdxD7b-YSQ5CNNb-c2iI83KQx19.wp6198ti5Zc7dJ3UXOl0T3aRLxQmbwI在之后的uri中找到code
将该代码替换为访问权限和刷新令牌组合,为此,您需要向
https://accounts.google.com/o/oauth2/token发送 POST 请求,并设置以下字段:grant_type=authorization_code
code=<the code from the previous step>
client_id=<the client ID token created in the APIs Console>
client_secret=<the client secret corresponding to the client ID>
redirect_uri=<the URI registered with the client ID>
然后使用postman

成功响应后,获得refresh_token
{
"access_token" : "ya29.ZStBkRnGyZ2mUYOLgls7QVBxOg82XhBCFo8UIT5gM",
"token_type" : "Bearer",
"expires_in" : 3600,
"refresh_token" : "1/zaaHNytlC3SEBX7F2cfrHcqJEa3KoAHYeXES6nmho"
}
注意,只有第一次请求会返回refresh_token,请妥善保管
然后,在后台将内购所需要的client_id,client_secret,refresh_token一一配置,大功告成~
参考文章
https://blog.csdn.net/chenglinlin526/article/details/78086127
https://developers.google.com/android-publisher/getting_started?hl=zh-cn
https://developers.google.com/android-publisher/authorization
配置Google支付相关参数(client_id, client_secret, refresh_token)的更多相关文章
- Android Studio 2.2以上支持了Cmake的配置JNI的相关参数
		
Android Studio 2.2以上支持了Cmake的配置JNI的相关参数,简化了通过Android.mk配置.并很好的继承了C++的编辑方式.以下是对应的引入第三方so和第三方.cpp文件的路径 ...
 - Spark 性能相关参数配置详解-任务调度篇
		
随着Spark的逐渐成熟完善, 越来越多的可配置参数被添加到Spark中来, 本文试图通过阐述这其中部分参数的工作原理和配置思路, 和大家一起探讨一下如何根据实际场合对Spark进行配置优化. 由于篇 ...
 - JVM相关参数配置和问题诊断<转>
		
原文连接:http://blog.csdn.net/chjttony/article/details/6240457 1.Websphere JVM相关问题诊断: 由JVM引起的Websphere问题 ...
 - hadoop和spark相关参数的配置
		
背景 MapReduce和Spark对外提供了上百个配置参数,用户可以为作业定制这些参数以更快,更稳定的运行应用程序.本文梳理了最常用的一些MapReduce和Spark配置参数. MapReduce ...
 - Yarn 内存分配管理机制及相关参数配置
		
上一篇hive on tez 任务报错中提到了containter内存不足,现对yarn 内存分配管理进行介绍 一.相关配置情况 关于Yarn内存分配与管理,主要涉及到了ResourceManage. ...
 - 电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析)
		
电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析) 目录 电机噪声之谐波分析(内附simulink中FFT分析的相关参数配置与解析) 写在前面 正文 电机噪声 谐波的产生 什么 ...
 - Nginx一直报504超时,配置相关参数好了
		
相关参数:large_client_header_buffers 4 16k;client_max_body_size 30m;client_body_buffer_size 128k;proxy_c ...
 - google支付回调验证
		
原文链接: https://my.oschina.net/lemonzone2010/blog/398736 Google支付问题 20150218,挂机的日本服务器出现google支付被刷单现象,虽 ...
 - Vue — 微信公众号内置h5支付相关
		
首先,在公众号后台配置h5页面地址 开发流程 1.通过配置h5地址,获取code.再通过code,获取openid getOpenid(){ let url = 'https://open.weixi ...
 
随机推荐
- Hibernate 的 <= 出现问题
			
问题模拟 select new map( e.name as name , e.salary as salary) from Emplpyee e where e.salary <= :sala ...
 - CreateRemoteThread创建远程线程
			
要实现线程的远程注入必须使用Windows提供的CreateRemoteThread函数来创建一个远程线程 该函数的原型如下: HANDLE CreateRemoteThread( HANDLE hP ...
 - CAS邮箱的Express配置
			
Configuration for all clients: http://help.cstnet.cn/changjianwenti/youjianshoufa/kehuduan.htm Confi ...
 - Windows10通过WSL编译jdk12
			
Windows使用WSL编译OpenJDK 安装Ubuntu以及配置国内镜像 首选确保windows10已经安装了ubuntu 更换ubuntu20.04国内镜像,这里我选择的是阿里云镜像 sudo ...
 - 3-等待线程终止的join方法
			
等待线程终止的join方法 在项目实践中经常会遇到一个场景,就是需要等待某几件事完成之后才能继续往下执行,比如线程加载资源等等. package com.heiye.learn1; public cl ...
 - 使用CEF(一)— 起步
			
使用CEF(一)- 起步 介绍 Chromium Embedded Framework (CEF)是个基于Google Chromium项目的开源Web browser控件,支持Windows, Li ...
 - linux 信号与处理
			
一.linux信号是什么 基本概念 信号是事件发生时对进程的通知机制,也就是所谓的软件中断.信号和硬件的中断类似,是软件层对中断机制的模拟,在多数情况下是无法预测信号产生的时间,所以软件层提供了一种处 ...
 - 洛谷4299首都(LCT维护动态重心+子树信息)
			
这个题目很有意思 QWQ 根据题目描述,我们可以知道,首都就是所谓的树的重心,那么我们假设每颗树的重心都是\(root\)的话,对于每次询问,我们只需要\(findroot(x)\)就可以. 那么如何 ...
 - 数据库已经存在表, django使用inspectdb反向生成model实体类
			
1.通过inspectdb处理类,可以将现有数据库里的一个或者多个.全部数据库表生成Django model实体类 python manage.py inspectdb --database defa ...
 - .NET下使用ufun函数取CAM操作的进给速度
			
UF_PARAM_ask_subobj_ptr_value,这个函数在封装的时候,给了很大一个坑啊. NXOpen.UF.UFParam.AskSubobjPtrValue(ByVal param_t ...