我的PNS在开发模式下运行良好。 我使用raywendelich博客完成了这个。 同样地,我在生产模式下创建了证书,并从服务器运行相同的脚本,但没有收到任何通知。 p>
当我们从服务器进行生产模式测试时,需要采取哪些额外步骤。非常紧急 需要。 请帮助您为生产模式做些什么。 p>
我们的PHP代码 p>
<?php
//放置您的设备 令牌在这里(没有空格):
$ deviceToken ='d5d89cab86e6f1a3cfa66dd853f3f4d7dd932c4a6da793cb9c86d31e9cfcb31f';
//在此处输入私钥的密码:
$ passphrase ='*******';
// 将警报消息放在此处:
$ message ='****';
$ ctx = stream_context_create();
stream_context_set_option($ ctx,'ssl','local_cert','ckm.pem') ;
stream_context_set_option($ ctx,'ssl','passphrase',$ passphrase);
//打开与APNS服务器的连接
$ fp = stream_socket_client(
'ssl://gateway.push .apple.com:2195',$ err,
$ errstr,60,STREAM_CLIENT_CONNECT | STREAM_CLIENT_PERSISTENT,$ ctx);
if if(!$ fp)
exit(“连接失败:$ err $ errstr”。 PHP_EOL);
echo'连接到APNS'。 PHP_EOL;
//创建有效负载主体
$ body ['aps'] = array(
'alert'=> $ message,
'sound'=>'default'
);
//将有效负载编码为JSON
$ payload = json_encode($ body);
//构建二进制通知
$ msg = chr(0)。 打包('n',32)。 pack('H *',$ deviceToken)。 pack('n',strlen($ payload))。 $ payload;
//将其发送到服务器
$ result = fwrite($ fp,$ msg,strlen($ msg));
if if(!$ result)
echo'消息未送达 '。 PHP_EOL;
else
echo'消息已成功发送'。 PHP_EOL;
//关闭与服务器的连接
fclose($ fp);
code> pre>
div>