Search results for

“restore purchases”

22,004 results found

Post

Replies

Boosts

Views

Activity

How to restore auto-renewing subscription
I'm working on my app which utilizes auto-renewing subscriptions. I'm trying to understand how everything works, and I'm finding it confusing. To start, the way I'm restoring purchases is running this:let request = SKReceiptRefreshRequest() request.delegate = self request.start() SKPaymentQueue.default().add(self) SKPaymentQueue.default().restoreCompletedTransactions()Maybe I'm not looking in the proper places, but I've seen that this is how others do what I'm trying. However, shouldn't it be just check the latest receipt info? Why restoreCompletedTransactions? Isn't that only for consumables?
2
0
2.6k
Jan ’19
Reply to Restore transaction for non-purchased user
You wrote:>4. Next, I choose movie 1 to purchase, it show error message To restore a purchase for this app you must be signed in with the Apple ID that was used to purchase the app. Some time it show other error message Please purchase the software application first.Are you tyrying to 'purchase' the movie or are you trying to restore the original purchase? If the later then the error message is reasonable. The App Store has detected that user B has not installed the app and so it will not let user B restore any purchases by user B. Consider this - suppose user B (a friend of user A) offers to 'share' their purchases with user A - user A hands user B their device and says 'restore your purchases to my device'. The App Store is saying no, the app was installed on the device by User A and so it is not entitled to a restore of user B's purchases. The second error message is say
Topic: App & System Services SubTopic: StoreKit Tags:
Feb ’17
Reply to Do the App Store Server Notifications "webOrderLineItemId" or "transactionId" stay the same during the renewal attempt process?
webOrderLineItemId is an identifier of a completed subscription renewal purchase. For an auto-renewing monthly subscription, a purchase is made once per month to renew the subscription. Each monthly purchase will have its own webOrderLineItemId. Even if the user accesses their subscription from multiple devices or restores purchases, this webOrderLineItemId is the same, since it's tied to their month's purchase of the subscription entitlement. Billing issues can delay the next subscription renewal purchase and its associated webOrderLineItemId. The signedTransactionInfo in V2 notifications contains the transaction information for the most recent successful purchase of the subscription. If you receive a V2 notification with type EXPIRED and subtype BILLING_RETRY, that means the subscription failed to renew at the end of the current period and has entered the billing retry state. Since the renewal purchase failed, the most recent completed
Aug ’22
In-App Purchases / Restores Currently Fail in Sandbox Environment
Attempts to purchase an SKProduct or restore all completed transactions via the usual method calls in StoreKit leads to failure in the beta environment with the following error: Error Domain=SKErrorDomain Code=0 An unknown error occurred UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x300b10210 {Error Domain=ASDErrorDomain Code=500 (null) UserInfo={NSUnderlyingError=0x300b10090 {Error Domain=AMSErrorDomain Code=301 Invalid Status Code UserInfo={NSLocalizedDescription=Invalid Status Code, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?REDACTED, AMSStatusCode=500, NSLocalizedFailureReason=The response has an invalid status code}}}}} We've tried with existing sandbox user accounts, and created fresh ones which also fail in a similar way. Our beta testers report the same thing. Nothing has changed in our IAP code, and this started happening about 24-48 hours ago. It seems to be a server-side error - please can someone verify on Apple's si
2
0
673
Jun ’24
Errors after Restore Puchase done
Environment: Sandbox After calling: SKPaymentQueue.default().restoreCompletedTransactions the purcheses are restored and the : func (_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) is called with multiple transactions having the transactionState SKPaymentTransactionState.restored (keep in mind we do call the SKPaymentQueue.default().finishTransaction ) in the end the: paymentQueueRestoreCompletedTransactionsFinished is called After this has been done every new payment that is made, calls the: func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) with the transactionState being SKPaymentTransactionState.restored and the data of the transaction being some old payment. If the application is restarted we get all of the transactions being processed as purchased (we are adding the delegate of the SKPaymentQueue.default().add in the AppDelegate) and if we try to make a payment we get an old transaction with an old rec
0
0
414
Dec ’20
iPad Restore IAP Purchase Not Connecting to App Store
I have had two user contacts in the last week where they easily install my Universal app on another iPhone, restore their previous IAP upgrade purchase (added functionality - interconnectivity via BTLE between iOS devices), BUT when they install to a second device, exclusively an iPad (both iPad Airs - so far), and try to restore the IAP purchase, my app is not able to connect to the App Store for the IAP upgrade. My app displays a message when there is no Internet access or no connection to the App Store with the same error message.My app has not been updated since 2017 with a dozen or so IAP upgrades as one of its main features. I have not been able to reproduce the error on my iPhone X and iPad Pro (on iOS 12.4.1 as is with these users). And no Crashes in the last two weeks with Xcode Organizer. In fact, the connection and upgrade on my devices and network is instantaneous. I have had users not be able to connect to the App Store a couple times a year that is solved by j
8
0
1.4k
Aug ’19
In-app purchases Non Consumable item purchased twice with the same Apple ID
Hello,We have a non consumable IAP in our app which costs €3.49. I have purchased the IAP on my phone ages ago and also tested restore a couple of times and everything works just fine. This morning however, while testing the app, I uninstalled and installed the app from the App Store back on my phone. Instead of tapping 'Restore Purchases', I chose to 'Remove Ads', hence purchase the IAP again. I thought that the SDK (Xamarin.InAppPurchase) itself, would automatically track that I have previously purchased this IAP and it would go through the restore process on its own. However, I was proved wrong since a couple of minutes later, I received an invoice from Apple, that I have purchased the IAP again. I also received a statement from my bank for my purchase.So my question here is: shouldn't the SDK itself check that the IAP was previously purchased under the Apple ID I was using? Should I amend my code on 'Remove Ads' to first go through th
3
0
2.0k
Feb ’18
Reply to Please tell me how to restore receipt
Thank you for your reply.If the first purchase transaction fails,Even if you have already received the receipt for the second purchase transactionCan you restore first receipt?If I say why I hear this,The receipt is overwritten when the second purchase is completed,Is it possible to restore the receipt of the first purchased item?
Topic: App & System Services SubTopic: StoreKit Tags:
Apr ’17
Reply to How to clear appStoreReceiptURL in-app array
I need to clarify my response as my previous response is not totally correct. As you point out, the user can log out of the iTunes and App Store setting, and another user can launch the in app purchase app and make a purchase - what happens with the application receipt. In this case, the application receipt is updated to match that for this second user. The application receipt will no longer show purchases made by the original user who installed the app. At this point, iOS associates the app with the second user and has updated the application receipt to the second user. If the SKReceiptRefreshRequest is issued at this point, the second user's name will be present in the StoreKit alert and that users password is expected for the receipt to be refreshed.If later on the restoreCompletedTransaction call is issued with the second user's setting still in the iTunes/App Store settings, then the restore process will restore purchases made by the second user. The first use
Topic: App & System Services SubTopic: StoreKit Tags:
Jul ’15
Reply to Cannot connect to iTunes sandbox
During the last year, I have suffered through many incarnations of this issue. For most of the year, I would typically get the cannot connect to iTunes Store message the first time when attempting an in-app purchase in the TestFlight environment. However, a second attempt would usually succeed.In the last 2 months, things have deteriorated badly. The current situation with our app is that in-app purchasing works with some IAPs in the TestFlight environment and not with others. The experience from one TestFligtht user to another does not match. Tester A may be able to purchase IAP X while Tester B cannot.In my case, it seems as though purchases that I successfully made many months ago cannot be made again while purchases that I successfully made recently can be repurchased.In addition to the foregoing, we have not been able to use the restore purchases feature in TestFlight for the last year—althoug it works in the public version of our app.A senior advisor
May ’18
regular login box popping up when trying to restore Sandbox purchase
In testing the in-app purchase Restore feature (auto renew subscriptions), even though we are logged out of itunes, we keep getting login popups (passwd only) for our regular Itunes account instead of our sandbox account, and no way to clearthat and login w/ the sandbox ID.Anyone see this, and/or how to fix? Is it a sandbox quirk not to worry about in production?
1
0
413
Mar ’17
Reply to StoreKit 2 transactions listener not working
We also are seeing something similar to this. On macOS it seems like for some customers that the Transaction.updates sequence returns immediately. The result of this is that they must then restore purchases to regain access. Using code similar to the below: Task.detached(priority: .background) { logger.log(starting listening for transaction updates) defer { logger.warning(stopped listening for transaction updates) } for await verificationResult in Transaction.updates { logger.log(processing transaction update) ... } } } I can see this in logs from some customers that stopped listening for transaction updates gets logged almost immediately after starting listening for transaction updates. I can't see any errors thrown so I'm still unable to to figure out under what conditions this happens. My first guess was maybe them being signed out of the App Store but I was unable to reproduce this at all in testing.
Topic: App & System Services SubTopic: StoreKit Tags:
Jul ’23
Change paid app to a free app with in-app purchase
I had my app on the app store for 1.99USD and now changed it too a freemium app with and in-app purchase(Ad-Free Version) for 1.99USD.How can I go about upgrading my existing customers (those who bought the app from the app store ) as an in-app purchaser(Ad-Free Version) on update?During internal testing, we were able to restore the purchase for existing users when they tapped on Restore Purchase without using receipt validation. Now, this does not work in the version that's in the App Store.
0
0
843
Mar ’17
Sierra receipt in app purchases not in sync with restored transactions
Greetings,On Sierra, I am encountering the following behavior:An autorenewing subscription is purchased in the app [Sandbox]. Receipt is not updated to contain new subscription purchase.Calling restoreCompletedTransactions returns X number of transactions, 75 for example. These transactions do include the purchase above and are correct.Parsing my app store receipt at this time returns the 74 transactions that existed prior to the purchase. But this purchse is not in the receipt, hence my app does not recognize it.I repeat the purchase multiple times, and after each purchase, check restoreCompletedTransactions to see that each new purchase is returned, yet my receipt is stuck at 74 transactions. In theory, after each purchase, restoreCompletedTransactions should return the same number of transactions that are available in my bundle's receipt.Basically, on Sierra, making a purchase does not update the bundle's app store receipt. I rely on t
1
0
624
Mar ’17
How to restore auto-renewing subscription
I'm working on my app which utilizes auto-renewing subscriptions. I'm trying to understand how everything works, and I'm finding it confusing. To start, the way I'm restoring purchases is running this:let request = SKReceiptRefreshRequest() request.delegate = self request.start() SKPaymentQueue.default().add(self) SKPaymentQueue.default().restoreCompletedTransactions()Maybe I'm not looking in the proper places, but I've seen that this is how others do what I'm trying. However, shouldn't it be just check the latest receipt info? Why restoreCompletedTransactions? Isn't that only for consumables?
Replies
2
Boosts
0
Views
2.6k
Activity
Jan ’19
Reply to Restore transaction for non-purchased user
You wrote:>4. Next, I choose movie 1 to purchase, it show error message To restore a purchase for this app you must be signed in with the Apple ID that was used to purchase the app. Some time it show other error message Please purchase the software application first.Are you tyrying to 'purchase' the movie or are you trying to restore the original purchase? If the later then the error message is reasonable. The App Store has detected that user B has not installed the app and so it will not let user B restore any purchases by user B. Consider this - suppose user B (a friend of user A) offers to 'share' their purchases with user A - user A hands user B their device and says 'restore your purchases to my device'. The App Store is saying no, the app was installed on the device by User A and so it is not entitled to a restore of user B's purchases. The second error message is say
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Feb ’17
Reply to Do the App Store Server Notifications "webOrderLineItemId" or "transactionId" stay the same during the renewal attempt process?
webOrderLineItemId is an identifier of a completed subscription renewal purchase. For an auto-renewing monthly subscription, a purchase is made once per month to renew the subscription. Each monthly purchase will have its own webOrderLineItemId. Even if the user accesses their subscription from multiple devices or restores purchases, this webOrderLineItemId is the same, since it's tied to their month's purchase of the subscription entitlement. Billing issues can delay the next subscription renewal purchase and its associated webOrderLineItemId. The signedTransactionInfo in V2 notifications contains the transaction information for the most recent successful purchase of the subscription. If you receive a V2 notification with type EXPIRED and subtype BILLING_RETRY, that means the subscription failed to renew at the end of the current period and has entered the billing retry state. Since the renewal purchase failed, the most recent completed
Replies
Boosts
Views
Activity
Aug ’22
In-App Purchases / Restores Currently Fail in Sandbox Environment
Attempts to purchase an SKProduct or restore all completed transactions via the usual method calls in StoreKit leads to failure in the beta environment with the following error: Error Domain=SKErrorDomain Code=0 An unknown error occurred UserInfo={NSLocalizedDescription=An unknown error occurred, NSUnderlyingError=0x300b10210 {Error Domain=ASDErrorDomain Code=500 (null) UserInfo={NSUnderlyingError=0x300b10090 {Error Domain=AMSErrorDomain Code=301 Invalid Status Code UserInfo={NSLocalizedDescription=Invalid Status Code, AMSURL=https://sandbox.itunes.apple.com/WebObjects/MZBuy.woa/wa/inAppBuy?REDACTED, AMSStatusCode=500, NSLocalizedFailureReason=The response has an invalid status code}}}}} We've tried with existing sandbox user accounts, and created fresh ones which also fail in a similar way. Our beta testers report the same thing. Nothing has changed in our IAP code, and this started happening about 24-48 hours ago. It seems to be a server-side error - please can someone verify on Apple's si
Replies
2
Boosts
0
Views
673
Activity
Jun ’24
Errors after Restore Puchase done
Environment: Sandbox After calling: SKPaymentQueue.default().restoreCompletedTransactions the purcheses are restored and the : func (_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) is called with multiple transactions having the transactionState SKPaymentTransactionState.restored (keep in mind we do call the SKPaymentQueue.default().finishTransaction ) in the end the: paymentQueueRestoreCompletedTransactionsFinished is called After this has been done every new payment that is made, calls the: func paymentQueue(_ queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction]) with the transactionState being SKPaymentTransactionState.restored and the data of the transaction being some old payment. If the application is restarted we get all of the transactions being processed as purchased (we are adding the delegate of the SKPaymentQueue.default().add in the AppDelegate) and if we try to make a payment we get an old transaction with an old rec
Replies
0
Boosts
0
Views
414
Activity
Dec ’20
iPad Restore IAP Purchase Not Connecting to App Store
I have had two user contacts in the last week where they easily install my Universal app on another iPhone, restore their previous IAP upgrade purchase (added functionality - interconnectivity via BTLE between iOS devices), BUT when they install to a second device, exclusively an iPad (both iPad Airs - so far), and try to restore the IAP purchase, my app is not able to connect to the App Store for the IAP upgrade. My app displays a message when there is no Internet access or no connection to the App Store with the same error message.My app has not been updated since 2017 with a dozen or so IAP upgrades as one of its main features. I have not been able to reproduce the error on my iPhone X and iPad Pro (on iOS 12.4.1 as is with these users). And no Crashes in the last two weeks with Xcode Organizer. In fact, the connection and upgrade on my devices and network is instantaneous. I have had users not be able to connect to the App Store a couple times a year that is solved by j
Replies
8
Boosts
0
Views
1.4k
Activity
Aug ’19
In-app purchases Non Consumable item purchased twice with the same Apple ID
Hello,We have a non consumable IAP in our app which costs €3.49. I have purchased the IAP on my phone ages ago and also tested restore a couple of times and everything works just fine. This morning however, while testing the app, I uninstalled and installed the app from the App Store back on my phone. Instead of tapping 'Restore Purchases', I chose to 'Remove Ads', hence purchase the IAP again. I thought that the SDK (Xamarin.InAppPurchase) itself, would automatically track that I have previously purchased this IAP and it would go through the restore process on its own. However, I was proved wrong since a couple of minutes later, I received an invoice from Apple, that I have purchased the IAP again. I also received a statement from my bank for my purchase.So my question here is: shouldn't the SDK itself check that the IAP was previously purchased under the Apple ID I was using? Should I amend my code on 'Remove Ads' to first go through th
Replies
3
Boosts
0
Views
2.0k
Activity
Feb ’18
Reply to Please tell me how to restore receipt
Thank you for your reply.If the first purchase transaction fails,Even if you have already received the receipt for the second purchase transactionCan you restore first receipt?If I say why I hear this,The receipt is overwritten when the second purchase is completed,Is it possible to restore the receipt of the first purchased item?
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Apr ’17
Reply to How to clear appStoreReceiptURL in-app array
I need to clarify my response as my previous response is not totally correct. As you point out, the user can log out of the iTunes and App Store setting, and another user can launch the in app purchase app and make a purchase - what happens with the application receipt. In this case, the application receipt is updated to match that for this second user. The application receipt will no longer show purchases made by the original user who installed the app. At this point, iOS associates the app with the second user and has updated the application receipt to the second user. If the SKReceiptRefreshRequest is issued at this point, the second user's name will be present in the StoreKit alert and that users password is expected for the receipt to be refreshed.If later on the restoreCompletedTransaction call is issued with the second user's setting still in the iTunes/App Store settings, then the restore process will restore purchases made by the second user. The first use
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jul ’15
Reply to Cannot connect to iTunes sandbox
During the last year, I have suffered through many incarnations of this issue. For most of the year, I would typically get the cannot connect to iTunes Store message the first time when attempting an in-app purchase in the TestFlight environment. However, a second attempt would usually succeed.In the last 2 months, things have deteriorated badly. The current situation with our app is that in-app purchasing works with some IAPs in the TestFlight environment and not with others. The experience from one TestFligtht user to another does not match. Tester A may be able to purchase IAP X while Tester B cannot.In my case, it seems as though purchases that I successfully made many months ago cannot be made again while purchases that I successfully made recently can be repurchased.In addition to the foregoing, we have not been able to use the restore purchases feature in TestFlight for the last year—althoug it works in the public version of our app.A senior advisor
Replies
Boosts
Views
Activity
May ’18
regular login box popping up when trying to restore Sandbox purchase
In testing the in-app purchase Restore feature (auto renew subscriptions), even though we are logged out of itunes, we keep getting login popups (passwd only) for our regular Itunes account instead of our sandbox account, and no way to clearthat and login w/ the sandbox ID.Anyone see this, and/or how to fix? Is it a sandbox quirk not to worry about in production?
Replies
1
Boosts
0
Views
413
Activity
Mar ’17
Reply to StoreKit 2 transactions listener not working
We also are seeing something similar to this. On macOS it seems like for some customers that the Transaction.updates sequence returns immediately. The result of this is that they must then restore purchases to regain access. Using code similar to the below: Task.detached(priority: .background) { logger.log(starting listening for transaction updates) defer { logger.warning(stopped listening for transaction updates) } for await verificationResult in Transaction.updates { logger.log(processing transaction update) ... } } } I can see this in logs from some customers that stopped listening for transaction updates gets logged almost immediately after starting listening for transaction updates. I can't see any errors thrown so I'm still unable to to figure out under what conditions this happens. My first guess was maybe them being signed out of the App Store but I was unable to reproduce this at all in testing.
Topic: App & System Services SubTopic: StoreKit Tags:
Replies
Boosts
Views
Activity
Jul ’23
Change paid app to a free app with in-app purchase
I had my app on the app store for 1.99USD and now changed it too a freemium app with and in-app purchase(Ad-Free Version) for 1.99USD.How can I go about upgrading my existing customers (those who bought the app from the app store ) as an in-app purchaser(Ad-Free Version) on update?During internal testing, we were able to restore the purchase for existing users when they tapped on Restore Purchase without using receipt validation. Now, this does not work in the version that's in the App Store.
Replies
0
Boosts
0
Views
843
Activity
Mar ’17
Reply to Consumable item with expiration date
I found the answer. In case anyone else wants to know:App Store Review Guidelines3.1.1 In-App PurchaseAny credits or in-game currencies purchased via in-app purchase may not expire, and you should make sure you have a restore mechanism for any restorable in-app purchases.
Replies
Boosts
Views
Activity
May ’20
Sierra receipt in app purchases not in sync with restored transactions
Greetings,On Sierra, I am encountering the following behavior:An autorenewing subscription is purchased in the app [Sandbox]. Receipt is not updated to contain new subscription purchase.Calling restoreCompletedTransactions returns X number of transactions, 75 for example. These transactions do include the purchase above and are correct.Parsing my app store receipt at this time returns the 74 transactions that existed prior to the purchase. But this purchse is not in the receipt, hence my app does not recognize it.I repeat the purchase multiple times, and after each purchase, check restoreCompletedTransactions to see that each new purchase is returned, yet my receipt is stuck at 74 transactions. In theory, after each purchase, restoreCompletedTransactions should return the same number of transactions that are available in my bundle's receipt.Basically, on Sierra, making a purchase does not update the bundle's app store receipt. I rely on t
Replies
1
Boosts
0
Views
624
Activity
Mar ’17