【发布时间】:2021-04-28 14:51:12
【问题描述】:
自上周星期五(4 月 23 日)以来,一切正常,我收到了沙盒和生产通知。但是当我现在检查时,通知不起作用。我检查了我的 .pem 文件有效期到 2021 年 12 月,当我运行以下代码时,结果是“消息已成功传递”。我不知道发生了什么。请帮帮我。
<?php
$deviceToken = "a9eb9cd54446b5cad4fa3636dbe822b5d420126fdbb632ef79b4bf07bfd8b6b4";
$passphrase = 'secret';
$message = "Hello world!";
$ctx = stream_context_create();
$passphrase = 'secret';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', 'certi.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);*/
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err,$errstr, 60,STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp){
exit("Failed to tess connect: $err $errstr" . PHP_EOL);
}
$body = array('aps' => array('alert' => $message,'sound' => 'default','badge' => 1),'rewards_badge' => 1);
$payload = json_encode($body);
$msg = chr(0) . pack('n', 32) . pack('H*', $deviceToken) . pack('n', strlen($payload)) . $payload;
$result = fwrite($fp, $msg, strlen($msg));
if (!$result){
echo 'Message not delivered' . PHP_EOL;
}else{
echo 'Message successfully delivered' . PHP_EOL;
}
fclose($fp);
?>
谢谢
【问题讨论】:
标签: ios iphone xcode apple-push-notifications pem