{ "info": { "author": "Ad\u00e1n Mauri Ungaro", "author_email": "adan.mauri@gmail.com", "bugtrack_url": null, "classifiers": [ "License :: OSI Approved :: Apache Software License", "Operating System :: OS Independent" ], "description": "# inapp-purchases\nManage in-app purchases for Apple AppStore and Google Play\n\n[![PyPI version](https://badge.fury.io/py/inapp-purchases.svg)](https://badge.fury.io/py/inapp-purchases)\n[![Code Health](https://landscape.io/github/adanmauri/inapp-purchases/master/landscape.svg?style=flat)](https://landscape.io/github/adanmauri/inapp-purchases/master)\n\n\n## Installation\n```shell\npip install inapp-purchases\n```\n\n## Usage\nCurrently inapp-purchases supports Google Play and App Store subscription services. But, product purchases is available retrieving raw data.\n\n### Google Play:\n\n```python\nfrom inapp_purchases.google_play import GooglePlayService\n\nservice = GooglePlayService(\n service_account_file='service-info.json',\n # or service_account_info='service-info.json'\n package_name='com.package.name'\n)\n\npurchase = service.get_subscription_purchase(\n subscription_id='com.subscription.id',\n token='purchase-token'\n)\n```\n\n### AppStore:\n\n```python\nfrom inapp_purchases.app_store import AppStoreService\n\nservice = AppStoreService(\n sandbox=True,\n password='secret-password'\n)\n\npurchase = service.get_subscription_purchase(\n receipt_data='receive-hash'\n)\n```\n\n## Response\n\n```python\n{\n 'bundle_id': unicode,\n 'subscription_id': unicode,\n 'purchase_id': unicode,\n 'original_purchase_id': unicode,\n 'purchase_date_ms': int,\n 'original_purchase_date_ms': int,\n 'auto_renewing': bool,\n 'expires_date_ms': int,\n 'country_code': unicode,\n 'price_currency_code': unicode,\n 'price_amount': float,\n 'cancellation_date_ms': int,\n 'cancellation_reason': unicode,,\n 'payment_state': int,\n 'status': unicode,\n 'is_active': bool,\n 'is_trial_period': bool,\n 'expiration_intent': unicode,\n}\n```\n\n## TODO\n\n- Exceptions\n- Google Play products data response (the raw content is returned)\n- AppStore products data response (the raw content is returned)\n- Get list of products from AppStore\n- Tests\n- Retrieve more information from the services\n- Documentation\n- Examples\n\n\n", "description_content_type": "", "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/adanmauri/inapp-purchases.git", "keywords": "python in-app payment payments purchase purchases google play apple appstore iphone android", "license": "Apache License Version 2.0", "maintainer": "", "maintainer_email": "", "name": "inapp-purchases", "package_url": "https://pypi.org/project/inapp-purchases/", "platform": "", "project_url": "https://pypi.org/project/inapp-purchases/", "project_urls": { "Homepage": "https://github.com/adanmauri/inapp-purchases.git" }, "release_url": "https://pypi.org/project/inapp-purchases/0.4.2/", "requires_dist": [ "google (==2.0.1)", "request (==1.0.2)" ], "requires_python": "", "summary": "Manage in-app purchases for Apple AppStore and Google Play", "version": "0.4.2" }, "last_serial": 4313140, "releases": { "0.2.3": [ { "comment_text": "", "digests": { "md5": "d80360445b46da275e010df49256969c", "sha256": "13e5b934c62cd49d67e03e5cf92a384635c4b0c4e6b545bdf9e3e4357e1f86d7" }, "downloads": -1, "filename": "inapp_purchases-0.2.3-py2-none-any.whl", "has_sig": false, "md5_digest": "d80360445b46da275e010df49256969c", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6567, "upload_time": "2018-09-07T18:07:44", "url": "https://files.pythonhosted.org/packages/67/3c/231d38fb39fd84803933e196b77a545ead175317579ac0dd1d08d9164663/inapp_purchases-0.2.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "bece731ec713bb2e223a5d71284e1c01", "sha256": "4797a13b7bdaaf35f70c353960099b6d7b190a33cb8849e314bb7af2071d6261" }, "downloads": -1, "filename": "inapp_purchases-0.2.3-py3-none-any.whl", "has_sig": false, "md5_digest": "bece731ec713bb2e223a5d71284e1c01", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6545, "upload_time": "2018-09-07T18:07:45", "url": "https://files.pythonhosted.org/packages/d3/d4/2123cbd2ca2365777acf87c96fc4199705c8cc2c8077ed5bcba244233201/inapp_purchases-0.2.3-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "208fe0c4dc16fbadf12bf8c4742859c7", "sha256": "ca45ed605f8c614d8ba52a0b79ef6e912354c32cbf63521b5ca10835c1c343d3" }, "downloads": -1, "filename": "inapp-purchases-0.2.3.tar.gz", "has_sig": false, "md5_digest": "208fe0c4dc16fbadf12bf8c4742859c7", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4986, "upload_time": "2018-09-07T18:07:46", "url": "https://files.pythonhosted.org/packages/c4/ea/b6ac3dff90817e8d93db4819721279615ceeb52e8f148920cb7a964bb606/inapp-purchases-0.2.3.tar.gz" } ], "0.3.0": [ { "comment_text": "", "digests": { "md5": "b95bd4385be3f4ea9393ee9cce2eab8f", "sha256": "b5a2183ae3dd01413dc9dbbcb887dc52f148f98688cdc907a570654ba4e95b1b" }, "downloads": -1, "filename": "inapp_purchases-0.3.0-py2-none-any.whl", "has_sig": false, "md5_digest": "b95bd4385be3f4ea9393ee9cce2eab8f", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6686, "upload_time": "2018-09-10T13:29:50", "url": "https://files.pythonhosted.org/packages/6d/e8/139dac50844a2f9aca7f457610ea813c94f3336dc4a1552c1e529d87cb74/inapp_purchases-0.3.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "1438a6ccc14783d6bab3d10f4f0a6ddd", "sha256": "6afb44de1d68d735abfcd27162ebde64726804a86580c40db2d46a7c29079eca" }, "downloads": -1, "filename": "inapp_purchases-0.3.0-py3-none-any.whl", "has_sig": false, "md5_digest": "1438a6ccc14783d6bab3d10f4f0a6ddd", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6663, "upload_time": "2018-09-10T13:29:52", "url": "https://files.pythonhosted.org/packages/3c/ce/21284ba59aa5ccc4057bb651851ac3375af896ffd7a291665e3aeb407435/inapp_purchases-0.3.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c2db6c973587c892d45e710e2e7168af", "sha256": "420b92038518926a911391d164006718025ff5473d07f8c19d9336e1ed500c64" }, "downloads": -1, "filename": "inapp-purchases-0.3.0.tar.gz", "has_sig": false, "md5_digest": "c2db6c973587c892d45e710e2e7168af", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5072, "upload_time": "2018-09-10T13:29:54", "url": "https://files.pythonhosted.org/packages/13/65/a09e04a021398f45821a65246c425764302beb99e532786138142a0b7a19/inapp-purchases-0.3.0.tar.gz" } ], "0.3.1": [ { "comment_text": "", "digests": { "md5": "edd9353e17e0285f3630716cc9834b67", "sha256": "bc70c30e860bfdfe6e979049a1a87502464f03b4ebe480b8ee4641be8e4075a7" }, "downloads": -1, "filename": "inapp_purchases-0.3.1-py2-none-any.whl", "has_sig": false, "md5_digest": "edd9353e17e0285f3630716cc9834b67", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 6687, "upload_time": "2018-09-10T16:21:25", "url": "https://files.pythonhosted.org/packages/b9/18/3af20869c52b55af9a7f2d83b85f7fa5cb31124f8a3739c0c481dbc3cc51/inapp_purchases-0.3.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "81281c5bfa3a87c092f9cfddc6f7743d", "sha256": "cdfd0d738b1cc69b07a59555f07735c9f72774e941c3ee253878172b121b3cdb" }, "downloads": -1, "filename": "inapp_purchases-0.3.1-py3-none-any.whl", "has_sig": false, "md5_digest": "81281c5bfa3a87c092f9cfddc6f7743d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 6663, "upload_time": "2018-09-10T16:21:26", "url": "https://files.pythonhosted.org/packages/10/0a/8a2c6327a032da83d86bc658fbdc8cda334dd77958b5aede2077e3210c6d/inapp_purchases-0.3.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "78ad39144f8eedd6c86011c4d7f04c45", "sha256": "b573e1ea03b0afb7a6af5fe01549aa3808704971ddccc6144ff53832052f9057" }, "downloads": -1, "filename": "inapp-purchases-0.3.1.tar.gz", "has_sig": false, "md5_digest": "78ad39144f8eedd6c86011c4d7f04c45", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5077, "upload_time": "2018-09-10T16:21:27", "url": "https://files.pythonhosted.org/packages/b9/f3/c7f39d7f63f79d925cd26cfc33de28cdbb88c8bcd241bc89d55d189726c8/inapp-purchases-0.3.1.tar.gz" } ], "0.4.0": [ { "comment_text": "", "digests": { "md5": "0861c2f6cca19149bc17fe292b9285b0", "sha256": "a0f8845793af2649485a7f5fc407c4870edbc7c472eed3ab4f0384a86a6d0d71" }, "downloads": -1, "filename": "inapp_purchases-0.4.0-py2-none-any.whl", "has_sig": false, "md5_digest": "0861c2f6cca19149bc17fe292b9285b0", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8356, "upload_time": "2018-09-26T14:42:40", "url": "https://files.pythonhosted.org/packages/26/98/5ae08c7c79451a155303995c0a56c17dc07d42b70d9516933bb1b48bcbd6/inapp_purchases-0.4.0-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "6c951e0547930d897e1b73c155af8f1d", "sha256": "0689554afc19093d4d039f09365526629704af136bd4a5fe2c25710ba85aa038" }, "downloads": -1, "filename": "inapp_purchases-0.4.0-py3-none-any.whl", "has_sig": false, "md5_digest": "6c951e0547930d897e1b73c155af8f1d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8356, "upload_time": "2018-09-26T14:42:41", "url": "https://files.pythonhosted.org/packages/2f/32/1825bf04c3f514b94e7ee1c2af08d41c042ef7cec461ae80458d176ceb82/inapp_purchases-0.4.0-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a988d70e17696fe8c92caa1829e08897", "sha256": "58034ba5d367f21439c83e023904c3a4911e1a1edad0598ba2928c49264409d7" }, "downloads": -1, "filename": "inapp-purchases-0.4.0.tar.gz", "has_sig": false, "md5_digest": "a988d70e17696fe8c92caa1829e08897", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 4863, "upload_time": "2018-09-26T14:42:43", "url": "https://files.pythonhosted.org/packages/89/43/b89c4f3a49948efb1fed3e25fa8a61b46cecd5beec19b0a2e8e501dcd42a/inapp-purchases-0.4.0.tar.gz" } ], "0.4.1": [ { "comment_text": "", "digests": { "md5": "1eb84dbf7282854fea57153cb25f2e03", "sha256": "a0e0f0633123a09e6b7283857ff82303147c3cfef87b06bc722c8206a23e22a2" }, "downloads": -1, "filename": "inapp_purchases-0.4.1-py2-none-any.whl", "has_sig": false, "md5_digest": "1eb84dbf7282854fea57153cb25f2e03", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8387, "upload_time": "2018-09-26T15:46:44", "url": "https://files.pythonhosted.org/packages/42/b9/cdea7910fbc80eb70e89071902bd294c28debb2ac299f4f56f67fa15c965/inapp_purchases-0.4.1-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ff29cddf1665d6a94166cdf46eb3bf13", "sha256": "c172820f07226e1f038197ad2f54d8e716477c1e0cb14d37e97186722654fc28" }, "downloads": -1, "filename": "inapp_purchases-0.4.1-py3-none-any.whl", "has_sig": false, "md5_digest": "ff29cddf1665d6a94166cdf46eb3bf13", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8432, "upload_time": "2018-09-26T15:46:46", "url": "https://files.pythonhosted.org/packages/a5/64/cef7ecb34813a9130651e3c4dd6dd7488299491243df81838283cbbdf1d2/inapp_purchases-0.4.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "3c7998ad83f131e5d313fac4ef21ed79", "sha256": "712d9ec5beebb6c837810ce0aa03ba1905a3052da54bb424d63f9be53bfbce5b" }, "downloads": -1, "filename": "inapp-purchases-0.4.1.tar.gz", "has_sig": false, "md5_digest": "3c7998ad83f131e5d313fac4ef21ed79", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5169, "upload_time": "2018-09-26T15:46:47", "url": "https://files.pythonhosted.org/packages/69/9f/6329ad9a35fd2f491c23b6933161bd0c10c6d24ca43d3c26cb292c5722f1/inapp-purchases-0.4.1.tar.gz" } ], "0.4.2": [ { "comment_text": "", "digests": { "md5": "4aaed873480a9f8c44c998f5734da39e", "sha256": "673ee53d31219660092086884f6b489853697373a3e5f3a654564083bac5d3d1" }, "downloads": -1, "filename": "inapp_purchases-0.4.2-py2-none-any.whl", "has_sig": false, "md5_digest": "4aaed873480a9f8c44c998f5734da39e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8412, "upload_time": "2018-09-26T16:02:15", "url": "https://files.pythonhosted.org/packages/22/27/e02e0966a7e39b7c95948b83c3b08f376e002467418da68b322ed990a611/inapp_purchases-0.4.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d6b75d41656a3339ecea6516939196d", "sha256": "7c4acb48ca676506505013526b23d33e3936cebf6bdf01a15aebf4ed60a66c15" }, "downloads": -1, "filename": "inapp_purchases-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0d6b75d41656a3339ecea6516939196d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8455, "upload_time": "2018-09-26T16:02:35", "url": "https://files.pythonhosted.org/packages/b6/fe/b515e441973d07d04dad4f35c97eb05dfd6f63818c25ffb09c1923917ddb/inapp_purchases-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1771f210cddcc01394d0690fabb5b5b", "sha256": "368b2de54def301b47fb66a91fde98753a695fbe8c6edbca10f64dd258f58802" }, "downloads": -1, "filename": "inapp-purchases-0.4.2.tar.gz", "has_sig": false, "md5_digest": "b1771f210cddcc01394d0690fabb5b5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5186, "upload_time": "2018-09-26T16:02:36", "url": "https://files.pythonhosted.org/packages/90/de/abac32ca3a37d4585ae4e4a4d79ee574979aa1acf6b524f1969191f06005/inapp-purchases-0.4.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "4aaed873480a9f8c44c998f5734da39e", "sha256": "673ee53d31219660092086884f6b489853697373a3e5f3a654564083bac5d3d1" }, "downloads": -1, "filename": "inapp_purchases-0.4.2-py2-none-any.whl", "has_sig": false, "md5_digest": "4aaed873480a9f8c44c998f5734da39e", "packagetype": "bdist_wheel", "python_version": "py2", "requires_python": null, "size": 8412, "upload_time": "2018-09-26T16:02:15", "url": "https://files.pythonhosted.org/packages/22/27/e02e0966a7e39b7c95948b83c3b08f376e002467418da68b322ed990a611/inapp_purchases-0.4.2-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "0d6b75d41656a3339ecea6516939196d", "sha256": "7c4acb48ca676506505013526b23d33e3936cebf6bdf01a15aebf4ed60a66c15" }, "downloads": -1, "filename": "inapp_purchases-0.4.2-py3-none-any.whl", "has_sig": false, "md5_digest": "0d6b75d41656a3339ecea6516939196d", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 8455, "upload_time": "2018-09-26T16:02:35", "url": "https://files.pythonhosted.org/packages/b6/fe/b515e441973d07d04dad4f35c97eb05dfd6f63818c25ffb09c1923917ddb/inapp_purchases-0.4.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b1771f210cddcc01394d0690fabb5b5b", "sha256": "368b2de54def301b47fb66a91fde98753a695fbe8c6edbca10f64dd258f58802" }, "downloads": -1, "filename": "inapp-purchases-0.4.2.tar.gz", "has_sig": false, "md5_digest": "b1771f210cddcc01394d0690fabb5b5b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5186, "upload_time": "2018-09-26T16:02:36", "url": "https://files.pythonhosted.org/packages/90/de/abac32ca3a37d4585ae4e4a4d79ee574979aa1acf6b524f1969191f06005/inapp-purchases-0.4.2.tar.gz" } ] }