2015-03-30 5 views
0

Я работаю с IAP, я хочу получить квитанцию, чтобы проверить ее.Как получить получение приложения после покупки с помощью тестовой учетной записи в iOS

Я попробовал этот

-(void)paymentQueue:(SKPaymentQueue *)queue updatedTransactions:(NSArray *)transactions { 
    for (SKPaymentTransaction *transaction in transactions) { 


     switch (transaction.transactionState)//Each transaction should be processed by examining transactionState property. 
     { 
      case SKPaymentTransactionStatePurchased: 
      { 

       if([transaction.payment.productIdentifier isEqualToString:@"TC0001"]) 
       { 

       } 

       **NSData *data = [NSData dataWithContentsOfURL:[[NSBundle mainBundle] appStoreReceiptURL]]; 

       NSError *error; 

       NSDictionary *response = [NSJSONSerialization JSONObjectWithData: data options: 0 error: &error]; //I am using sbjson to parse 

       NSLog(@"%@",response);**    


       //Finish transaction deletes the transaction from the default queue 
       [[SKPaymentQueue defaultQueue] finishTransaction:transaction];     

      } 
       break;     

      default: 
       break; 
     } 
    } 
} 

Я надеюсь, что я делаю правильно, потому что это то, что упоминается в документации. Но я получаю «нуль для ответа. Так что я что-то отсутствует.

ответ

1

Квитанция не хранится в обычный текст JSON.

Это на самом деле в формате кодированного контейнера pkcs7 который представляет собой двоичный формат основанный на формате кодирования старого времени, называемом ASN.1.

Я не могу указать вам на какие-либо примеры, потому что никто не поделился своим кодом для декодирования контейнера. Разработчики неохотно делят свой код, потому что Apple указала что, если многие приложения используют аналогичный код для обработки IAP, один взлом безопасности угрожает не только одному, но и многим приложениям.

Существует презентация WWDC: «WWDC 2013: использование квитанций для защиты ваших цифровых продаж», где они содержат некоторые рекомендации о том, как начать работу, а также документ «Руководство по проверке чеков» в документах Xcode.

Прочтите эти, а затем Google соответствующие термины, вы должны найти достаточное количество бит и частей для сборки решения.

+0

Спасибо, rfox, я пройду через него – Ranjit