В диалоговом окне оплаты покупки приложения не отображается в Mac OS Lion - PullRequest
1 голос
/ 08 декабря 2011

Я пишу приложение для Mac для Mac App Store, которое используется при покупке приложения. Я дважды проверил, и я думаю, что все реализовал правильно. Поэтому, когда я делаю запрос продукта, метод делегата

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response

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

[[SKPaymentQueue defaultQueue] addPayment:payment];

Проблема появляется в этой точке. В первые 10-15 минут диалог покупки вообще не появляется, и я также не получаю уведомление updatedTransactions. Через некоторое время, если я попытаюсь снова, все работает правильно, через 1-2 секунды мне будут предложены мои учетные данные. Это кажется очень странным для меня, потому что они должны работать с самого начала. Из-за этого мое приложение было отклонено несколько раз, заявив, что в приложении покупки не работают.

Да, я добавил код подтверждения квитанции, и, если он не существует, я выхожу из приложения с кодом 173, у меня запрашивают учетные данные, затем приложение открывается, но входящие приложения не работают даже после , И да, я проверил это со сборкой, которая была создана с профилем распространения. Я использую XCode 4.2, и моя ОС - Lion.

После добавления платежа в очередь я попытался запустить таймер, чтобы периодически проверять свойство transactions SKPaymentQueue. transactionIdentifier является правильным, и transactionState является SKPaymentTransactionStatePurchasing. Это говорит мне, что существует некоторая проблема связи между StoreKit и серверами Apple.

Кто-нибудь еще сталкивался с этой проблемой? Буду признателен за любую помощь, я борюсь с этим уже 3 дня и не могу найти решение для этого, и это сводит меня с ума.

1 Ответ

0 голосов
/ 16 декабря 2011

Я наконец нашел ответ. Я действительно все правильно реализовал в соответствии с Руководством по программированию в приложении.

Кажется, что я делал неправильно, так это добавил наблюдателя транзакции перед кодом подтверждения получения. После того, как я изменил заказ (сначала проверьте квитанцию, затем добавьте наблюдателя), все работало правильно. Эта деталь должна быть где-то упомянута. Это вызвало сильную головную боль.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...