TransactionReceipt для покупки в приложении устарел в iOS 7. Что я могу заменить?
В iOS 7, в классе SKPaymentTransaction, свойство transactionReceipt
:
// Only valid if state is SKPaymentTransactionStatePurchased.
@property(nonatomic, readonly) NSData *transactionReceipt
... устарел. Но в моем коде я создал класс InAppPurchase, и в моем методе управления методом покупки метода я использую метод делегата в своем коде, и он вроде:
- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions {
for (SKPaymentTransaction *transaction in transactions) {
switch (transaction.transactionState) {
case SKPaymentTransactionStatePurchasing:
// code and bla bla bla
[self initPurchase];
NSLog(@"PASO 1");
break;
case SKPaymentTransactionStatePurchased:
// this is successfully purchased!
purchased = TRUE;
NSLog(@"PASO 2");
[self isPurchased];
NSLog(@"purchased %s", purchased? "true" : "false");
// and return the transaction data
if ([delegate respondsToSelector:@selector(successfulPurchase:restored:identifier:receipt:)])
[delegate successfulPurchase:self restored:NO identifier:transaction.payment.productIdentifier receipt:transaction.transactionReceipt];
// and more code bla bla bla
break;
case SKPaymentTransactionStateRestored:
// and more code bla bla bla
[self restorePurchase];
NSLog(@"PASO 3");
break;
case SKPaymentTransactionStateFailed:
// and more code bla bla bla
[self failedNotification];
NSLog(@"PASO 4");
break;
//------------------------------------------//
// THANKS GUYS //
// GRETTINGS FROM BOLIVIA //
// ROCK ON!!!! n_n' //
//------------------------------------------//
}
}
}
![enter image description here]()
Ответы
Ответ 1
Вы можете получить квитанцию как содержимое mainBundle appStoreReceiptURL. Вы можете найти ссылки: developer.apple.com
Это непроверенный код, но с верхней части головы я бы сказал что-то вроде:
[NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]
должен получить тот же результат, что и транзакционная транзакция, возвращаемая.
Ответ 2
В случае, если кто-то может также смутить эту проблему (возможно, вы также прочитали немного устаревший учебник, как я...)
Пожалуйста, проверьте WWDC 2014 Session 305 Предотвращение несанкционированных покупок с квитанциями. Он охватывает как iOS, так и OS X, понятный и всеобъемлющий.