2017-01-14 26 views
0

iosモバイルデバイスでプッシュ通知を送信するためのPHPコードはありますが、通知は送信されません。私はデバイストークンを使用しています。PHPコードを使用してプッシュ通知を送信しますが、iosで通知を送信しません

iPhoneにMacを接続してアプリを実行すると、アプリがインストールされ、プッシュ通知が正常に送信されますが、アプリストアからアプリをダウンロードすると機能しません。

//send notification code 
function send_apns($deviceToken,$body){ 

$ctx = stream_context_create(); 
stream_context_set_option($ctx, 'ssl', 'passphrase', 'vision'); 
stream_context_set_option($ctx, 'ssl', 'local_cert', VIS_PATH_PLUGINS.'iphone/ckProd.pem'); 
$fp = stream_socket_client('ssl://gateway.sandbox.push.apple.com:2195', $err, $errstr, 60, STREAM_CLIENT_CONNECT, $ctx); 
stream_set_blocking ($fp, 0); 
if (!$fp) { 
    echo "Failed to connect (stream_socket_client): $err $errstrn"; 
} else { 

    $apple_expiry = time() + (90 * 24 * 60 * 60); 
    $apple_identifier = 1; 
    $payload = json_encode($body); 
    $msg = chr(0) . chr(0) . chr(32) . pack('H*', str_replace(' ', '', $deviceToken)) . chr(0) . chr(strlen($payload)) . $payload; 
    $result = fwrite($fp, $msg, strlen($msg)); 
    print_r($body); 
    fclose($fp); 
    if (!$result) 
     echo 'Message not delivered' . PHP_EOL; 
    else 
     echo 'Message successfully delivered' . PHP_EOL; 
} 

}

+0

ひどくフォーマットされていて、英語が貧弱だった質問を明確にしようとしました。 –

答えて

0

あなたが開発・生産ビルドに異なるPem Certificate and APNS Gatewayを使用する必要があることが知られています。

App Storeからビルドが生産一つであるため、あなたが避難所あれば本番PEM証明書に住所し

gateway.push.apple.com:2195

VIS_PATH_PLUGINS.'iphone/ckProd.pemSSLアドレス

gateway.sandbox.push.apple.com:2195 

を変更する必要がありますそれはまだ変更されていません。

希望すると助かります!あなたは、そのアプリを生きるアプリケーションが開発モードである場合​​が使用されているので、あなたの目的地から​​を削除するためにプッシュ通知を送信する場合

0

リンク先'ssl://gateway.sandbox.push.apple.com:2195'は​​が含まれていてはいけません。また、生産環境のPem Certificate and APNS Gatewayを使用する必要があります。

関連する問題