【问题标题】:Invalid token when using Apple Push Notifications (APN) for Passbook对 Passbook 使用 Apple 推送通知 (APN) 时令牌无效
【发布时间】:2013-02-17 19:51:57
【问题描述】:

我正在尝试为存折 APN 创建服务器端实现,但服务器不喜欢设备给我的推送令牌。如果我将令牌发送到 Apple 的沙盒服务器,它会向我发送“无效令牌”响应。如果我将令牌发送到 Apple 的生产服务器,它会将反馈服务中的令牌作为我应该从列表中删除的令牌返回。至少我知道 APN 证书和与服务器的连接工作正常。

我的 iPhone 4s 已启用开发。为开发和生产启用了 APP ID,并且在配置文件中启用了设备。我已经验证了 32 字节的二进制令牌数据对于从设备发送的字符串令牌来说是正确的。

我的一个问题是,设备中的存折如何确定使用哪个令牌(开发与生产)?我现在更愿意使用沙盒环境,但我不确定如何“选择”它。

我已经看到了类似的主题,但似乎没有一个问题的答案。这真的很令人沮丧,因为我觉得我离完成这项工作如此之近!提前感谢您的任何建议!

【问题讨论】:

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


    【解决方案1】:

    如果您使用生产证书连接到 APN 生产服务器,则必须使用生产令牌。

    您在向沙盒服务器发送通知时收到“无效令牌”这一事实意味着您使用的是生产令牌,该令牌仅适用于生产服务器。

    将令牌发送到生产服务器会在反馈服务中返回令牌这一事实意味着与证书匹配的应用程序(您的服务器用于发送通知)已从设备中卸载或已禁用推送通知.可能您使用了错误的证书(可能属于从设备上卸载的不同应用的证书)。

    【讨论】:

    • 感谢您的反馈!供应门户中的唯一证书是根据证书->历史记录的开发证书。
    • APP ID 为 APN 启用了 dev 和 prod 证书,这些是我用来连接到 Apple 服务器的证书,具体取决于我连接到的服务器。我在手机上安装了存折应用程序(无法卸载它),并且在通知设置中启用了通知。我也重新启动了手机并卸载了通行证并重新安装了很多次,结果相同。谢谢。
    • 好吧,存折编程指南说:"You use the same certificate and private key for sending push notifications as for signing passes." 这意味着您不应该使用应用程序的常规推送通知证书来进行存折通知。
    • 有效!非常感谢!!!我没有注意到指南中的那一行,因为它不在我使用的“本地和推送通知编程指南”中。我现在使用相同的通行证类型 ID 证书来签署通行证并连接到 APN 服务器。我仍然不确定如何让设备使用令牌以用于开发服务器,但我想我现在不需要它正在工作。再次感谢!
    • 不客气。我在某处读到您无法通过沙盒服务器发送 Passbook 推送通知,但我没有在指南中看到它。
    【解决方案2】:

    对于 Passbook 推送,您需要使用 Pass Type ID 证书而不是 App 证书连接到 生产服务器

    所有 Passbook 推送都经过生产服务器,无法使用沙盒。

    此外,对于 Passbook 推送,推送有效负载应该为空。您发送的任何内容都将被忽略。

    【讨论】:

      【解决方案3】:

      找到这个问题的根本原因,是因为私钥不正确。要解决此问题,只需使用 .pem 生成 .p12 证书。要使用 .pem 文件创建 p12 文件,请按照以下方法进行

      【讨论】:

        【解决方案4】:

        以文本格式重写上述语句,以便您可以复制/粘贴它们。这对我有用,PushSharp 4.0.10 返回一个关于无效证书的错误,但在原始公钥和私钥上执行这些命令可以解决问题:

        openssl x509 -in aps.cer -inform DER -out aps.pem -outform PEM
        openssl pkcs12 -nocerts -in mykey.p12 -out mykey.pem
        openssl pkcs12 -export -inkey mykey.pem -in aps.pem -out iphone.p12
        

        【讨论】:

          【解决方案5】:

          我坚持了一个小时,然后找到了解决方法: 在 xcode 11 中:项目设置 -> 唱歌和功能 -> (+) -> 背景 -> 勾选远程通知。

          【讨论】:

            猜你喜欢
            • 2019-08-08
            • 2012-04-06
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2017-11-18
            • 2018-12-05
            • 1970-01-01
            • 1970-01-01
            相关资源
            最近更新 更多