SKPaymentQueue
Оператор импорта
Swift
import StoreKit
Objective C
@import StoreKit;
Доступность
Доступный в iOS 3.0 и позже.
SKPaymentQueue класс предоставляет очереди платежных операций, которые будут обработаны App Store. Очередь платежа связывается с App Store и представляет пользовательский интерфейс так, чтобы пользователь мог разрешить оплату. Содержание очереди является персистентным между запусками Вашего приложения.
Для обработки платежа сначала присоедините по крайней мере один объект наблюдателя к очереди. Затем добавьте объект платежа для элемента, который пользователь хочет купить. Каждый раз, когда Вы добавляете объект платежа, очередь создает объект транзакции обработать тот платеж и ставит в очередь его, чтобы быть обработанной. После того, как платеж выполняется, очередь обновляет объект транзакции и затем вызывает любые объекты наблюдателя обеспечить их обновленная транзакция. Ваш наблюдатель должен обработать транзакцию и затем удалить ее из очереди.
Точный механизм, который Вы используете для обработки обработанной транзакции, зависит от проекта приложения и купленного продукта. Вот несколько типичных примеров:
Если продуктом является функция, уже встроенная в Ваше приложение, то обработать транзакцию, Ваше приложение активировало бы опцию.
Если бы продукт включает загружаемое содержание, предоставленное App Store, Ваше приложение получило бы
SKDownloadобъекты от транзакции и просят, чтобы очередь платежа загрузила их. Вы обеспечили бы фактические файлы содержания, которые будут подаваться App Store Подключению iTunes, при создании информации о продукте.Если продукт представляет загружаемое содержание, предоставленное Вашим собственным сервером, Ваше приложение могло бы открыть сетевое соединение с Вашим сервером и загрузить содержание оттуда.
Для получения дополнительной информации о разработке части обработки платежей Вашего приложения см. Руководство по программированию Закупки В приложении.
-
Возвраты, разрешают ли пользователю произвести платежи.
Объявление
Swift
class func canMakePayments() -> BoolObjective C
+ (BOOL)canMakePaymentsВозвращаемое значение
YEStrueесли пользователю разрешают разрешить оплату.NOfalseесли у них нет разрешения.Обсуждение
IPhone может быть ограничен в доступе к Apple App Store. Например, родители могут ограничить свою детскую возможность купить дополнительное содержание. Ваше приложение должно подтвердить, что пользователю разрешают разрешить оплаты прежде, чем добавить платеж очереди. Когда пользователю не разрешают разрешить оплаты, Ваше приложение может также хотеть изменить свое поведение или появление.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
-
Возвращает одноэлементный экземпляр очереди платежа.
Объявление
Swift
class func defaultQueue() -> Self!Objective C
+ (instancetype)defaultQueueВозвращаемое значение
Совместно используемая очередь платежа.
Обсуждение
Приложения не создают очередь платежа. Вместо этого они получают одноэлементную очередь путем вызова этого метода класса.
Специальные замечания
Очередь платежа не доступна в Средстве моделирования. Попытка получить очередь платежа регистрирует предупреждение.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
-
Добавляет наблюдатель к очереди платежа.
Объявление
Swift
func addTransactionObserver(_observer: SKPaymentTransactionObserver!)Objective C
- (void)addTransactionObserver:(id<SKPaymentTransactionObserver>)observerПараметры
observerНаблюдатель, чтобы добавить к очереди.
Обсуждение
Ваше приложение должно добавить наблюдателя к очереди платежа во время инициализации приложения. Если нет никаких наблюдателей, присоединенных к очереди, очередь платежа не синхронизирует свой список отложенных транзакций с Apple App Store, потому что нет никакого наблюдателя для ответа на обновленные транзакции.
Если приложение выходит, когда транзакции все еще обрабатываются, те транзакции не потеряны. В следующий раз запуски приложения, очередь платежа продолжит обрабатывать транзакции. Ваше приложение должно всегда ожидать быть уведомленным относительно завершенных транзакций.
Если больше чем один наблюдатель транзакции привязан к очереди платежа, никакие гарантии не сделаны относительно порядка, они будут призваны. Безопасно для многократных наблюдателей вызвать
finishTransaction:, но не рекомендуемый. Рекомендуется использовать единственного наблюдателя, чтобы обработать и закончить транзакцию.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
См. также
-
Удаляет наблюдателя из очереди платежа.
Объявление
Swift
func removeTransactionObserver(_observer: SKPaymentTransactionObserver!)Objective C
- (void)removeTransactionObserver:(id<SKPaymentTransactionObserver>)observerПараметры
observerНаблюдатель для удаления.
Обсуждение
Если нет никаких наблюдателей, присоединенных к очереди, очередь платежа не синхронизирует свой список отложенных транзакций с Apple App Store, потому что нет никакого наблюдателя для ответа на обновленные транзакции.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
См. также
-
transactionsСвойствоВозвращает массив отложенных транзакций. (только для чтения)
Объявление
Swift
var transactions: [AnyObject]! { get }Objective C
@property(nonatomic, readonly) NSArray *transactionsОбсуждение
Когда нет никаких наблюдателей, присоединенных к очереди платежа, значение этого свойства не определено.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
См. также
-
Добавляет платежное требование к очереди.
Объявление
Swift
func addPayment(_payment: SKPayment!)Objective C
- (void)addPayment:(SKPayment *)paymentПараметры
paymentПлатежное требование.
Обсуждение
Приложение должно всегда иметь по крайней мере одного наблюдателя очереди платежа прежде, чем добавить платежные требования.
Платежному требованию нужно было зарегистрировать идентификатор продукта в Apple App Store и количестве, больше, чем
0. Если любое свойство недопустимо,addPayment:выдает исключение.Когда платежное требование добавляется к очереди, процессы очереди платежа, запрашивающие с Apple App Store и устраивающие платеж от пользователя. Когда та транзакция завершена или если отказ происходит, очередь платежа отправляет
SKPaymentTransactionобъект, инкапсулирующий запрос всем наблюдателям транзакции.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
-
Завершает отложенную транзакцию.
Объявление
Swift
func finishTransaction(_transaction: SKPaymentTransaction!)Objective C
- (void)finishTransaction:(SKPaymentTransaction *)transactionПараметры
transactionТранзакция для окончания.
Обсуждение
Ваше приложение должно вызвать этот метод от наблюдателя транзакции, получившего уведомление от очереди платежа. Вызов
finishTransaction:на транзакции удаляет его из очереди. Ваше приложение должно вызватьfinishTransaction:только после того, как это успешно обработало транзакцию и разблокировало функциональность, купленную пользователем.Вызов
finishTransaction:на транзакции, которая находится вSKPaymentTransactionStatePurchasingсостояние выдает исключение.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
См. также
-
Просит очередь платежа восстанавливать ранее завершенные покупки.
Объявление
Swift
func restoreCompletedTransactions()Objective C
- (void)restoreCompletedTransactionsОбсуждение
Ваше приложение вызывает этот метод для восстановления транзакций, ранее законченных так, чтобы можно было обработать их снова. Например, Ваше приложение использовало бы это, чтобы позволить пользователю разблокировать ранее купленное содержание на новое устройство.
При создании нового продукта, который будет продан в хранилище, Вы выбираете, может ли тот продукт быть восстановлен или нет. См. Руководство по программированию Закупки В приложении для получения дополнительной информации.
Очередь платежа поставит новую транзакцию для каждой ранее завершенной транзакции, которая может быть восстановлена. Каждая транзакция включает копию исходной транзакции.
После того, как транзакции поставлены, очередь платежа вызывает наблюдателя
paymentQueueRestoreCompletedTransactionsFinished:метод. Если ошибка произошла при восстановлении транзакций, наблюдатель будет уведомлен черезpaymentQueue:restoreCompletedTransactionsFailedWithError:метод.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 3.0 и позже.
-
restoreCompletedTransactionsWithApplicationUsername (_:) - restoreCompletedTransactionsWithApplicationUsername:Просит очередь платежа восстанавливать ранее завершенные покупки, обеспечивая непрозрачный идентификатор для учетной записи пользователя.
Объявление
Swift
func restoreCompletedTransactionsWithApplicationUsername(_username: String!)Objective C
- (void)restoreCompletedTransactionsWithApplicationUsername:(NSString *)usernameПараметры
usernameНепрозрачный идентификатор для учетной записи пользователя в Вашей системе.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 7.0 и позже.
См. также
-
Добавляет ряд загрузок к списку загрузки.
Объявление
Swift
func startDownloads(_downloads: [AnyObject]!)Objective C
- (void)startDownloads:(NSArray *)downloadsПараметры
downloadsМассив
SKDownloadобъекты начать загружать.Обсуждение
Для объекта загрузки, который будет поставлен в очередь, это должно быть связано с транзакцией, успешно купленной, но еще не законченной.
Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 6.0 и позже.
-
Удаляет ряд загрузок со списка загрузки.
Объявление
Swift
func cancelDownloads(_downloads: [AnyObject]!)Objective C
- (void)cancelDownloads:(NSArray *)downloadsПараметры
downloadsМассив
SKDownloadобъекты отменить.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 6.0 и позже.
-
Паузы ряд загрузок.
Объявление
Swift
func pauseDownloads(_downloads: [AnyObject]!)Objective C
- (void)pauseDownloads:(NSArray *)downloadsПараметры
downloadsМассив
SKDownloadобъекты приостановиться.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 6.0 и позже.
-
Резюме ряд загрузок.
Объявление
Swift
func resumeDownloads(_downloads: [AnyObject]!)Objective C
- (void)resumeDownloads:(NSArray *)downloadsПараметры
downloadsМассив
SKDownloadобъекты возобновиться.Оператор импорта
Objective C
@import StoreKit;Swift
import StoreKitДоступность
Доступный в iOS 6.0 и позже.
