没有收到生产证书的推送通知
Posted
技术标签:
【中文标题】没有收到生产证书的推送通知【英文标题】:Not Getting Push Notification for Production Certificate 【发布时间】:2014-05-05 11:35:41 【问题描述】:我已阅读有关此主题的许多答案,但建议的解决方案无法解决问题。我的问题是我。相同的推送通知已成功获得开发证书。我特别想说的是,我的生产和开发环境的设备令牌是完全不同的。因此,相同的设备令牌没有问题。另外,我对两者都使用不同的配置文件。意思是说,应用级别没有配置问题。
我们使用 php 作为发送推送通知的服务器。
这是我的两个问题:
-
服务器端是否缺少任何东西?哪个 PHP 服务器为开发环境成功发送推送通知,而对于生产环境,它的生成问题?
我是否缺少应用程序中的任何内容?
我会非常感谢你们所有人。我被困在这个问题上。非常感谢提前
【问题讨论】:
在PHP服务器中,您在发送通知时是否从APNs服务器收到任何错误? 您的应用在应用商店中上线了吗? @Natarajan App 已在 App Store 上线,没有推送通知相关的内容;因为它将在下一个版本中出现 你在 PHP 服务中使用的是什么 url? 你看看这个***.com/questions/12447025/… 【参考方案1】:检查 iphone 推送通知的 php 函数...
function iphone_notification($deviceToken,$message,$not_type,$sound,$vibration_type)
$passphrase = '******';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client('ssl://gateway.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
$body['aps'] = array('alert' => $message, 'sound' => $sound);
$body['notification_type'] = $not_type;
$body['vibration_type'] = $vibration_type;
//1 = news;
//99 = other;
//echo $err."<br>".$errstr;
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
$result = fwrite($fp, $msg, strlen($msg));
fclose($fp);
【讨论】:
【参考方案2】:我遇到了同样的问题。如果您的 .pem 文件正确,则使用以下设置您将收到推送通知。 (check terminal commands to make .pem)
//for development profile
$apns_url = 'gateway.sandbox.push.apple.com';
//for production you should use this
$apns_url = 'gateway.push.apple.com';s.
更多详情请查看link1 >>link2 >>
【讨论】:
以上是关于没有收到生产证书的推送通知的主要内容,如果未能解决你的问题,请参考以下文章