iPhone - не может проверить покупки в приложении - PullRequest
1 голос
/ 29 августа 2009

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

  1. Выйти из любых существующих учетных записей
  2. Откройте приложение и начните получать список доступных продуктов
  3. Запустите процесс загрузки продукта

    SKPayment * payment = [SKPayment paymentWithProductIdentifier: productId];

    [[SKPaymentQueue defaultQueue] addPayment: payment];

Теперь в идеале меня должны спросить имя пользователя / pwd на этом этапе. Но мне ничего не предлагают, и транзакция не выполняется (очевидно, потому что я не вошел в систему)

Если я пытаюсь войти через Настройки-> Магазин, он запрашивает информацию о моем кредите, которая, я уверен, не нужна.

Может кто-нибудь помочь мне с этой проблемой.

Спасибо ... * * 1023

Ответы [ 4 ]

3 голосов
/ 26 сентября 2009

Хорошо. Это было глупо! Но надеюсь, что кто-то может извлечь уроки из моих ошибок :) Я тестировал покупку в приложении с профилем распространения adhoc. И, как утверждают инженеры Apple, как только вы это сделаете, тестовая учетная запись «перестанет» быть тестовой.

Покупки в приложении МОГУТ БЫТЬ ИСПЫТАНЫ ТОЛЬКО при запуске приложения через XCode в режиме отладки!

Обновление

Это больше не так. Предположительно, теперь он отлично работает и со сборками adhoc.

Источник: недавнее тестирование покупок в приложении с использованием adhoc build.

1 голос
/ 05 сентября 2009

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

0 голосов
/ 23 января 2010

Я столкнулся с той же проблемой. Как предположил Олег, проблема заключалась в том, что идентификатор продукта был недействительным. Установите точку останова на

- (void)productsRequest:(SKProductsRequest *)request didReceiveResponse:(SKProductsResponse *)response and check response.products. 

Вы можете обнаружить, что productID отсутствует в response.products. Когда это произойдет, транзакция будет продолжена как отмена покупки пользователем, поэтому никогда не запрашивать логин.

0 голосов
/ 02 сентября 2009
  1. Проверьте canMakePayments
  2. В Симуляторе StoreKit просто не отвечает: вам следует протестировать на устройстве
  3. Вы должны добавить хотя бы одного наблюдателя в SKPaymentQueue
  4. Попробуйте сначала запросить список продуктов (помимо того, что вы уже знаете productId); это звучит глупо, но рамки SK далеки от совершенства.

Кроме того, при отправке {"мит-данные ": ...} на сервер верификации закодируйте квитанцию ​​с помощью Base64, прежде чем вставлять ее в объект json. Это нигде не упоминается в официальных документах: только на нескольких блогах.

...