Система не отображает никаких уведомлений при отмене покупки, это зависит от вашего приложения. См. Шаг № 10 в документации .
В основном это выглядит так:
Метод paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions
вашего transactionObserver
вызывается всякий раз, когда транзакция начинается, успешно или неудачно. Если это не удастся, -[SKPaymentTransaction error]
будет содержать обычный NSError. Затем вы можете проверить его код и действовать соответственно.
Известные коды: (от <StoreKit/SKError.h>
)
// error codes for the SKErrorDomain
enum {
SKErrorUnknown,
SKErrorClientInvalid, // client is not allowed to issue the request, etc.
SKErrorPaymentCancelled, // user cancelled the request, etc.
SKErrorPaymentInvalid, // purchase identifier was invalid, etc.
SKErrorPaymentNotAllowed // this device is not allowed to make the payment
};
Возможно, вы хотите проверить хотя бы SKErrorPaymentCancelled и SKErrorPaymentNotAllowed.
Другим интересным моментом является то, что в NSError содержится localizedDescription
, который вы можете отобразить в UIAlertView
. Вот где, вероятно, появляется текст «Не удается подключиться к iTunes Store».
(Также, возможно, связано с этим: магазин песочницы, используемый для проверки покупки в приложении, является ненадежным, что может объяснить ошибку.)