passkit - 通过推送通知传递不刷新。 (服务器响应格式错误)
Posted
技术标签:
【中文标题】passkit - 通过推送通知传递不刷新。 (服务器响应格式错误)【英文标题】:passkit - pass not refreshing via push notification. (Server response was malformed) 【发布时间】:2017-11-23 22:24:39 【问题描述】:我已成功集成 passkit,但在通过推送通知更新存折时遇到问题。 钱包成功收到通知,但未更新通行证。
以下是我已经实施的步骤:
-
使用 XMPP 服务器 (php)。
在 php 中使用此库生成通行证 (https://github.com/tschoffelen/PHP-PKPass)。我已替换通行证类型和团队标识符。
将通行证添加到钱包的 Swift 代码。成功创建通行证并添加到钱包。
要刷新通行证“拉刷新”在钱包应用程序中工作。
这是我的完整代码(PHP + SWIFT): https://www.dropbox.com/sh/e3wk8bwqgv8zs3f/AACZa_x7vD8KByl6WdrrgNExa?dl=0
这里有一些日志:
-
创建通行证时:https://www.dropbox.com/s/j14zfudy9mbllmp/add%20card.png?dl=0
在钱包上添加卡:-https://www.dropbox.com/s/yek9rf8js45p8xb/add%20card%20to%20wallet.png?dl=0
从钱包应用https://www.dropbox.com/s/k1sfpxfbqlwwu6q/pull%20to%20refresh%20request%201.png?dl=0拉刷新两个请求
https://www.dropbox.com/s/9jall5xmxpx806o/pull%20to%20refresh%20request%202.png?dl=0
收到推送通知时,来自钱包的两个请求:
https://www.dropbox.com/s/sg3v9sgyu0w1e3n/push%20request%201.png?dl=0
https://www.dropbox.com/s/xd2us3771f2xn3s/push%20request%202.png?dl=0
错误是服务器响应格式错误...
请帮忙!
谢谢!
【问题讨论】:
你能拿到原始包吗 - 你有 2 个不同的内容长度 381636 拉和 381635 推。 我每次都会生成新的捆绑包进行拉取和推送。我没有注意到内容长度。 1个字节的差异可能会导致问题吗?您是否看到错误“服务器响应格式错误......等等”? 你好@Parimal,你能帮我从管理面板更新通行证吗?我们已成功将通行证添加到苹果钱包,但在更新时收到错误消息。从服务器日志文件记录。 "logs":["[2018-09-25 11:50:09 +0530] 获取序列号任务(对于设备 49deeaee707d67dbb44ac89480a58124,传递类型 PASSIDHERE,最后更新(null);使用 Web 服务 url http:\/\ /pass.abc.com\/admin\/mypkpass\/devices) 遇到错误:服务器响应格式错误(无法读取数据,因为它的格式不正确。)"] 【参考方案1】:我自己解决了这个问题。 问题出在“Last-Modified”标题日期格式中。
PKPass.php 文件中应该是header('Last-Modified: ' . gmdate('D, d M Y H:i:s T'));
我收到了推送通知,我的通行证现在会自动更新。
谢谢!
【讨论】:
我有同样的问题,你能帮帮我吗? ***.com/questions/44838318/… 嘿!当然。发布您的详细信息以了解。 你介意帮助我吗?我正在使用大多数相同的资源,但不是很快。我有一个服务器页面 - 单独生成的通行证。 ***.com/questions/45981359/apple-wallet-passkit-pass 在我的例子中,错误是 Last-Modified 格式。正确的格式是 header('Last-Modified: ' .gmdate('D, d M Y H:i:s T'));以上是关于passkit - 通过推送通知传递不刷新。 (服务器响应格式错误)的主要内容,如果未能解决你的问题,请参考以下文章