How to reset product id using In-App purchases? - in-app-purchase

I have two apps in my iTunesConnect account, both of them use In-App purchases. For both of them I need to create product with apriopriate product identifiers. For first app I created a product with apriopriate identifier, but that product should be in a second app.
So I removed that product from the first app, and then I tried to create the same one for the second one, but then error arised:
The product ID you entered has already been used. Enter a unique product ID and try again.
I really need the same product identifier in my second app. How can I reset or make it able to recreate for a different app?

Simply, it is impossible> Direct answer from Apple:
"After you submit your product ID, you cannot edit it or reuse it for another In-App Purchase. We are not able to reset the In-App Purchase product IDs for your account."

Related

How can I create an product ID for an iOS in app purchase programmatically?

I'm trying to sell digital content from third parties within an iOS app. I'm aware Apple will get 30%. In my app, the seller gets a percentage.
The problem is that I need to create a product ID per every product that I sell with an in-app-purchase. If I don't create one I don't know who is buying what and what to pay to whom.
I can create a product ID manually if I have a few sellers, but I have 1000 this can become a problem.
Does anybody know how to do this?
You cannot do this. Each product ID has to be created through iTunes connect, and for each product ID there is a review process. There is no way to create an iTunes product ID from within an app, because Apple doesn't allow this.

StoreKit payment extra data

I'm trying to implement in app purchases in my app. You can buy access to view a teams extra data. The amount of teams are dynamic so I cannot create a product id for all the teams. What I did now was create 1 consumable with a generic product id. When the user buys access I will save it on my server which one it is, but here is the problem. How do I know when I get called back that a purchase was successful which team it was again. Can I for example add extra data to the payment or something
This does not seem to be feasible currently, neither on App Store or Play Store. (for App Store, you might want to keep an eye on the future of SKPayment's requestData - but I would not be too optimistic)
1st approach: storing [productId: metadata] pairs
Since a user cannot make 2 parallel purchase on the same product id, you could store metadata (such as teamId) associated to the productId
The issue with this workaround is that a purchase can complete after your app has been killed/uninstalled
2nd approach: modified UX
A possible way to solve your issue is to invert your UX flow:
You could ask for the "payment metadata" after the purchase is actually made
Conclusion
I would ideally implement both approach: use the 1st one for most use case, and keep the 2nd as a fallback (as the 1st solution has a smoother UX)
I suppose you have to use non-consumables In-App Purchases for each team.
When you're adding a new team the flow is next:
Go to iTunesConnect and create a new In-App Purchase with id for the
specific team.
Create a new team on your server-side. Assign In-App
Purchase product id to this team into the specific field.
Once your app fetches the list of teams it will fetch product id for
each team (which you have been created in iTunesConnect).
Update In-App Purchases with product IDs fetched from your server.
Now you are able to make purchase.

iOS: In-App Purchase

I have implemented in app purchase in my application with multiple products and my application is live now.
As i have created multiple products there organization id is eg. com.abc.product1, com.abc.product2 and so on and i have assigned that number according to the id i have received from web service response.
In my Xcode application i have assigned product identifier as com.abc.product and i am attaching that number dynamically to that identifier.
If i have more products to add in the application then i will create in-app products in iTunes connect.
So my question is i need to create new build for those products or i have to just create products and submit those for review.
If you initial app is approved and live, you don't need to create new Build to submit additional in-app purchases.
You can submit them at any time and submit in bulk as well. See below link for instruction on setting them up
https://developer.apple.com/library/content/documentation/LanguagesUtilities/Conceptual/iTunesConnectInAppPurchase_Guide/Chapters/SubmittingInAppPurchases.html
You can continue with this approach. But make sure that you are validating the product identifier with itunes first before showing it to the user, just to make sure that the identifier formed at client side is available at itunes also.

How to check already purchased InApp purchases on ios

I am working with InApp purchase, so I have implemented a working model,I have referred this
link http://xcodenoobies.blogspot.in/2012/04/implementing-inapp-purchase-in-xcode.html.
Here when the user purchases an item I store some value in KeyChain and I cross check with this value to confirm that the user has purchased the item and if not I will ask the user to purchase the item.
This works, but I have 4 products available for purchase, which can be purchased individually, So I thought of creating different instances of KeyChain and storing different passwords for these 4 products and cross check, but keyChain can only save one username and password.
So I want to know what can be the alternative for this.Also NSUserdefaults will not work, because it is tied to the App bundle and whenever user deletes the app, the data is lost and so he will be asked to purchase again.
Regards
Ranjit
If you're adding a restorable in-app purchase (non-renewable subscription, free subscription or non-consumable product), then the Store Kit API already provides the "restore transaction" functionality for you: http://developer.apple.com/library/ios/#documentation/NetworkingInternet/Conceptual/StoreKitGuide/MakingaPurchase/MakingaPurchase.html
In your UI, you need add a "Restore purchases" button to your product screen that calls the restoreCompletedTransactions method. This is important because Apple might reject your app if you don't provide this button.

new In app purchases product for current app

I am working on in app purchases for content downloading.
Product list will return from the server and product id also. I am not clear about one thing:
Can I add new in app purchases without updating the app ? Because the product list will come from server side.
I just want to add In App Purchases from iTunesConnect and the product list on the server side.
Yes you can add new in app purchases without update the app.
You will need to add all of your product to iTunes connect & for sure get Apple approval.
When you return product like reten it with same IAP ID.

Resources