【发布时间】:2016-06-16 05:42:49
【问题描述】:
过去我一直在尝试弄清楚如何从沙盒 APNS 转到生产 APNS。下面是用于向我的应用发送通知的 PHP 代码。
$passphrase = 'SomethingStrong';
$ctx = stream_context_create();
stream_context_set_option($ctx, 'ssl', 'local_cert', $_SERVER['DOCUMENT_ROOT'] . '/ck.pem');
stream_context_set_option($ctx, 'ssl', 'passphrase', $passphrase);
$fp = stream_socket_client(
'ssl://gateway.sandbox.push.apple.com:2195', $err,
$errstr, 60, STREAM_CLIENT_CONNECT|STREAM_CLIENT_PERSISTENT, $ctx);
if (!$fp)
{
//return json_encode(array('response' => 'connection_fail'));
}
$body['aps'] = array(
'alert' => $message,
'sound' => 'default'
);
$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)
return json_encode(array('response' => 'unsuccessful'));
else
return json_encode(array('response' => 'successful'));
fclose($fp);
当我保留 URL ssl://gateway.sandbox.push.apple.com:2195 时,这一切都有效,但是当我将其更改为 ssl://gateway.push.apple.com:2195 时,没有通知通过我的应用程序,但 PHP 输出它已成功发送。
我正在使用开发证书进行代码签名。
我是通知的新手,以前从未使用过它们,如果我做了一些非常明显的事情,很抱歉。谢谢。
【问题讨论】:
-
发送生产通知需要设置production.pem文件。
-
@Alec 检查this 以生成证书。
-
@PramodTapaniya 我重新做了证书过程,但它仍然没有做任何事情。
-
@Yash 我用了他的教程,重新做了证书,什么都没有。
-
@Alec 获取 iPhone 上的生产通知,您必须通过 adHoc 配置文件在 iPhone 上安装应用程序。
标签: php ios objective-c push-notification apple-push-notifications