2016-12-20 3 views
0

Я получаю в App Store Расписки таким образом:App Store получение

- (void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for (SKPaymentTransaction *transaction in transactions) { 
     switch (transaction.transactionState) { 
      case SKPaymentTransactionStatePurchased: 
       _data = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; 
       break; 
send _data to server 
...... 

В Sandbox среде, я проверяю оплаты много раз. Я нахожу, что _дата стала больше, чем в прошлый раз. Теперь _data стал 30000 байт. Кто-нибудь знает, почему _data становятся настолько большими. Есть идеи?

ответ

1

Это получение данные. Он должен включать всю информацию, связанную со всеми вашими покупками. Здесь можно найти всю информацию о покупке вашего приложения. Вот почему, когда вы тестируете, новая информация о покупке в приложении добавляется снова к получению и размер данных увеличивается.

+0

Мне нужно отправить данные квитанции на сервер, но размер данных слишком велик. Там все равно, чтобы выбрать мой информация о покупке приложения из этих данных? –

+0

Да. Вы можете использовать информацию из аргумента «транзакция». Он имеет ограниченную и точную информацию о вашей покупке в приложении. Отправьте эти значения на сервер вместо получения. –

+0

transactionReceipt? Но он был устаревшим в iOS7.0, Xcode предлагает использовать [NSBundle appStoreReceiptURL]. –