admin管理员组

文章数量:1647978

服务器接入谷歌订单验证

上架谷歌,需要在服务器端接入谷歌的订单验证,颇费了一番功夫。

流程

经过一番尝试,最终使用service account - json文件方式接入。关于如何生成对应的json文件,网上有相应的教程。

注意:要使用关联项目的主账号生成json文件(如果是次要账号生成的json文件则没有相应的权限)。

代码步骤

 GoogleCredential credential =GoogleCredential
                    .fromStream(new FileInputStream(FireBaseConstants.LOCAL_FOLDER+"google-Japan.json")).createScoped(Collections.singleton(AndroidPublisherScopes.ANDROIDPUBLISHER));
            credential.refreshToken();
            accessToken= credential.getAccessToken();
关于Collections.singleton方法里的参数,
官方给的API里有写的是SQLAdminScopes.SQLSERVICE_ADMIN,
但是出现了403:Request had insufficient authentication scopes.的错误,
换成AndroidPublisherScopes.ANDROIDPUBLISHER就好了,
如果AndroidPublisherScopes.ANDROIDPUBLISHER不行的话,换回去试试。

注意:一定要调用refreshToken方法,不然啥也拿不到。

String queryUrl = "https://www.googleapis/androidpublisher/v3/applications/" +
 packageName + "/purchases/products/" + productId + "/tokens/" + token;
        queryUrl += "?access_token=" + accessToken;
然后把前一步拿到的access Token放到请求里面,去谷歌访问就能拿到相应的谷歌订单数据了。
参数:packageName - 包名,productId -  产品Id,token - 谷歌返回的支付成功的purchaseToken

本文标签: 订单服务器ServiceAccountjson