从 PHP 发送推送通知时出现主键错误

Posted

技术标签:

【中文标题】从 PHP 发送推送通知时出现主键错误【英文标题】:Primary key error when sending Push Notifications from PHP 【发布时间】:2011-09-16 10:18:16 【问题描述】:

我开发了一个使用 APNS 的简单应用程序。该应用程序运行良好并在我将主机用于 php 时收到通知,但当我将带有证书的 php 代码发送给另一个国家的人时,它没有收到通知。然后他在其一侧执行 apns php 代码,但 iPhone 应用程序没有收到任何通知。它在php代码中给出主键错误。

我已经按照这个教程http://www.raywenderlich.com/3443/apple-push-notification-services-tutorial-part-12

请帮忙。

【问题讨论】:

【参考方案1】:

要在另一台服务器上使用您的证书,您应该导入您的私钥并将其安装在该服务器上。如果它不会被安装,那么第二台服务器就不能使用你用来连接 APNS 的证书。

我想,你忘了这样做。

【讨论】:

另一台服务器是windows系统,我可以在哪台服务器上安装主键。如果您在谈论 .pem 文件,他已将其与 php 文件放在该服务器上。【参考方案2】:

我使用了Boxed Ice's awesome guide,它会引导您导出证书和私钥,并将其转换为 PHP 可以用来与 APNS 通信的格式。效果很好。

【讨论】:

【参考方案3】:

您的 pem 文件是否也包含私钥?

【讨论】:

其他人可以连接到apns吗?可以使用以下命令进行检查 $ openssl s_client -connect gateway.sandbox.push.apple.com:2195 -cert YourSSLCertAndPrivateKey.pem -debug -showcerts -CAfile server-ca-cert.pem 看起来像是某种与配置相关的问题。 您能否详细说明一下具体问题是什么?他收到了什么确切的错误?使用上述命令连接到 apns 服务器是否正常工作?【参考方案4】:

我已经找到了我的问题的解决方案,它是密码短语的问题。在服务器端,我们必须在将 .pem 文件添加到服务器时输入密码。

【讨论】:

以上是关于从 PHP 发送推送通知时出现主键错误的主要内容,如果未能解决你的问题,请参考以下文章

使用 curl 命令发送推送通知时出现无效注册错误

在 GCM 中发送推送通知时出现未经授权的错误

发送推送通知时出现 Worklight 错误

使用 notnoopapns 向 apns 发送推送通知时出现 ssl 错误

在向数千名用户发送 android 推送通知时出现 405 错误

通过移动优先平台发送 Apple 推送通知时出现无效的十六进制字符错误