node.js - Google Wallet API Codelabs 示例权限被拒绝

标签 node.js android-pay google-codelab

我正在研究使用 Google 电子钱包通过网络/jwt 界面存储条形码(用于电子处方,如果重要的话)的可行性。

https://codelabs.developers.google.com/add-to-wallet-web#0

在仔细按照所有说明操作后,包括“创建临时发行人帐户和示例类。”,并将 issuerid 和 classid 插入代码(以及 key.json 文件的正确路径)并添加 createPassAndToken 。 .. 它因“403 权限被拒绝”错误而失败。

对于可能导致此问题的原因,我找不到任何帮助。

一个可能的问题是临时发行者帐户中返回的“Pass Class Id”采用 {$issuer_id}.{guid} 形式,示例 app.js 中的内部代码将 issuer_id 作为请求的一部分,让我相信 class_id 应该只设置 guid,但我已经尝试了两种方法,但没有什么不同。

作为一个小问题,所有指令都假定为 linux 命令行,而我使用的是 windows,但当然正确并不难。

感谢任何帮助。

最佳答案

您走在正确的轨道上。通过以下更改,我通过了这一步:

  1. 从“Google 钱包 API 代码实验室工具”中显示的 class_id(如您所述)中删除 issuer_id。它已经将 issuer_id 添加到 class_id,这完全是误导。

    代码应该是这样的:

    const issuerId = process.env.WALLET_ISSUER_ID ||  '338800....000000001';
    const classId = process.env.WALLET_CLASS_ID || '71bba024-a024-a024-a024-a024da8f5771';
    
  2. 用于生成临时发行人帐户的电子邮件地址必须与为服务帐户创建的电子邮件地址相同。在codelab中,就是

    wallet-codelab@$PROJECT_ID.iam.gserviceaccount.com

关于node.js - Google Wallet API Codelabs 示例权限被拒绝,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/72253521/

相关文章:

Javascript 使用转义字符解析 JSON

Android:购买后如何处置谷歌钱包的labHelper

android - 从 FragmentScenario 设置要从 DataBindingIdlingResource 使用的 fragment 的问题

javascript - 如何在 Gulp 中将文件和管道包装到同一目录中的新文件

javascript - Node.js 服务器发送事件 - 何时使用 response.flushHeaders() 与 response.writeHead()

google-checkout - 无法创建 Google 电子钱包商家帐户

Kotlin 中的 Android 开发,对教程感到困惑

javascript - 通过 node.js 流式传输 IP 摄像机

javascript - 在 Meteor 中插入数千个文档