Comments (6)
I have taken a quick look at the code and to me it looks like you should be able to just use the
SKPaymentTransactionObserver.paymentQueueRestoreCompletedTransactionsFinished
Right now you don't really use it for any thing else than return .NothingToRestore
I think it could be done just iterating queue.transactions
in SKPaymentTransactionObserver.paymentQueueRestoreCompletedTransactionsFinished
with the code from the .Restore
case in the method func paymentQueue(queue: SKPaymentQueue, updatedTransactions transactions: [SKPaymentTransaction])
and remove the .Restore
case from that method.
Does it make sense?
from swiftystorekit.
Implemented tentative solution here:
https://github.com/bizz84/SwiftyStoreKit/pull/19/files
Feedback welcome
from swiftystorekit.
I agree that this would be desirable behaviour.
The Apple documentation for SKPaymentQueue.restoreCompletedTransactions() says the following:
The payment queue will deliver a new transaction for each previously completed transaction that can be restored. Each transaction includes a copy of the original transaction.
SwiftyStoreKit uses the
SKPaymentTransactionObserver.paymentQueueRestoreCompletedTransactionsFinished method to detect when the transactions have been restored. The documentation for this method says:
This method is called after all restorable transactions have been processed by the payment queue. Your application is not required to do anything in this method.
While in theory this means that it should be possible to gather all the transactions' productIDs and return then, in practice it appears that SKPaymentTransactionObserver.paymentQueueRestoreCompletedTransactionsFinished
is called once for each transaction.
If this is the actual behaviour of StoreKit, there doesn't seem to be a way of returning all restored productIDs in one callback. Worse, I'm not sure that there is a way to tell which is the last callback.
This is my interpretation though and I may have missed something. If anyone knows a way around this, please let me know.
from swiftystorekit.
Haven't investigated yet but yes. I'll try to look into it this week.
from swiftystorekit.
I have just tested it and it seems to work perfectly! - just as expected it restored multiple products in only one callback.
Hope you will make a pods release with this soon
from swiftystorekit.
This has now been merged and included in pod release 0.2.5
from swiftystorekit.
Related Issues (20)
- Verify Receipt Doesn't Work HOT 1
- Invalide Identifire HOT 1
- receipt["cancellation_date"] != nil, always return .notPurchased
- iOS 16 (am not sure) restoring purchases hangs? HOT 45
- User logout or switch account verification
- Upcoming changes to the App Store receipt signing certificate HOT 4
- Concurrent calls to retrieveProductsInfo cause a crash HOT 1
- receiptInvalid(receipt: ["status": 21002], status: SwiftyStoreKit.ReceiptStatus.malformedOrMissingData) HOT 14
- receiptInvalid(receipt: ["status": 21002]) HOT 4
- SwiftyStoreKit.verifyReceipt method is not working HOT 2
- the transactionid returns the same
- Xcode 15 - Broken for vision os
- Apple Receipt Validation as per SHA‑256 cryptographic algorithm
- Cannot Redeem Code. The code you entered could not be found.
- StoreKit Configuration file and
- auto-renewable subscription + StoreKit Configuration file + "shared secret"
- Completion on success purchase is not call-backed on iOS 17 simulator HOT 5
- I can not buy again consumable HOT 1
- There is no reaction after the purchase method is called HOT 2
- Is there a similar library that uses Objective-C language ?
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from swiftystorekit.