IOSデバイスでのプッシュ通知のAPNSphpコードで問題が発生しています。開発用と本番用に2つの別々の接続があります。
URL:'ssl://gateway.sandbox.Push.Apple.com:2195'
$Push = new ApnsPHP_Push(
ApnsPHP_Abstract::ENVIRONMENT_SANDBOX,
'APNS_Dev_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$Push->setLogger($myNewLogger);
// Set the Provider Certificate passphrase
$Push->setProviderCertificatePassphrase('1234567');
$Push->setRootCertificationAuthority('APNS_Dev_ISAS.pem');
$Push->connect();
問題:
URL:ssl://gateway.Push.Apple.com:2195
$Push = new ApnsPHP_Push(
ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION,
'APNS_PROD_ISAS.pem'
);
$myNewLogger = new MyNewLogger();
$Push->setLogger($myNewLogger);
// Set the Provider Certificate passphrase
$Push->setProviderCertificatePassphrase('12345678');
$Push->setRootCertificationAuthority('APNS_PROD_ISAS.pem');
$Push->connect();
接続エラー:情報:ssl://gateway.Push.Apple.com:2195を試行しています...エラー: 'ssl://gateway.Push.Apple.comに接続できません:2195 ':( 0)情報:接続を再試行します(1/3)...情報:ssl://gateway.Push.Apple.com:2195を試行しています...エラー:' ssl://に接続できませんGateway.Push.Apple.com:2195':(0)情報:接続を再試行してください(2/3)...情報:ssl://gateway.Push.Apple.com:2195を試行しています...エラー:接続できません'ssl://gateway.Push.Apple.com:2195'に接続します:(0)情報:接続を再試行します(3/3)...情報:ssl://gateway.Push.Apple.com:2195を試行しています...エラー:「ssl://gateway.Push.Apple.com:2195」に接続できません:(0)
私は問題をグーグルで検索し、いくつかの解決策を見つけました。すべてをチェックしましたが、すべて問題ありませんが、成功しません。
どんな助けでも本当にありがたいです。前もって感謝します。
プッシュ通知用に作成された問題のある証明書(.pem)。
解決策:同じ問題を数日試した後、ミニ文字パスファレスで証明書を作成すると1234になる可能性があることがわかりました。これは完璧に機能し、IOSプッシュ通知サーバー。
これは他の誰かを助けるかもしれません。
ありがとう。
PHPスクリプトを実行すると、同じ問題が発生しました。調査の結果、これら3つのキーペア値 'cafile'、 'CN_match'、および 'ciphers'にコメントしました。
その後、正常に動作し始めました。この返信が他の人にも役立つことを願っています。
$contextOptions = array(
'ssl' => array(
'verify_peer' => false, // You could skip all of the trouble by changing this to false, but it's WAY uncool for security reasons.
// 'cafile' => 'NiteVisionWebPushFile.pem',
// 'CN_match' => 'gateway.Push.Apple.com', // Change this to your certificates Common Name (or just comment this line out if not needed)
// 'ciphers' => 'HIGH:!SSLv2:!SSLv3',
'disable_compression' => true,
));