{ "info": { "author": "intelligenia", "author_email": "mario@intelligenia.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 5 - Production/Stable", "Framework :: Django", "License :: OSI Approved :: MIT License" ], "description": "Django Virtual Pos\n==================\n\nDjango module that abstracts the flow of several virtual points of sale\nincluding PayPal\n\nWhat\u2019s this?\n-------------------------\n\nThis module abstracts the use of the most used virtual points of sale in\nSpain.\n\nLicense\n-------------------------\n\n`MIT LICENSE`_.\n\nImplemented payment methods\n----------------------------\n\nPaypal\n-------------------------\n\n`Paypal`_ paypal payment available.\n\nBitpay\n-------------------------\n\n`Bitpay`_ bitcoin payments, from wallet to checkout\n\nSpanish Virtual Points of Sale\n------------------------------\n\n- Ceca\n\n\n`CECA`_ is the Spanish confederation of savings banks.\n\n- RedSyS\n\n`RedSyS`_ gives payment services to several Spanish banks like CaixaBank\nor Caja Rural.\n\nSantander Elavon\n----------------\n\n`Santander Elavon`_ is one of the payment methods of the Spanish bank\nSantander.\n\nRequirements and Installation\n==============================\n\nRequirements\n----------------\n\n- Python 2.7 (Python 3 not tested, contributors wanted!)\n- ``Django``\n- ``BeautifulSoup4``\n- ``lxml``\n- ``pycrypto``\n- ``Pytz``\n- ``Requests``\n\nType:\n\n.. code:: sh\n\n $ pip install django beautifulsoup4 lxml pycrypto pytz\n\nInstallation\n----------------\n\n\nFrom PyPi\n----------------\n\n.. code:: sh\n\n $ pip install django-virtual-pos\n\nFrom master branch\n-------------------\n\nMaster branch will allways contain a working version of this module.\n\n.. code:: sh\n\n $ pip install git+git://github.com/intelligenia/django-virtual-pos.git\n\nsettings.py\n-------------\n\nAdd the application djangovirtualpos to your settings.py:\n\n.. code:: python\n\n INSTALLED_APPS = (\n # ...\n \"djangovirtualpos\",\n )\n\nUse\n----\n\nSee this ``manual`` (currently only in Spanish).\n\nNeeded models\n-------------\n\nYou will need to implement this skeleton view using your own **Payment**\nmodel.\n\nThis model has must have at least the following attributes: - **code**:\nsale code given by our system. - **operation_number**: bank operation\nnumber. - **status**: status of the payment: \u201cpaid\u201d, \u201cpending\u201d\n(**pending** is mandatory) or \u201ccanceled\u201d. - **amount**: amount to be\ncharged.\n\nAnd the following methods: - **online_confirm**: mark the payment as\npaid.\n\nIntegration examples\n-----------------------\n\n- ``djshop``\n\nNeeded views\n--------------\n\nSale summary view\n------------------\n\n.. code:: python\n\n def payment_summary(request, payment_id):\n \"\"\"\n Load a Payment object and show a summary of its contents to the user.\n \"\"\"\n\n payment = get_object_or_404(Payment, id=payment_id, status=\"pending\")\n replacements = {\n \"payment\": payment,\n # ...\n }\n return render(request, '', replacements)\n\nNote that this payment summary view should load a JS file called\n**set_payment_attributes.js**.\n\nThis file is needed to set initial payment attributes according to which\nbank have the user selected.\n\nPayment_confirm view\n-------------------------\n\n.. code:: python\n\n @csrf_exempt\n def payment_confirmation(request, virtualpos_type):\n \t\"\"\"\n \tThis view will be called by the bank.\n \t\"\"\"\n \t# Directly call to confirm_payment view\n\n \t# Or implement the following actions\n\n \t# Checking if the Point of Sale exists\n \tvirtual_pos = VirtualPointOfSale.receiveConfirmation(request, virtualpos_type=virtualpos_type)\n\n \tif not virtual_pos:\n \t\t# The VPOS does not exist, inform the bank with a cancel\n \t\t# response if needed\n \t\treturn VirtualPointOfSale.staticResponseNok(virtualpos_type)\n\n \t# Verify if bank confirmation is indeed from the bank\n \tverified = virtual_pos.verifyConfirmation()\n \toperation_number = virtual_pos.operation.operation_number\n\n \twith transaction.atomic():\n \t\ttry:\n \t\t\t# Getting your payment object from operation number\n \t\t\tpayment = Payment.objects.get(operation_number=operation_number, status=\"pending\")\n \t\texcept Payment.DoesNotExist:\n \t\t\treturn virtual_pos.responseNok(\"not_exists\")\n\n \t\tif verified:\n \t\t\t# Charge the money and answer the bank confirmation\n \t\t\ttry:\n \t\t\t\tresponse = virtual_pos.charge()\n \t\t\t\t# Implement the online_confirm method in your payment\n \t\t\t\t# this method will mark this payment as paid and will\n \t\t\t\t# store the payment date and time.\n \t\t\t\tpayment.online_confirm()\n \t\t\texcept VPOSCantCharge as e:\n \t\t\t\treturn virtual_pos.responseNok(extended_status=e)\n \t\t\texcept Exception as e:\n \t\t\t\treturn virtual_pos.responseNok(\"cant_charge\")\n\n \t\telse:\n \t\t\t# Payment could not be verified\n \t\t\t# signature is not right\n \t\t\tresponse = virtual_pos.responseNok(\"verification_error\")\n\n \t\treturn response\n\nPayment ok view\n-------------------------\n\n.. code:: python\n\n def payment_ok(request, sale_code):\n \"\"\"\n Informs the user that the payment has been made successfully\n :param payment_code: Payment code.\n :param request: request.\n \"\"\"\n\n # Load your Payment model given its code\n payment = get_object_or_404(Payment, code=sale_code, status=\"paid\")\n\n context = {'pay_status': \"Done\", \"request\": request}\n return render(request, '', {'context': context, 'payment': payment})\n\nPayment cancel view\n--------------------\n\n.. code:: python\n\n def payment_cancel(request, sale_code):\n \"\"\"\n Informs the user that the payment has been canceled\n :param payment_code: Payment code.\n :param request: request.\n \"\"\"\n\n # Load your Payment model given its code\n payment = get_object_or_404(Payment, code=sale_code, status=\"pending\")\n # Mark this payment as canceled\n payment.cancel()\n\n context = {'pay_status': \"Done\", \"request\": request}\n return render(request, '', {'context': context, 'payment': payment})\n\n\nRefund view\n-----------\n\n.. code:: python\n\n def refund(request, tpv, payment_code, amount, description):\n \t\"\"\"\n \t:param request:\n \t:param tpv: TPV Id\n \t:param payment_code: Payment code\n \t:param amount: Refund Amount (Example 10.89).\n \t:param description: Description of refund cause.\n \t:return:\n \t\"\"\"\n\n \tamount = Decimal(amount)\n\n \ttry:\n \t\t# Checking if the Point of Sale exists\n \t\ttpv = VirtualPointOfSale.get(id=tpv)\n \t\t# Checking if the Payment exists\n \t\tpayment = Payment.objects.get(code=payment_code, state=\"paid\")\n\n \texcept Payment.DoesNotExist as e:\n \t\treturn http_bad_request_response_json_error(message=u\"Does not exist payment with code {0}\".format(payment_code))\n\n \trefund_status = tpv.refund(payment_code, amount, description)\n\n \tif refund_status:\n \t\tmessage = u\"Refund successful\"\n \telse:\n \t\tmessage = u\"Refund with erros\"\n\n \treturn http_response_json_ok(message)\n\nAuthors\n===============\n\n- Mario Barch\u00e9in marioREMOVETHIS@REMOVETHISintelligenia.com\n- Diego J. Romero diegoREMOVETHIS@REMOVETHISintelligenia.com\n\nRemove REMOVETHIS to contact the authors.\n\n\n.. _MIT LICENSE: LICENSE\n.. _Paypal: https://www.paypal.com/\n.. _Bitpay: http://bitpay.com\n.. _CECA: http://www.cajasdeahorros.es/\n.. _RedSyS: http://www.redsys.es/\n.. _Santander Elavon: https://www.santanderelavon.com/\n.. _Django: https://pypi.python.org/pypi/django\n.. _BeautifulSoup4: https://pypi.python.org/pypi/beautifulsoup4\n.. _lxml: https://pypi.python.org/pypi/lxml\n.. _pycrypto: https://pypi.python.org/pypi/pycrypto\n.. _Pytz: https://pypi.python.org/pypi/pytz\n.. _Requests: https://pypi.python.org/pypi/requests\n.. _manual: manual/COMMON.md\n.. _djshop: https://github.com/diegojromerolopez/djshop\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/intelligenia/django-virtual-pos", "keywords": "virtual,point-of-sale,puchases,online,payments", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "django-virtual-pos", "package_url": "https://pypi.org/project/django-virtual-pos/", "platform": "", "project_url": "https://pypi.org/project/django-virtual-pos/", "project_urls": { "Homepage": "https://github.com/intelligenia/django-virtual-pos" }, "release_url": "https://pypi.org/project/django-virtual-pos/1.6.10/", "requires_dist": [ "django", "beautifulsoup4", "lxml", "pycrypto", "pytz", "requests" ], "requires_python": ">=2.7.0", "summary": "django-virtual-pos is a module that abstracts the flow of paying in several online payment platforms.", "version": "1.6.10" }, "last_serial": 4332882, "releases": { "1.5": [ { "comment_text": "", "digests": { "md5": "c04d1d5331d6b884c9dcdbe883e8b72f", "sha256": "975a8bd1409522b26554a39d2e45c26ec9380f1ef7fdf6e88c8cc307724bfddc" }, "downloads": -1, "filename": "django-virtual-pos-1.5.tar.gz", "has_sig": false, "md5_digest": "c04d1d5331d6b884c9dcdbe883e8b72f", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 1900027, "upload_time": "2017-03-14T11:55:00", "url": "https://files.pythonhosted.org/packages/a1/e1/f84253388743a9e5c7e2f4adc1cdfe419a9ac6b088b132b538098e2ca039/django-virtual-pos-1.5.tar.gz" } ], "1.6": [ { "comment_text": "", "digests": { "md5": "1d24a9fedb4a4c5fae7f0005f935cb25", "sha256": "b60a2e19ce524481ea7760a378b8e4ba638ada30ddd968bb9d13714048eeaf9b" }, "downloads": -1, "filename": "django-virtual-pos-1.6.tar.gz", "has_sig": false, "md5_digest": "1d24a9fedb4a4c5fae7f0005f935cb25", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 5701049, "upload_time": "2017-03-14T12:05:56", "url": "https://files.pythonhosted.org/packages/1e/69/ca57578a671526babad67e01e4a75a7da3a71aa95a252ffcd4885a79c7b7/django-virtual-pos-1.6.tar.gz" } ], "1.6.1": [ { "comment_text": "", "digests": { "md5": "1612314b3dc4534fabb1c5d5d7a84095", "sha256": "c3e10c1e137e4a8692dc2f3ba75edcca17fab8ffcb236c468602a7d50331b260" }, "downloads": -1, "filename": "django-virtual-pos-1.6.1.tar.gz", "has_sig": false, "md5_digest": "1612314b3dc4534fabb1c5d5d7a84095", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11404268, "upload_time": "2017-03-17T17:11:47", "url": "https://files.pythonhosted.org/packages/1e/e7/b0b1163fbbfa3ce55a6bb240c34fde92ae9da74bdf21e18e71dac77431e9/django-virtual-pos-1.6.1.tar.gz" } ], "1.6.10": [ { "comment_text": "", "digests": { "md5": "b9c96246c4e50aa2492d75b27e4cc5bf", "sha256": "8d7190c0e5719885cbccba4c5d4d38ba1ffc812e9b5986255c8c4c086744c358" }, "downloads": -1, "filename": "django_virtual_pos-1.6.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9c96246c4e50aa2492d75b27e4cc5bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 62375, "upload_time": "2018-10-02T14:55:27", "url": "https://files.pythonhosted.org/packages/e2/8b/06665e344319b648fe25e40718fae57b7c55fd4dd20fb041e9ee72715757/django_virtual_pos-1.6.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5153be3f1c8330b9757d0c304736a05", "sha256": "55baed2612c2e2813b15fbd185d1db1c2909b77eda24960ee0529038ba885c41" }, "downloads": -1, "filename": "django-virtual-pos-1.6.10.tar.gz", "has_sig": false, "md5_digest": "c5153be3f1c8330b9757d0c304736a05", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 55772, "upload_time": "2018-10-02T14:55:29", "url": "https://files.pythonhosted.org/packages/83/e6/04fa1dd6c1680fde0f6c0b39e88cd65fd76d0e7df53bcaa606a92b44e2a8/django-virtual-pos-1.6.10.tar.gz" } ], "1.6.2": [ { "comment_text": "", "digests": { "md5": "4772f0eeceddd5e09ae274eedc5d88e2", "sha256": "147522bf10085d9b62f11b0a7c787362646900c2b193776a2036a6c4f2496997" }, "downloads": -1, "filename": "django-virtual-pos-1.6.2.tar.gz", "has_sig": false, "md5_digest": "4772f0eeceddd5e09ae274eedc5d88e2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 22812042, "upload_time": "2017-03-20T16:29:25", "url": "https://files.pythonhosted.org/packages/36/81/7792fabc84ad9029bd79da0b348a908feef905b463eaf444bbfacb76d5fc/django-virtual-pos-1.6.2.tar.gz" } ], "1.6.3": [ { "comment_text": "", "digests": { "md5": "46bedb763173bf71cc17db20d631a598", "sha256": "90f57919c13ccc7c797e6d01f82ebd02bb8ebb1982bc8a7906d15267dd37f6cb" }, "downloads": -1, "filename": "django-virtual-pos-1.6.3.tar.gz", "has_sig": false, "md5_digest": "46bedb763173bf71cc17db20d631a598", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 45631264, "upload_time": "2017-03-20T16:44:50", "url": "https://files.pythonhosted.org/packages/75/2a/e5803e81459b7d621f99639813d49cbe62fd9631e6b2e197824673d30fa9/django-virtual-pos-1.6.3.tar.gz" } ], "1.6.4": [ { "comment_text": "", "digests": { "md5": "95cf7e1998c14449c14ccc01913b6231", "sha256": "d2c4c828e092a8cf125703003417f758aa2203cc2b9d3085df541e969572f3a7" }, "downloads": -1, "filename": "django-virtual-pos-1.6.4.tar.gz", "has_sig": false, "md5_digest": "95cf7e1998c14449c14ccc01913b6231", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 41100, "upload_time": "2017-03-29T12:43:52", "url": "https://files.pythonhosted.org/packages/7c/94/55a92c15f9bf44c4bc40c072f547be99cc9c1f87aa64dd1f12ab86d653c4/django-virtual-pos-1.6.4.tar.gz" } ], "1.6.6": [ { "comment_text": "", "digests": { "md5": "2586b6fa0bf2365813ba4548430766d5", "sha256": "7480659d6b08e34c90b865999099742dc606a2c26d14bb49b9094b0a1a98aa29" }, "downloads": -1, "filename": "django-virtual-pos-1.6.6.tar.gz", "has_sig": false, "md5_digest": "2586b6fa0bf2365813ba4548430766d5", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 89508, "upload_time": "2017-05-11T14:32:37", "url": "https://files.pythonhosted.org/packages/73/33/4c17b84aaec4406ea363faad67af566ea2c3dcfc337675c8967630528495/django-virtual-pos-1.6.6.tar.gz" } ], "1.6.8.1": [ { "comment_text": "", "digests": { "md5": "22c497718e72c05281925f810f6829c2", "sha256": "e120564afae0dc70593c4f3a3d5c7b53ede11693c44735fc9bff768b5cfa8ccc" }, "downloads": -1, "filename": "django-virtual-pos-1.6.8.1.tar.gz", "has_sig": false, "md5_digest": "22c497718e72c05281925f810f6829c2", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58688, "upload_time": "2018-02-12T12:24:37", "url": "https://files.pythonhosted.org/packages/8d/16/80fd526f6a422a120e3ccf40700c1bea1ec62002f440701886a4274e5857/django-virtual-pos-1.6.8.1.tar.gz" } ], "1.6.8.2": [ { "comment_text": "", "digests": { "md5": "46167645d1b5fcbed282e4e1b2c7312e", "sha256": "ffc62f67260f9e333b0b0cd2c17594b0332ccb26eddcd28fb8309fe6c683314b" }, "downloads": -1, "filename": "django-virtual-pos-1.6.8.2.tar.gz", "has_sig": false, "md5_digest": "46167645d1b5fcbed282e4e1b2c7312e", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58199, "upload_time": "2018-02-12T12:32:44", "url": "https://files.pythonhosted.org/packages/4b/de/6e066f9f99fc15d4fb6037d5cfc7a32dd57090b781a12e06f21fb128e113/django-virtual-pos-1.6.8.2.tar.gz" } ], "1.6.8.3": [ { "comment_text": "", "digests": { "md5": "73b28e7578f7d00fec463abc6872cffc", "sha256": "7235df3e41eafdc6821901e10c73cc8e1c6bf43701b85c0e5de93906641e4b7d" }, "downloads": -1, "filename": "django-virtual-pos-1.6.8.3.tar.gz", "has_sig": false, "md5_digest": "73b28e7578f7d00fec463abc6872cffc", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 58221, "upload_time": "2018-02-19T14:52:15", "url": "https://files.pythonhosted.org/packages/82/42/02170ad1a73c2aa236f02bdebfc8577920bfefd779297e564efd2c6f07ee/django-virtual-pos-1.6.8.3.tar.gz" } ], "1.6.9.2": [ { "comment_text": "", "digests": { "md5": "20b57ea6f9f64b1aabcb9a61376f47a9", "sha256": "a7fb3d20f089fe09bdcf41faf08d2219d65851ca005d56bfcc616bf054c5cf96" }, "downloads": -1, "filename": "django_virtual_pos-1.6.9.2-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "20b57ea6f9f64b1aabcb9a61376f47a9", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 61844, "upload_time": "2018-04-09T10:26:40", "url": "https://files.pythonhosted.org/packages/76/ef/eba39591cdd5f3bb4cbbb46c5a078d6116bf87f8ae4ec77c56e95186962e/django_virtual_pos-1.6.9.2-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "4e05fc06d98209861874824d41bc0ec9", "sha256": "4ba657de86bc29e57d487d24c3bf55bfe99bbd4d8a3ef4125534cc1a2a3c39da" }, "downloads": -1, "filename": "django-virtual-pos-1.6.9.2.tar.gz", "has_sig": false, "md5_digest": "4e05fc06d98209861874824d41bc0ec9", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 55259, "upload_time": "2018-04-09T10:26:42", "url": "https://files.pythonhosted.org/packages/c9/0f/aa1666ebb8374f0bcd2a2f7f4c2297eb7f28bf6efdd436672b30761d975c/django-virtual-pos-1.6.9.2.tar.gz" } ], "1.6.9.3": [ { "comment_text": "", "digests": { "md5": "8f7f32e485fc3d38ff5712de23ff0fe8", "sha256": "164c2fb38a6acaf16d04fdd0e552895ed8e19cdd1f552df89ed3ce3968effbd2" }, "downloads": -1, "filename": "django_virtual_pos-1.6.9.3-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "8f7f32e485fc3d38ff5712de23ff0fe8", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 61863, "upload_time": "2018-04-09T14:58:39", "url": "https://files.pythonhosted.org/packages/61/4f/abbe745b114e0c9435f82cc74c4f15494bb07719b7cbdce3f4a261feb520/django_virtual_pos-1.6.9.3-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "ce3628748cc2ce6bd84b4806ea55bd79", "sha256": "b5894f0643065407d2a2f5ab5646994449f5129f7f94439dba70e3ca0339f9b7" }, "downloads": -1, "filename": "django-virtual-pos-1.6.9.3.tar.gz", "has_sig": false, "md5_digest": "ce3628748cc2ce6bd84b4806ea55bd79", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 55270, "upload_time": "2018-04-09T14:58:40", "url": "https://files.pythonhosted.org/packages/2f/39/2e460fd0b998097d41e0f13577c83a6c3f38cd174f9439640706b992322c/django-virtual-pos-1.6.9.3.tar.gz" } ], "1.6.9.4": [ { "comment_text": "", "digests": { "md5": "6d5c3d7dc132ef6ed3e2d17d41f6f994", "sha256": "28f172e5bc99924aaafb9aae7c34170c37da797c0834b1020287a2b9688ff021" }, "downloads": -1, "filename": "django_virtual_pos-1.6.9.4-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "6d5c3d7dc132ef6ed3e2d17d41f6f994", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 61848, "upload_time": "2018-04-10T13:28:31", "url": "https://files.pythonhosted.org/packages/dd/a9/929c859bd72d15dd96b2eab13ceda70c0f48ac712b3ad87887544bd4defb/django_virtual_pos-1.6.9.4-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "76862bf75b812592ef8d6c50b39d8418", "sha256": "a0ae916056bd7a17506d5893e2e0dac111c196522a63ad727bb554a5457ddb79" }, "downloads": -1, "filename": "django-virtual-pos-1.6.9.4.tar.gz", "has_sig": false, "md5_digest": "76862bf75b812592ef8d6c50b39d8418", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 55255, "upload_time": "2018-04-10T13:28:32", "url": "https://files.pythonhosted.org/packages/bb/c7/b860e1d797422aae8fd2305264f289efc5a47bc51a98d15fb7575ee3c248/django-virtual-pos-1.6.9.4.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "b9c96246c4e50aa2492d75b27e4cc5bf", "sha256": "8d7190c0e5719885cbccba4c5d4d38ba1ffc812e9b5986255c8c4c086744c358" }, "downloads": -1, "filename": "django_virtual_pos-1.6.10-py2.py3-none-any.whl", "has_sig": false, "md5_digest": "b9c96246c4e50aa2492d75b27e4cc5bf", "packagetype": "bdist_wheel", "python_version": "py2.py3", "requires_python": ">=2.7.0", "size": 62375, "upload_time": "2018-10-02T14:55:27", "url": "https://files.pythonhosted.org/packages/e2/8b/06665e344319b648fe25e40718fae57b7c55fd4dd20fb041e9ee72715757/django_virtual_pos-1.6.10-py2.py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "c5153be3f1c8330b9757d0c304736a05", "sha256": "55baed2612c2e2813b15fbd185d1db1c2909b77eda24960ee0529038ba885c41" }, "downloads": -1, "filename": "django-virtual-pos-1.6.10.tar.gz", "has_sig": false, "md5_digest": "c5153be3f1c8330b9757d0c304736a05", "packagetype": "sdist", "python_version": "source", "requires_python": ">=2.7.0", "size": 55772, "upload_time": "2018-10-02T14:55:29", "url": "https://files.pythonhosted.org/packages/83/e6/04fa1dd6c1680fde0f6c0b39e88cd65fd76d0e7df53bcaa606a92b44e2a8/django-virtual-pos-1.6.10.tar.gz" } ] }