整个开发背景是,前端在完成Google Play支付流程后需要进行后台验证支付结果,并在自己的服务中生成订单相关信息。
针对谷歌后台验证的调研,我们首先要了解官方流程。请点击此处查看官方流程。
整个操作流程如下:
1、在开发者后台中启用Google Play Android Developer项目
2、在Google APIS中选择Google Play Android Developer项目–【凭据】–【OAuth同意屏幕】
请注意:只需填写信息,无需进行验证,但务必添加已获授权的域名。
举例来说,选择这个地址会更加理想,因为它能够提高请求成功率。
http://localhost:8080
3、创建OAuth客户端凭据
4、在创建Oauth客户端ID后,管理员应使用具有项目最高权限的GP账号登录,并访问:
请注意,以下是一个经过修改的版本: 请点击此处以访问谷歌账户授权页面:https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=redirect_uri=已授权的重定向URI(建议使用:http://localhost:8080)client_id=google分配的客户端ID
以上链接登录成功后,会在浏览器的地址栏中显示code,只要拿出code的值即可:
注意:有链接会被转义,比如/会被转成%2F,就如以上参数值,copy下来后手动改一下:
Code=4%2FbAEGOfkpDnG5hhtv8E7FSkKPp-oFVQpTPeg8l_jWjKQd5BaOviZLyimEywJR9ptEoFtRqb95sZh4yXfRLI81BbM小贴士:本文中所提及的模拟数字意味着
123122121=client_id=客户端 ID123456789=client_secret=客户端密钥
5、获取到code后发送post请求,以下POST请求实例以postman工具来进行操作请注意:只有按照步骤进行,才能成功执行发起POST请求的操作。
请使用表单形式传递参数,请求头中的Content-Type应为application/x-www-form-urlencoded。接口请求以获取refresh_token为:请注意:只有在第一次请求时,会返回refresh_token。之后将不再返回refresh_token。因此,在获得返回的refresh_token后,请妥善保存此token。以后的请求中都不会再出现该token,对于当前创建的凭证账号是唯一且永久有效的。您可以将其存放到配置文件(或者写入数据库),以备将来使用。参数:
grant_type=authorization_code为固定值code=第4步中获取到的code值,client_id=客户端ID(123122121),client_secret=客户端密钥(123456789),redirect_url=重定向链接(http://localhost:8080)。 注:返回结果中的expires_in是指access_token的时效,为3600秒。第一次请求会获得refresh_token,妥善保存
6、通过携带refresh_token,可以获取access_token,并使用POST请求进行访问。
当再次请求以下接口时,只需以表单形式传参,并在请求头中设置Content-Type为application/x-www-form-urlencoded,即可获得access_token。https://accounts.google.com/o/oauth2/token
参数:
grant_type=refresh_token为固定值,client_id=客户端ID,(123122121)client_secret=客户端密钥,(123456789)refresh_token=第5步中获取到的refresh_token值,
7、验证:GET请求
请求以下接口时查询获得商品信息:https://androidpublisher.googleapis.com/androidpublisher/v3/applications/{packageName}/purchases/products/packageName=需要查询的应用ID(包名、gradle中的applicationId )productId=开发者后台中创建好的商品IDpurchaseToken=订单中purchaseTokenaccess_token=第6步中获得的access_token
注:如果客户端是用V2API进行支付的,直接使用上方链接即可,如果是v3api时,需要将链接中的v2改成v3,否则查询失败
返回数据:
到这里就结束了,把流程梳理好后,做起来就不难了,大家喜欢这篇文章的话,可以麻烦点个赞和加个关注咩?,我也希望这篇文章能够帮助更多的小伙伴。但是有一点要说明哦,码字不容易哦,如果要收藏啥的,转发时请麻烦标明出处
还木有评论哦,快来抢沙发吧~