There are many apps in the market which have a feature using which you can make online purchases. This is known as in-App purchases and is a monetizing option for smartphone applications. We all have at some point or the other downloaded apps from App stores which gave the additional option of making purchases through them.
In-app purchase not working, is a possible situation if you are trying to run it on a simulator. Hence, before running the app make sure that the target device setting in your IDE points to Device.
In this case, the SKProductsRequest fails with a generic error even though you know that you have entered the product identifiers and App ID correctly. Well, actually the iTunes Connect services have very high benchmarks about the clean slate of a request and in order to be sure that the request is legitimate, a number of authentication checks are performed. So, you need to prove the legitimacy of your app to iTunes Connect.
A good way of doing so is by ensuring that only a single development Provisioning Profile exists for the application. If it is such that there are several different Provisioning Profiles that match your application in your device, chances are higher that iTunes Connect will reject your requests. The easiest way to overcome this and get out of the in-app purchase, not the working scenario is to remove all Provisioning Profiles from your test device and delete your application from the device.
Deleting the application becomes necessary as it contains an embedded Provisioning Profile which can interfere with the profiles on the device. This is one way of getting out of the in-app purchase, not working scenario and your price requests should work again.
This is another way of getting into the in-app purchase, not the working scenario. It may so happen that your price request is working but the SKPaymentTransaction fails when you want to test the actual purchase of an item and the error message “Cannot connect to the iTunes Store” is displayed.
The first reason for this can be the anomalous behavior of the iTunes Sandbox as there are times when requests get dropped and at other times the Sandbox cannot validate any request. In order to be sure, just click on this link (Forum) and if the sandbox is down, you will come across a lot of developers mentioning the same issue.
If you see that the Sandbox is up, then you may be sure that your test user has expired. It is of late that Apple has started the validation process where after a specified number of transactions, test users are invalidated. Your best-case scenario is to know that the user has expired and in the worst case — a generic error.
Now, instead of trying to re-activate the test user it is better to create a new set of users and use them successively. It is a better mode of working as it works often.
There are two possible scenarios:
Delete your application from the device and remove all Provisioning Profiles.
Check the iTunes Connect Sandbox status on Apple Developer Forums and create a new test user on iTunes Connect.
Also, it may be so that in spite of this, you happen to have problems and are stuck in the “in-app purchase not working” mode, in that case kindly get in touch with us FOR A FREE CONSULTATION.
We have been proficient in the area of iPhone app development and shall be glad to develop solutions for your specific requirements.
Do have a look at this associated blogpost which talks of the money-making potential of mobile apps.
It shall be great to have your feedback/comments as that helps in making this engagement more interactive.