如何验证android计费收据服务器端

皮保尔

我想在android应用程序中对购买收据进行服务器端验证。我正在使用一个node.js后端。

我目前正在尝试使用google-play-purchase-validator节点模块(https://www.npmjs.org/package/google-play-purchase-validator)进行此操作,这似乎是最新的模块做到这一点(执行对Google Purchase API的实时请求)。

在Google开发人员控制台中,我创建了一个Google服务帐户,然后获得了要在该模块中使用的电子邮件和密钥,并且还将此服务帐户与我的应用程序连接,如本文章中的使用服务帐户来验证Google InAppPurchase所述)中所述。不幸的是,它不起作用。似乎节点模块生成的jwt令牌未正确签名(我收到以下错误:无法签名JWT,密钥可能无效)。

这是一些代码:

var Verifier = require('google-play-purchase-validator');
var options = {
  email:'[email protected]',
  key: 'myprivatekey',
};
var verifier = new Verifier(options);
verifier.verify(item.Receipt, function cb(err, response) {
if (err) {
    console.log("there was an error validating the receipt");
    console.log(err);
}
else{
    console.log("sucessfully validated the receipt");
    console.log(response);
}

私钥来自.pem文件,我可以使用以下命令从google提供的.p12文件生成该文件:

openssl pkcs12 -in downloaded-key-file.p12 -out your-key-file.pem -nodes

google-play-purchase-validator模块基于其他一些模块(google-oauth-jwt,request,crypto)。我尝试调试一下,似乎一切都正确完成了。

知道我哪里错了吗?

保罗

最大

刚刚在模块的Readme.md中添加了有关如何获取正确凭据的说明。

https://www.npmjs.org/package/google-play-purchase-validator

或在这里找到它们:

  1. 首先以该帐户的主要管理员身份进入Google Play开发者控制台(此角色是唯一可以执行以下步骤的角色)。
  2. 转到“设置-> API访问权限”,将Google Developer项目链接到该帐户。
  3. 如果您是新手,请选择“创建新项目”。
  4. 您现在将有更多选择。选择“创建服务帐户”。
  5. 点击链接到Google Developer Console和您的项目
  6. 点击“创建新的客户ID”以创建新的客户ID
  7. 忽略将下载到您的计算机上的.p12文件,而是单击“生成新的JSON密钥”。
  8. 这会将JSON文件下载到您的计算机。一秒钟后,我们将回到该文件。
  9. 现在返回到Play商店的发布者帐户,然后点击“完成”。您的新生成用户将显示在此处。
  10. 单击“授予访问权限”,然后授予用户读取您的项目的权限。
  11. 现在,使用此模块设置您的Node.JS项目,并提供在json文件中找到的电子邮件地址和私钥作为此模块的选项。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

iOS7中非消耗性产品的服务器端收据验证和transactionReceipt弃用

来自分类Dev

DropZone.js服务器端验证

来自分类Dev

Coldfusion服务器端无线电验证

来自分类Dev

iOS服务器端验证-收据类型

来自分类Dev

在服务器端从Android验证用户

来自分类Dev

MVC 4服务器端验证未显示

来自分类Dev

服务器端验证不起作用

来自分类Dev

locomotivejs在服务器端进行模型验证

来自分类Dev

如何验证android计费收据服务器端

来自分类Dev

Google+服务器端令牌验证

来自分类Dev

如何验证Google身份服务器端

来自分类Dev

Primefaces inputMask服务器端验证

来自分类Dev

Angular 2(Beta)服务器端验证消息

来自分类Dev

验证在Blazor服务器端不起作用

来自分类Dev

服务器端Blazor验证未更新UI

来自分类Dev

使用Apple登录:在服务器端验证令牌

来自分类Dev

Kubernetes Yaml的服务器端验证

来自分类Dev

审核服务器端验证

来自分类Dev

服务器端对“活跃”游戏的验证

来自分类Dev

DropZone.js服务器端验证

来自分类Dev

Coldfusion服务器端无线电验证

来自分类Dev

Tapestry服务器端的日期验证

来自分类Dev

从服务器端验证Spring Security

来自分类Dev

如何验证Google身份服务器端

来自分类Dev

AngularJs服务器端验证

来自分类Dev

在客户端委派服务器端验证

来自分类Dev

如何强制服务器端验证而不是仅客户端验证?

来自分类Dev

如何验证 Facebook 用户令牌服务器端

来自分类Dev

服务器端文件验证