ios — APNS PHP Push Notification не работает. Тайм-аут

Я пытаюсь отправить Push-уведомление о производственной среде, но она не работает. Ниже приведен код, который я пробую, и он истекает. Никаких ошибок, никаких исключений.
Что в этом плохого?

Замечания: Когда я отправляю push-уведомление с помощью Sandbox (ENVIRONMENT_SANDBOX) и файлы сертификатов развития, это работает. Однако файлы сертификатов производства и ENVIRONMENT_PRODUCTION не работает

<?php
error_reporting(E_ALL);
ini_set('display_errors', 1);

/**
* @param string $device_token   unique device token
* @param string $custom_message message that needs to be pushed
* @param string $push_service   which service to use ( ApnsPHP/UrbanAirship )
*
* @return bool
* @throws ApnsPHP_Exception
* @throws ApnsPHP_Message_Exception
* @throws ApnsPHP_Push_Exception
* @throws Exception
*/
function send_apple_push_notification_test( $device_token, $custom_message, $push_service = 'ApnsPHP' ) {

if ( empty( $device_token ) || empty( $custom_message ) ) {
return false;
}

// Report all PHP errors
error_reporting( -1 );

// Adjust to your time-zone
date_default_timezone_set( 'America/New_York' );

// Using Autoload all classes are loaded on-demand
require_once 'includes/ApnsPHP/Autoload.php';

try {

// Instantiate a new ApnsPHP_Push object
$push = new ApnsPHP_Push(
ApnsPHP_Abstract::ENVIRONMENT_PRODUCTION, '/home/xxxxx/public_html/wp-content/themes/yyyyyy/includes/ApnsPHP-pem/AppPushNotify.pem'
);

// Set the Root Certificate Authority to verify the Apple remote peer
$push->setRootCertificationAuthority( '/home/xxxxx/public_html/wp-content/themes/yyyyyy/includes/ApnsPHP-pem/Entrust_Root_Certification_Authority.pem' );

// Connect to the Apple Push Notification Service
$push->connect();

// Instantiate a new Message with a single recipient
$message = new ApnsPHP_Message_Custom( (string) $device_token );

// Set a custom identifier. To get back this identifier use the getCustomIdentifier() method
// over a ApnsPHP_Message object retrieved with the getErrors() message.
$message->setCustomIdentifier( "xxxyyyzzz-" . time() );

// Set a simple welcome text
$message->setText( (string) $custom_message );

// Play the default sound
$message->setSound();

// Set the expiry value to 30 seconds
$message->setExpiry( 60 );

// Set the "View" button title.
$message->setActionLocKey( 'See the message.' );

// Add the message to the message queue
$push->add( $message );

// Send all messages in the message queue
$push->send();

// Disconnect from the Apple Push Notification Service
$push->disconnect();

// Examine the error message container
$aErrorQueue = $push->getErrors();
print_r( $aErrorQueue );

return true;

} catch ( Exception $e ) {
print_r( $e->getMessage() );
}

return false;
}

echo "start";
send_apple_push_notification_test( '20fcc5090eb1f539ac0fddd345r4d0c50e5bca071b742d3d9833f16dd97adeb', 'Test Msg for Production' );

4

Решение

Чтобы использовать производственную среду, ваше приложение должно быть подписано вашим сертификатом распространения. Единственный способ проверить это — либо отправить заявку в App Store, либо загрузить версию App Store для своего приложения; или используйте сборку AdHoc. Вы не можете использовать рабочую рабочую среду, когда ваше приложение подписано вашим сертификатом разработки.

Если вы сделали все это, убедитесь, что вы не используете тот же токен устройства для производственной среды, который вы получили из среды разработки. Они будут разными.

1

Другие решения

Других решений пока нет …