【发布时间】:2018-02-09 10:47:46
【问题描述】:
我正在开发一项使用 AWS Lambda/API 网关/NodeJS 更新 Apple Wallet 通行证的 Web 服务。 Apple 钱包点击 api 获得更新通过,但每次我收到以下错误:
遇到错误:收到无效的通行证数据(通行证无效,无法读取。)
我已经尝试在浏览器中使用相同的 URL 来获取通行证。通行证每次都在下载,每次都打开一个有效的通行证。但是当 Apple 钱包点击 URL 时它不起作用。我在 Postman 中尝试过相同的 URL,它给了我 base64 而不是二进制数据。
我尝试使用 NodeJS 实现相同的功能并部署在 heroku 上,它可以与 Wallet 正常工作(也在 Postman 中提供二进制文件)。但我需要使用 AWS Lambda/API 网关/NodeJS。
我不确定 AWS 在交付二进制数据时是否会改变某些内容。
对此的任何帮助表示赞赏。
【问题讨论】:
-
您在 iPhone 的控制台日志中还看到了什么?您的 lambda 应用中是否安装了 WWDR 开发者证书?
-
这里是整个日志:{ "logs": [ "[2017-08-31 12:43:04 +0530] 获取传球任务(传球类型pass.com.xxx.xxx.xxx , 序列号 xxxxxxxxxx, if-modified-since (null); with web service url xxxxxxxx.execute-api.us-east-2.amazonaws.com/xxx) 遇到错误: Received invalid pass data (The pass can be read because it is not valid.)" ] } WWDR 已安装.当通过 heroku 提供 web 服务时,同样的传递也有效。
-
您是否正确设置了 content-type 标头?
标签: node.js aws-api-gateway wallet