ios - How to use a single appStoreReceiptURL to verify multiple StoreKit transactions? -


we using server side validation verify our itunes in app purchases. when transaction sent skpaymenttransactionobserver, grab receipt appstorereceipturl in order validate it.

if let receiptpath = nsbundle.mainbundle().appstorereceipturl?.path     nsfilemanager.defaultmanager().fileexistsatpath(receiptpath),     let receiptdata = nsdata(contentsofurl:nsbundle.mainbundle().appstorereceipturl!) {     return receiptdata } 

but in cases, such when restoring purchases, receive multiple transactions method:

public func paymentqueue(queue: skpaymentqueue, updatedtransactions transactions: [skpaymenttransaction]) 

it seems rather odd use same receipt data verify each transaction. single receipt contain data each transaction?

does single receipt contain data each transaction?

yes. receipt accessed appstorereceipturl single receipt persistable transactions user , app.

docs on in-app purchase receipt

the in-app purchase receipt consumable product added receipt when purchase made. kept in receipt until app finishes transaction. after point, removed receipt next time receipt updated—for example, when user makes purchase or if app explicitly refreshes receipt.

the in-app purchase receipt non-consumable product, auto-renewable subscription, non-renewing subscription, or free subscription remains in receipt indefinitely.

i.e. in-app purchases including subscription renewals , restored purchases , excluding consumed purchases create new transaction , stored in receipt.

docs on working subscriptions:

after subscription renewed, store kit adds transaction renewal transaction queue. app checks transaction queue on launch , handles renewal same way other transaction.

docs on restoring purchased products:

restoring completed transactions creates new transaction every completed transaction user made.

note original transaction id same restored purchases , subscription renewals.

the receipt file stored on device app updates when ever new transaction added.


Comments

Popular posts from this blog

how to insert data php javascript mysql with multiple array session 2 -

multithreading - Exception in Application constructor -

windows - CertCreateCertificateContext returns CRYPT_E_ASN1_BADTAG / 8009310b -