2015-05-21 3 views
4

Я пытаюсь протестировать разговор с сервером песочницы push push apple.отправка обновления сберегательной брошюры с помощью pushsharp

Я сделал сертификат следующий this link (включен толчок уведомление, запрошенный сертификатную, загружен, генерируется сертификат, экспорт p12)

Я сделал # консольное приложение образец C, который выглядит следующим образом

PushBroker push = new PushBroker(); 

var appleCert = File.ReadAllBytes(@"devapns.p12"); 
push.OnNotificationSent += NotificationSent; 
push.OnChannelException += ChannelException; 
push.OnServiceException += ServiceException; 
push.OnNotificationFailed += NotificationFailed; 
push.OnDeviceSubscriptionExpired += DeviceSubscriptionExpired; 
push.OnChannelCreated += ChannelCreated; 
push.OnChannelDestroyed += ChannelDestroyed; 

push.RegisterAppleService(new ApplePushChannelSettings(false,appleCert,"password")); 

push.QueueNotification(new AppleNotification() 
          .ForDeviceToken(token) 
          .WithPasskitUpdate()); 



push.StopAllServices(waitForQueuesToFinish: true); 

Когда я бегу я получаю

было достигнуто максимальное количество попытки отправки

Версия PushSharp В настоящее время я использую 2.2.1.0

Есть ли что-то еще мне нужно сделать? Мне нужно включить SSL где-нибудь? Является ли мой сертификат неправильно установленным на моем локальном компьютере. Я не знаю, где я ошибаюсь.

Примечание: файл p12 о 3KB

Я установил сертификат развития на локальном компьютере только для тестирования при запуске этого консольного приложения

UPDATE:

мне удалось получить уведомления успешно отправляется в apns. Однако единственная проблема заключается в том, что пропуски не обновляются на пользовательском устройстве. Согласно this link, мой веб-сервис должен получить список действительных серийных номеров после вызова устройства после получения уведомления об обновлении сберегательной книжки из APNS. Однако этого никогда не бывает.

Кажется, что я могу успешно отправить свое уведомление в Службу уведомлений Apple, но оттуда apns не могут отправить его на устройство. Есть предположения?

Сейчас я подписываю пропуск и отправляет уведомление APNS, используя тот же сертификат удостоверения типа прохода.

ответ

1

Таким образом, я, наконец, смог обновить пропуск в сберегательной книге, используя APNS. Это был трудный процесс, и я не принимал во внимание много разных вещей. Вот пара вещей, которые нужно иметь в виду.

  1. Убедитесь, что вы используете тот же файл .p12 при подписании прохода и использовании pushsharp. (Я изначально использовал другой .p12, связанный с регулярными push-уведомлениями). Поэтому ссылка, которую я изначально разместил в этом вопросе, немного ошибочна, вы будете следовать этим шагам для регулярных push-уведомлений. Но для уведомлений с помощью бланков вы должны использовать файл .p12, связанный с вашим идентификатором типа проезда

  2. В PushSharp обязательно отключите проверку сертификата производства/песочницы. Для сберегательной книги нет среды для песочницы, поэтому все должно указывать на производство. В этой строке, добавить дополнительный параметр true отключить проверку

    push.RegisterAppleService(new ApplePushChannelSettings(false,appleCert,"password", true));

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

  4. Точный токен, который вы получаете, отличается от DeviceIDToken, который вы получите при регистрации для регулярных push-уведомлений. Толкающий токен является эксклюзивным списком выписок

  5. Убедитесь, что на вашем сервере установлены надлежащие сертификаты. Например, я должен был установить идентификационный сертификат типа пропуск

  6. Сделайте telnet feedback.push.apple.com 2196, чтобы убедиться, что вы можете ударить по серверу APNs

Смежные вопросы