Android 应用内结算订阅验证

Posted

技术标签:

【中文标题】Android 应用内结算订阅验证【英文标题】:Android in-app billing subscription verifying 【发布时间】:2013-04-24 01:41:49 【问题描述】:

我想在我的服务器上验证订阅,但是当我尝试获取访问令牌时出现 invalid_grant 错误。 我在服务器上的 php 中使用该代码:

$refreshToken = '4/cTphJ...';
$clientId = '1234567.apps.googleusercontent.com';
$clientSecret = '';
$redirectUri = 'https://www.example.com/oauth2callback';

$ch = curl_init();

$url  = 'https://accounts.google.com/o/oauth2/token';

curl_setopt($ch, CURLOPT_URL, $url);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_POSTFIELDS, 'grant_type=authorization_code&client_id=' . $clientId . '&client_secret=' . $clientSecret . '&code=' . $refreshToken . '&redirect_uri=' . $redirectUri);

$data = curl_exec($ch);

curl_close($ch);

有什么问题?

编辑: 当我生成正确的代码时,我不再收到 invalid_grant 错误,但现在我收到错误“此开发人员帐户不拥有该应用程序”。我在 Google 控制台中的 android 应用程序和新 API 项目是使用同一个 Google 帐户创建的,那么为什么我会看到该错误?

【问题讨论】:

我不确定,但我认为您的服务器存在一些权限问题。您是否检查了您的身份验证令牌和用户名并通过了? 什么意思?我没有任何用户名、密码或身份验证令牌。 【参考方案1】:

这是我的错误。我调用了那个 url https://accounts.google.com/o/oauth2/auth?scope=https://www.googleapis.com/auth/androidpublisher&response_type=code&access_type=offline&redirect_uri=...&client_id=... 但是我的 redirect_uri 是错误的,然后我得到了一个错误的代码。

我在开发者控制台设置中的电子邮件有误。

【讨论】:

以上是关于Android 应用内结算订阅验证的主要内容,如果未能解决你的问题,请参考以下文章

我是不是正确执行这些步骤来检查用户的应用内结算订阅?

无法在服务器上验证 android 应用内订阅

尝试订阅产品时需要应用内计费 android 返回身份验证

Android 应用内结算:退款的应用内购买未取消

Android 应用内结算意外响应

获取应用内结算用户帐户详细信息