我一直在嘗試過去多久才弄清楚如何從沙箱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