1

我们使用apns-php来实现推送通知服务,最近遇到了这个问题:

推送通知适用于我们的开发配置文件,不适用于生产。

我们从苹果服务器没有收到任何错误,我们可以看到它们工作正常。这是日志

2012/05/09 07:26:50 [trace] [push_notification] APNS: INFO: Trying ssl://gateway.push.apple.com:2195...
2012/05/09 07:26:51 [trace] [push_notification] APNS: INFO: Connected to ssl://gateway.push.apple.com:2195.
2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:209
2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:323
2012/05/09 07:26:51 [trace] [push_notification] APNS: Added recipient iPad with YSA_ID:326
2012/05/09 07:26:51 [trace] [push_notification] APNS: INFO: Sending messages queue, run #1: 3 message(s) left in queue.
2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 1 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes.
2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 2 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes.
2012/05/09 07:26:51 [trace] [push_notification] APNS: STATUS: Sending message ID 3 [custom identifier: YSA-Notification-ID#181] (1/3): 121 bytes.
2012/05/09 07:26:52 [trace] [push_notification] APNS: INFO: Disconnected.

如您所见,没有错误。但在 iPad 上没有收到任何通知。

也许有人以前遇到过这个问题?任何帮助将不胜感激。

谢谢!

4

2 回答 2

1

在某处我读到这两个 SSL 证书都可以放入一个 PEM 文件中。不幸的是,这个提示似乎不正确......

我发现在一个 PEM 文件中同时拥有生产和沙盒 SSL 证书会导致生产环境静默失败。

解决方案是将 PEM 拆分为两个单独的文件并相应地将其传递给服务器:

$server=new ApnsPHP_Push_Server(ApnsPHP_Abstract::ENVIRONMENT_SANDBOX, 'server_certificates_bundle_sandbox.pem');

或者

$server=new ApnsPHP_Push_Server(ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, 'server_certificates_bundle_production.pem');

之后,一切正常。

于 2012-07-24T02:13:53.760 回答
0

另请检查您的 App Id 是否启用推送通知

于 2014-03-13T07:10:47.087 回答