【问题标题】:How is should look like push notifications request to wallet/passbook?对钱包/存折的推送通知请求应该如何?
【发布时间】:2017-11-06 09:11:44
【问题描述】:

我看到了很多关于如何将推送通知发送到存折的问题,但我没有找到正确的答案应该看起来像请求。我已经创建了存折/钱包优惠券,我收到了来自苹果的 POST 请求,负载中包含 "pushToken",URL 中包含设备 ID。我的优惠券 pass.json 包括下一个字段: { "key" : "TestDiscount", "label" : "Discount", "value" : "1%", "changeMessage": "Discount updated to %@." } 现在我尝试更新优惠券中的 折扣 值,但我现在不知道如何 :( 经过大量测试后我做到了,但当它发生时我没有这样做,所以现在我知道那是可能是因为我做到了,但不知道我是如何做到的 :) 你能解释一下它应该是什么样的推送请求吗?我需要在任何地方使用设备 ID 吗?所以正确的有效载荷是:{"pushToken":"token which I received from apple","TestDiscount":"newValue"}?以及何时/何时必须使用优惠券 pass.json 中的 authenticationToken。我真的卡住了

【问题讨论】:

    标签: ios push-notification apple-push-notifications passbook wallet


    【解决方案1】:

    您需要在推送请求中发送一个空负载。

    当设备接收到它时,它将调用您的网络服务,首先获取该设备需要更新的序列列表,然后下载包含新数据的完整 pkpass 包。

    如果您的 TestDiscount 键的值与旧通道中的值不同,则会显示更改消息。

    【讨论】:

    • 亲爱的@PassKit,当我发送任何东西(或没有你所说的)时,我在 pass.json 的 webServiceURL 中收到了对我的服务器的 GET 请求,它看起来是:/v1/devices/**DEVICE ID**/registrations/pass.test.com,当我为此发送答案时请求为 coupo.pkpass 我收到了另一个 POST 请求 POST /v1/log,其中包含下一个:
    • {"logs":["[2017-11-06 15:12:06 +0200] Get serial #s task (for device DEVICE ID, pass type pass.vinnoteka.com, last updated (null); with web service url https:\/\/f1378d11.ngrok.io) encountered error: Server response was malformed (The data couldn’t be read because it isn’t in the correct format.)"]} 但是当我将 GET 请求的答案发送为 {"kitchenDiscount":"01%"} 时没有任何反应......我真的很困惑
    • 对于这个请求,您需要发送需要更新的通行证序列号。对于下一个请求(获取最新版本的通行证),您需要发送整个 .pkpass 包。您不会只发送已更改的内容,因为必须对新内容进行签名,这就是发送新捆绑包的原因。
    • 非常有趣,当我更改 pass.json 中的值 kitchenDiscount 然后在我的 Mac 上再次生成 coupon.pkpass ,我已经打开它并按下更新按钮 - 我在我的 iPhone 上收到了推送通知,但没有收到对我的服务器的任何请求....
    • 这是正确的 - 当您将通行证替换为另一个通行证时,Wallet 会根据旧通行证检查新通行证的内容,并针对任何更改的字段显示本地通知。推送请求不是通知,它只是告诉 Wallet 调用您的服务器以获取新包的触发器。您所描述的与 Wallet 下载新捆绑包后发生的情况相同。消息始终是本地通知。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-11-02
    • 1970-01-01
    • 2022-08-08
    • 2016-04-21
    相关资源
    最近更新 更多