storekit - Restore transaction doesn't download the content IAP IOS -
i have been struggling issue since 2 days. have implemented in app purchase downloadable content . whenever delete app , restore purchase , restore doesn't download content. if add download code in restoretransaction never calls finish transaction cause app behave weirdly(which resonable) , every time delete app , reinstall it. appreciated!! please let me know if needs further explanation. thanks!!
- (void)paymentqueue:(skpaymentqueue *)queue updatedtransactions:(nsarray *)transactions { (skpaymenttransaction * transaction in transactions) { switch (transaction.transactionstate) { case skpaymenttransactionstatepurchased: if(transaction.downloads) [self download:transaction]; else [self completetransaction:transaction]; break; case skpaymenttransactionstatefailed: [self failedtransaction:transaction]; break; case skpaymenttransactionstaterestored: if(transaction.downloads) [self restoredownload:transaction]; else [self restoretransaction:transaction]; default: break; } }; } -(void)paymentqueue:(skpaymentqueue *)queue updateddownloads:(nsarray *)downloads { (skdownload *download in downloads) { switch (download.downloadstate) { case skdownloadstateactive: nslog(@"download progress = %f", download.progress); nslog(@"download time = %f", download.timeremaining); break; case skdownloadstatefinished: { nslog(@"url %@",download.contenturl); } break; default: break; } } } - (void)completetransaction:(skpaymenttransaction *)transaction { nslog(@"completetransaction..."); [self providecontentforproductidentifier:transaction.payment.productidentifier]; [[skpaymentqueue defaultqueue] finishtransaction:transaction]; } - (void)restoretransaction:(skpaymenttransaction *)transaction { nslog(@"restoretransaction..."); [self providecontentforproductidentifier:transaction.originaltransaction.payment.productidentifier]; [[skpaymentqueue defaultqueue] finishtransaction:transaction]; } - (void)restoredownload:(skpaymenttransaction *)transaction { nslog(@"restoredownload..."); //[self validatereceiptfortransaction:transaction]; [self providecontentforproductidentifier:transaction.originaltransaction.payment.productidentifier]; [[skpaymentqueue defaultqueue] startdownloads:transaction.downloads]; } - (void)download:(skpaymenttransaction *)transaction { nslog(@"download content..."); [self providecontentforproductidentifier:transaction.payment.productidentifier]; [[skpaymentqueue defaultqueue] startdownloads:transaction.downloads]; //[[skpaymentqueue defaultqueue] finishtransaction:transaction]; }
Comments
Post a Comment