Apple Wallet 动态更新值

Posted

技术标签:

【中文标题】Apple Wallet 动态更新值【英文标题】:Apple Wallet update values dynamically 【发布时间】:2017-04-20 14:25:00 【问题描述】:

我已经在苹果设备中创建了优惠券的静态版本。现在我想通过 API 调用在我的数据库中更新值时直接在我的优惠券上更新我的新值。

我知道这可能就像登机牌一样,当座位号更改时,直接在电子登机牌上更改。

如果您能提供很好的示例链接,请提供如何调用 API 以及如何从 API 获取值和更新优惠券,这将是很大的帮助。

注意:我的 API 不会在 Objective-C 中。

谢谢

【问题讨论】:

这里不是要求复制/粘贴解决方案的地方。您需要构建 3 个主要组件 - 一个实现 Apple 发布的规范的 RESTful Web 服务;保存设备令牌和动态通行证数据的数据库;以及实现 APNS 协议的推送服务器。有大量可用的文档,Apple 还发布了一个用 Ruby 编写的带有 SQLite 数据库的示例服务器。 感谢您的快速回复。我不是在问复制/粘贴解决方案,如果你能分享好的文档链接,这将是很大的帮助。我有点初学者。再次感谢... developer.apple.com/wallet 拥有您所需要的一切。 【参考方案1】:

您需要在后端解决方案中实施 Apple 通行证创建、分发和更新代码。查找以下参考资料和文档:

用于 JAVA 后端的 Apple Pass:

https://github.com/drallgood/jpasskit
https://dzone.com/articles/ios-and-android-push
http://www.ryantenney.com/passkit4j/

Apple Pass Web URL 规范:

https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html

php 后端的 Apple Pass:

https://github.com/tschoffelen/PHP-PKPass

Apple Pass 与 Ruby

https://oleb.net/blog/2013/02/passbook-tutorial/

带有 Node.js 的 APNS:

https://solarianprogrammer.com/2017/02/14/ios-remote-push-notifications-nodejs-backend/

更新iOS Pass的推送通知:

https://***.com/questions/15877496/how-to-make-a-push-notification-for-a-pass

Pass Kit Web 服务参考: https://developer.apple.com/library/content/documentation/PassKit/Reference/PassKit_WebService/WebService.html

重要提示:如果您使用任何 JAVA JAR,请检查您使用的服务器操作系统,例如 IBM AIX OS(使用 IBMX509)或 Oracle OS(使用 SUNX509)。许多Apple pass in JAVA 库都可用,它们只支持SUN JDK。如果您的服务器是 AIX OS 并且 JAR 使用 SUN,那么您可能会在最后一刻陷入巨大的麻烦。 例如:https://github.com/drallgood/jpasskit 的 jPassKit JAR 仅支持 SUN JDK,因此您不能将其用于 IBM AIX OS 服务器。

【讨论】:

感谢您的回复,您知道任何 php 库/网络服务可以自动更新通行证上的内容,例如登机牌上的登机口更改,或向会员卡添加信用。 上面提供了 PHP 后端的链接,它在您的情况下处理通行证的创建、分发和更新。首先使用上面的库,您需要创建一个通行证并提供一个下载链接。创建该 pass 时,pass.json 中有一个名为“webserviceurl”的键,当您从上述库向设备发送空推送通知时,将调用该键来更新 pass。 是的,我能够生成我的通行证,那部分已经完成并且正在工作,但我卡在后端部分中,有任何用 php 或 java 实现的好的库吗?每当在客户端设备中传递安装时,这很容易实现我想要的我 webservice 将推送令牌存储在 db 中,我可以从该推送令牌推送新的更改到客户端卡。 我主要在 JAVA 后端集成了 Pass,但你可以试试这个...github.com/tschoffelen/PHP-PKPass 太好了,让我试试这个我会更新你... java 我正在寻找 jpasskit 库看起来它需要完整的实现权..【参考方案2】:

我在这里写了一篇关于如何为苹果钱包编写网络服务的文章:https://medium.com/@yangzhoupostbox/asp-net-web-api-example-for-apple-wallet-passbook-a124a1d90bb3

【讨论】:

以上是关于Apple Wallet 动态更新值的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 PHP 中的推送通知更新 Apple Wallet 通行证

Apple Wallet - 替换证书并仍然将更新推送到旧卡

使用 aws api 网关的 Wallet Pass 自动更新 Web 服务

仅包含具有更新值的列的动态更新语句

Zeppelin - 动态表单中默认值的动态更新

ReactJS:如何使用动态键访问和更新嵌套状态对象?