{"action":"created","issue":{"url":"https://api.github.com/repos/godotengine/godot/issues/25718","repository_url":"https://api.github.com/repos/godotengine/godot","labels_url":"https://api.github.com/repos/godotengine/godot/issues/25718/labels{/name}","comments_url":"https://api.github.com/repos/godotengine/godot/issues/25718/comments","events_url":"https://api.github.com/repos/godotengine/godot/issues/25718/events","html_url":"https://github.com/godotengine/godot/issues/25718","id":408343383,"node_id":"MDU6SXNzdWU0MDgzNDMzODM=","number":25718,"title":"iOS purchases are not finished","user":{"login":"alekmlynek","id":4039858,"node_id":"MDQ6VXNlcjQwMzk4NTg=","avatar_url":"https://avatars2.githubusercontent.com/u/4039858?v=4","gravatar_id":"","url":"https://api.github.com/users/alekmlynek","html_url":"https://github.com/alekmlynek","followers_url":"https://api.github.com/users/alekmlynek/followers","following_url":"https://api.github.com/users/alekmlynek/following{/other_user}","gists_url":"https://api.github.com/users/alekmlynek/gists{/gist_id}","starred_url":"https://api.github.com/users/alekmlynek/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/alekmlynek/subscriptions","organizations_url":"https://api.github.com/users/alekmlynek/orgs","repos_url":"https://api.github.com/users/alekmlynek/repos","events_url":"https://api.github.com/users/alekmlynek/events{/privacy}","received_events_url":"https://api.github.com/users/alekmlynek/received_events","type":"User","site_admin":false},"labels":[{"id":73330064,"node_id":"MDU6TGFiZWw3MzMzMDA2NA==","url":"https://api.github.com/repos/godotengine/godot/labels/bug","name":"bug","color":"ff2222","default":true},{"id":279097519,"node_id":"MDU6TGFiZWwyNzkwOTc1MTk=","url":"https://api.github.com/repos/godotengine/godot/labels/platform:ios","name":"platform:ios","color":"dddddd","default":false},{"id":279098255,"node_id":"MDU6TGFiZWwyNzkwOTgyNTU=","url":"https://api.github.com/repos/godotengine/godot/labels/topic:porting","name":"topic:porting","color":"ffdd44","default":false}],"state":"open","locked":false,"assignee":null,"assignees":[],"milestone":{"url":"https://api.github.com/repos/godotengine/godot/milestones/8","html_url":"https://github.com/godotengine/godot/milestone/8","labels_url":"https://api.github.com/repos/godotengine/godot/milestones/8/labels","id":3401519,"node_id":"MDk6TWlsZXN0b25lMzQwMTUxOQ==","number":8,"title":"3.2","description":"","creator":{"login":"mhilbrunner","id":1654763,"node_id":"MDQ6VXNlcjE2NTQ3NjM=","avatar_url":"https://avatars2.githubusercontent.com/u/1654763?v=4","gravatar_id":"","url":"https://api.github.com/users/mhilbrunner","html_url":"https://github.com/mhilbrunner","followers_url":"https://api.github.com/users/mhilbrunner/followers","following_url":"https://api.github.com/users/mhilbrunner/following{/other_user}","gists_url":"https://api.github.com/users/mhilbrunner/gists{/gist_id}","starred_url":"https://api.github.com/users/mhilbrunner/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/mhilbrunner/subscriptions","organizations_url":"https://api.github.com/users/mhilbrunner/orgs","repos_url":"https://api.github.com/users/mhilbrunner/repos","events_url":"https://api.github.com/users/mhilbrunner/events{/privacy}","received_events_url":"https://api.github.com/users/mhilbrunner/received_events","type":"User","site_admin":false},"open_issues":1299,"closed_issues":42,"state":"open","created_at":"2018-06-05T09:48:59Z","updated_at":"2019-03-14T17:45:28Z","due_on":null,"closed_at":null},"comments":2,"created_at":"2019-02-08T22:10:36Z","updated_at":"2019-03-14T19:42:47Z","closed_at":null,"author_association":"NONE","body":"**Godot version:**\r\n3.0.6\r\n\r\n**OS/device including version:**\r\nAll iOS platforms. Reproduced iPhone 8 / iPad Pro running iOS 12\r\n\r\n**Issue description:**\r\nWhen a consumable (and non-consumable) is purchased, the transaction is not finished. This breaks consumable in-app purchases. If a user attempts to purchase the same consumable a second time, iOS tells them that they have already purchased the product and will not repurchase it.\r\n\r\nThis is a major show stopper for commercial iOS games, and exactly the problem I'm struggling with. \r\n\r\n**Steps to reproduce:**\r\n- Use Godot's iAppStore to make a consumable purchase on an iOS device\r\n- Purchase it a second time, iOS will warn you that you've already purchased it and will not continue\r\n\r\nIn Code:\r\nin_app_store.mm: 227 - auto_finish_transactions equals false\r\nin_app_store.mm: 316 - auto_finish_transaction is hard-coded to false\r\nin_app_store.mm: 320 - intent for transaction queue, unfinished?\r\n\r\n**Minimal reproduction project:**\r\nDue to the nature of this bug, I've provided a project and template but things like ios team ID and test appstoreconnect product will have to be added manually. NOTE: I've left out the *.a* file that is required to run the XCode project. Please link your own, GitHub won't allow the size.\r\n\r\n[iap.zip](https://github.com/godotengine/godot/files/2847066/iap.zip)\r\n\r\n\r\n"},"comment":{"url":"https://api.github.com/repos/godotengine/godot/issues/comments/473029779","html_url":"https://github.com/godotengine/godot/issues/25718#issuecomment-473029779","issue_url":"https://api.github.com/repos/godotengine/godot/issues/25718","id":473029779,"node_id":"MDEyOklzc3VlQ29tbWVudDQ3MzAyOTc3OQ==","user":{"login":"wombatwingdings","id":36036908,"node_id":"MDQ6VXNlcjM2MDM2OTA4","avatar_url":"https://avatars3.githubusercontent.com/u/36036908?v=4","gravatar_id":"","url":"https://api.github.com/users/wombatwingdings","html_url":"https://github.com/wombatwingdings","followers_url":"https://api.github.com/users/wombatwingdings/followers","following_url":"https://api.github.com/users/wombatwingdings/following{/other_user}","gists_url":"https://api.github.com/users/wombatwingdings/gists{/gist_id}","starred_url":"https://api.github.com/users/wombatwingdings/starred{/owner}{/repo}","subscriptions_url":"https://api.github.com/users/wombatwingdings/subscriptions","organizations_url":"https://api.github.com/users/wombatwingdings/orgs","repos_url":"https://api.github.com/users/wombatwingdings/repos","events_url":"https://api.github.com/users/wombatwingdings/events{/privacy}","received_events_url":"https://api.github.com/users/wombatwingdings/received_events","type":"User","site_admin":false},"created_at":"2019-03-14T19:42:47Z","updated_at":"2019-03-14T19:42:47Z","author_association":"NONE","body":"This issue is resolved in the latest Master (3.1) branch. There are two undocumented functions that finish the transaction:\r\n\r\n```InAppStore.set_auto_finish_transaction(true)``` \r\n(basically does the same as your fix without changing Godot source)\r\nor you can finish the transaction manually with:\r\n\r\n```InAppStore.finish_transaction(PRODUCT_ID)```\r\n\r\nThis has fixed my “purchase” event happening on each invocation of the app.\r\n\r\nI think a ticket needs to be raised to add these methods to the documentation.\r\n"}}
{"actor":{"display_login":"wombatwingdings"}}