{"action":"opened","issue":{"url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/7239","labels_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/7239/labels{/name}","comments_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/7239/comments","events_url":"https://api.github.com/repos/lionheart/openradar-mirror/issues/7239/events","html_url":"https://github.com/lionheart/openradar-mirror/issues/7239","id":125323141,"number":7239,"title":"23180869: Non-Recurring In-App Purchase Receipt Not Found In App Receipt","user":{"login":"openradar-mirror","id":13605213,"avatar_url":"https://avatars.githubusercontent.com/u/13605213?v=3","gravatar_id":"","url":"https://api.github.com/users/openradar-mirror","html_url":"https://github.com/openradar-mirror","followers_url":"https://api.github.com/users/openradar-mirror/followers","following_url":"https://api.github.com/users/openradar-mirror/following{/other_user}","gists_url":"https://api.github.com/users/openradar-mirror/gists{/gist_id}","starred_url":"https://api.github.com/users/openradar-mirror/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openradar-mirror/subscriptions","organizations_url":"https://api.github.com/users/openradar-mirror/orgs","repos_url":"https://api.github.com/users/openradar-mirror/repos","events_url":"https://api.github.com/users/openradar-mirror/events{/privacy}","received_events_url":"https://api.github.com/users/openradar-mirror/received_events","type":"User","site_admin":false},"labels":[{"url":"https://api.github.com/repos/lionheart/openradar-mirror/labels/reproducible:yes","name":"reproducible:yes","color":"5319e7"},{"url":"https://api.github.com/repos/lionheart/openradar-mirror/labels/status:open","name":"status:open","color":"009800"}],"state":"open","locked":false,"assignee":null,"milestone":{"url":"https://api.github.com/repos/lionheart/openradar-mirror/milestones/2","html_url":"https://github.com/lionheart/openradar-mirror/milestones/iOS","labels_url":"https://api.github.com/repos/lionheart/openradar-mirror/milestones/2/labels","id":1237416,"number":2,"title":"iOS","description":null,"creator":{"login":"openradar-mirror","id":13605213,"avatar_url":"https://avatars.githubusercontent.com/u/13605213?v=3","gravatar_id":"","url":"https://api.github.com/users/openradar-mirror","html_url":"https://github.com/openradar-mirror","followers_url":"https://api.github.com/users/openradar-mirror/followers","following_url":"https://api.github.com/users/openradar-mirror/following{/other_user}","gists_url":"https://api.github.com/users/openradar-mirror/gists{/gist_id}","starred_url":"https://api.github.com/users/openradar-mirror/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/openradar-mirror/subscriptions","organizations_url":"https://api.github.com/users/openradar-mirror/orgs","repos_url":"https://api.github.com/users/openradar-mirror/repos","events_url":"https://api.github.com/users/openradar-mirror/events{/privacy}","received_events_url":"https://api.github.com/users/openradar-mirror/received_events","type":"User","site_admin":false},"open_issues":1099,"closed_issues":4,"state":"open","created_at":"2015-08-03T02:08:30Z","updated_at":"2016-01-07T05:03:13Z","due_on":null,"closed_at":null},"comments":0,"created_at":"2016-01-07T05:03:13Z","updated_at":"2016-01-07T05:03:13Z","closed_at":null,"body":"#### Description\n\nSummary:\r\nAfter making an in-app purchase of a non-recurring subscription product and refreshing the app receipt, the non-recurring in-app purchase receipt is not found in the in_app receipt field.\r\n\r\nPrior to the 15th / 16th October 2015 non-recurring in-app purchase receipts remained indefinitely in the in_app receipt field and were one of the ways used to support purchase restore onto a different device.\r\n\r\nFrom a user experience perspective, this is not a positive change. Even if the in-app receipt information is stored separately by an app at the point of purchase, there is no guarantee that the attempt to store the receipt will succeed due to a multitude of reasons (network connectivity, battery state, memory pressure, ...). Should that happen then the only way to support purchase restore onto a different device is to refresh the app receipt, which will now no longer recover the situation.\r\n \r\nSo from a user experience perspective they'll end up annoyed, angry with the app developer and inconvenienced trying to find-out how to request a refund.\r\n\r\nThe situation is made more confusing in that if a user then tries to purchase the non-recurring in-app purchase again StoreKit will respond with the message “You have already purchased this subscription. Tap Buy to renew or extend it.\"\r\n\r\nTaken from https://developer.apple.com/library/ios/releasenotes/General/ValidateAppStoreReceipt/Chapters/ReceiptFields.html#//apple_ref/doc/uid/TP40010573-CH106-SW8\r\n\r\n“The in-app purchase receipt for a non-consumable product, auto-renewable subscription, non-renewing subscription, or free subscription remains in the receipt indefinitely”.\r\n\r\nTaken from https://developer.apple.com/in-app-purchase/In-App-Purchase-Guidelines.pdf\r\n\r\n\"For Non-Renewing Subscriptions, if you want to allow users to renew their subscription, your application must track the expiration manually. If the user chooses to renew their subscription you have to initiate a new Store Kit purchase request. Tracking of the expiration date of initial or renewed subscriptions is not handled by the App Store and is your responsibility. Additionally, your application must include a mechanism to deliver the purchased Non- Renewing Subscription In App Purchase to all iOS devices owned by a single user.”\r\n\r\nMany apps achieve that by refreshing the app receipt and processing the in-app purchases.\r\n\r\nSteps to Reproduce:\r\n(Assuming in-app purchase information is correctly set-up in iTunes Connect)\r\n\r\n1) Purchase a non-recurring subscription using StoreKit [SKPaymentQueue addPayment:]\r\n2) Refresh the app receipt using SKReceiptRefreshRequest\r\n\r\nExpected Results:\r\nThe in_app field of the app receipt contains a receipt for the non-recurring subscription in-app purchase.\r\n\r\nActual Results:\r\nThe in_app field of the app receipt is empty.\r\n\r\nVersion:\r\niOS 9.0.2\r\n\r\nNotes:\r\n\r\n\r\nConfiguration:\r\niPhone 6S, 128GB\n\n-\nProduct Version: iOS 9\nCreated: 2015-10-20T09:48:43.420070\nOriginated: 2015-10-20T00:00:00\nOpen Radar Link: http://www.openradar.me/23180869"}}