我一直在尝试过去多久才弄清楚如何从沙箱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);
这整个事情的作品时,我把网址ssl://gateway.sandbox.push.apple.com:2195
,但是当我,当我将其更改为ssl://gateway.push.apple.com:2195
没有通知来通过它发送成功我的应用程序,但PHP输出。
我正在使用开发证书进行代码签名。
我是新来的通知,并从未使用过他们,所以很抱歉,如果我做的事情真的很明显。谢谢。
您需要设置production.pem文件来发送生产通知。 –
@Alec Check [this](http://www.raywenderlich.com/32960/apple-push-notification-services-in-ios-6-tutorial-part-1)用于证书生成。 – Yash
@PramodTapaniya我重新做了证书过程,但它仍然没有做任何事情。 – Alec