{ "info": { "author": "Ivan Mukhin", "author_email": "muhin.ivan@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "pyinapp\n=======\n|travis| |pypi|\n\n.. |travis| image:: https://travis-ci.org/keeprocking/pyinapp.svg?branch=master\n :target: https://travis-ci.org/keeprocking/pyinapp\n.. |pypi| image:: https://badge.fury.io/py/pyinapp.svg\n :target: https://badge.fury.io/py/pyinapp\n\nIn-app purchase validation has never been so friendly and convenient!\n\nInstallation\n============\n::\n\n pip install pyinapp\n\nUsage\n=====\n\nCurrently pyinapp supports Google Play and App Store receipts validation.\n\nGoogle Play:\n------------\n.. code:: python\n\n from pyinapp import GooglePlayValidator, InAppValidationError\n\n\n bundle_id = 'com.yourcompany.yourapp'\n api_key = 'API key from the developer console'\n validator = GooglePlayValidator(bundle_id, api_key)\n\n try:\n purchases = validator.validate('receipt', 'signature')\n process_purchases(purchases)\n except InAppValidationError:\n \"\"\" handle validation error \"\"\"\n\nApp Store:\n----------\n.. code:: python\n\n from pyinapp import AppStoreValidator, InAppValidationError\n\n\n bundle_id = 'com.yourcompany.yourapp'\n validator = AppStoreValidator(bundle_id)\n\n try:\n purchases = validator.validate('receipt')\n process_purchases(purchases)\n except InAppValidationError:\n \"\"\" handle validation error \"\"\"\n\n**Important!**\nIf your version is under 0.1.3, you need to check the type of purchases. For the sake of convenience you can process purchases this way:\n\n.. code:: python\n\n def process_purchases(purchases):\n process(*purchases) if isinstance(purchases, list) else process(purchases)\n\n\n def process(*purchases):\n for p in purchases:\n \"\"\" for instance, save p to db and add a player some coins for it \"\"\"\n\n\nThis approach allows to process both Google Play and App Store purchases the same way.\n\nPurchase\n========\n\nPurchase is a universal wrapper for Google Play and App Store receipts. It contains the following fields:\n\n- **transaction_id**: id of the purchase (**transaction_id** for App Store and **orderId** for Google Play);\n- **product_id**: what product has been purchased (**product_id** for App Store and **productId** for Google Play);\n- **quantity**: how many products have been purchased (**quantity** for App Store and always **1** for Google Play - there's no such field in Google Play receipt);\n- **purchased_at**: when the product has been purchased, UNIX timestamp (**purchase_date** for App Store and **purchaseTime** for Google Play).\n- **response**: (App Store only) the response (in JSON format) from the App Store.\n\nContributing\n============\n\nTo run tests, you'll need tox_. After installing, simply run it:\n\n.. code:: python\n\n tox\n\n.. _tox: https://pypi.python.org/pypi/tox", "description_content_type": null, "docs_url": null, "download_url": "", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/keeprocking/pyinapp", "keywords": "inapp store purchase googleplay appstore market", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyinapp", "package_url": "https://pypi.org/project/pyinapp/", "platform": "", "project_url": "https://pypi.org/project/pyinapp/", "project_urls": { "Homepage": "https://github.com/keeprocking/pyinapp" }, "release_url": "https://pypi.org/project/pyinapp/0.1.4/", "requires_dist": null, "requires_python": "", "summary": "InApp purchase validation API wrappers", "version": "0.1.4" }, "last_serial": 3127325, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "dd9432e053876156737ad602c38c31cb", "sha256": "138dedc0532214f68a05a064c3e0b1a38f94347482461cd33d4316e1f8d4be18" }, "downloads": -1, "filename": "pyinapp-0.1.1.tar.gz", "has_sig": false, "md5_digest": "dd9432e053876156737ad602c38c31cb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3224, "upload_time": "2015-09-18T06:01:29", "url": "https://files.pythonhosted.org/packages/9b/0b/5d625b78e8337c1fb027a02d25515f3a2447150aa17b5b0beb5a8485feea/pyinapp-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "be04e9b20323d7d95b6075c4bce5c841", "sha256": "e1405617fcad70e1aab9f13c18aa5941ea16775f78fdd93f3d0017304ed4abc3" }, "downloads": -1, "filename": "pyinapp-0.1.2.tar.gz", "has_sig": false, "md5_digest": "be04e9b20323d7d95b6075c4bce5c841", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3290, "upload_time": "2016-11-13T22:03:14", "url": "https://files.pythonhosted.org/packages/1a/12/45b460c15490b7f897c2dfd4c7b8ddf3d35e5e20960b6a85079288b60b51/pyinapp-0.1.2.tar.gz" } ], "0.1.3": [ { "comment_text": "", "digests": { "md5": "4db78974480c436d6eaeaf92b16bba52", "sha256": "f0657a965b9609cf771a27aaadddc390160e8b5e8277cf319aa5720d72471dc3" }, "downloads": -1, "filename": "pyinapp-0.1.3.tar.gz", "has_sig": false, "md5_digest": "4db78974480c436d6eaeaf92b16bba52", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3327, "upload_time": "2016-12-17T10:39:39", "url": "https://files.pythonhosted.org/packages/a2/28/37567c33ce51892e0a73e8b003aad6633889884d6da5d35844cb755d2dce/pyinapp-0.1.3.tar.gz" } ], "0.1.4": [ { "comment_text": "", "digests": { "md5": "1696fc000370cb0e45f03c2aeb6873e4", "sha256": "ad62a6cc75cecdb1a0034e9e554105b8ebe6e34baf778057f74f0395983d7b0b" }, "downloads": -1, "filename": "pyinapp-0.1.4.tar.gz", "has_sig": false, "md5_digest": "1696fc000370cb0e45f03c2aeb6873e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3527, "upload_time": "2017-08-27T20:21:40", "url": "https://files.pythonhosted.org/packages/12/5f/bca9b02a9f80145a2b514166c493c62bc58364f8edb229e05ce10771ba9f/pyinapp-0.1.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "1696fc000370cb0e45f03c2aeb6873e4", "sha256": "ad62a6cc75cecdb1a0034e9e554105b8ebe6e34baf778057f74f0395983d7b0b" }, "downloads": -1, "filename": "pyinapp-0.1.4.tar.gz", "has_sig": false, "md5_digest": "1696fc000370cb0e45f03c2aeb6873e4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 3527, "upload_time": "2017-08-27T20:21:40", "url": "https://files.pythonhosted.org/packages/12/5f/bca9b02a9f80145a2b514166c493c62bc58364f8edb229e05ce10771ba9f/pyinapp-0.1.4.tar.gz" } ] }