{ "info": { "author": "Jurismarches", "author_email": "contact@jurismarches.com", "bugtrack_url": null, "classifiers": [ "Development Status :: 4 - Beta", "Framework :: Django", "Intended Audience :: Developers", "License :: OSI Approved :: GNU Lesser General Public License v3 or later (LGPLv3+)", "Programming Language :: Python", "Programming Language :: Python :: 3.4", "Programming Language :: Python :: 3.5", "Programming Language :: Python :: 3.6" ], "description": "DJFlocash\n###########\n\n|pypi-version| |travis|\n\nPython helpers to use https://www.flocash.com/ Payement API in Django.\n\nThis product is not complete, but contributions are welcome.\n\nFlocash is a gateway payement API\nenabling payement in a lot of african countries\nthrough credit cards, mobile phone payements and more.\n\nThis library gives you some re-usable components to use in your Django application.\n\nAt the moment, it implements the redirect style API\n(not the one based on webservices).\n\n.. important:: This program IS NOT an official library of flocash.\n flocash is a registered trademark of Flocash ltd.\n\n\nSetting up\n==========\n\nIn your project, you can either create your own models that inherit the base one,\nor use the proposed one directly.\n\nIn the first case, you may want to connect your model to handlers defined in `signals.py`.\n\nFor both cases, add djflocash to your `INSTALLED_APPS` setting.\n\nYou have to define some mandatory settings:\n\n* FLOCASH_BASE_URL the base url of flocash service\n* FLOCASH_PAYMENT_URI the uri handling ecommerce payment (will be urljoined to base url)\n* FLOCASH_MERCHANT, FLOCASH_MERCHANT_NAME your merchant account and display name\n* FLOCASH_NOTIFICATION_TOKEN is a token that will be added to your notification url\n in order to make it unpredictable, so it is a shared secret between you and flocash\n (you will set flocash notification url in their backend).\n\n Note that djflocash also use notification validation using flocash dedicated service.\n\nand some optionnal one:\n\n* FLOCASH_PAYMENT_MODEL is the payment model in case you don't use provided model.\n\nUsage\n=====\n\n\nThe idea is that your visitor will submit a payment through his browser.\nFor this you need to build the form, you can do this using `forms.OrderForm`,\nif you submit it through javascript you may use the `to_dict` method.\n\nYou can expose the `views.NotificationReceive` view (or your own based on it)\nto get notifications (successful or canceled) payment.\nIt creates a `models.Notification` instance\nand associate it to the `models.Payment` having same `order_id` if it exists.\n\nYou have to provide the notification URL to Flocash in the Flocash backoffice.\nBy default it is `https://your.server.com/notification/xxxxxxxx/`,\nwhere `xxxxxxxx` is `FLOCASH_NOTIFICATION_TOKEN` setting.\n\nA possible workflow is thus the following:\n\n- you create a `models.Payment` corresponding to your visitor basket\n- you use `forms.OrderForm.from_payment` to generate corresponding form\n and render it in visitor browser (using hidden fields)\n- visitor submit the form to flocash and is redirected to flocash payment portal\n where he completes the transaction\n- flocash submit the payment notification through `views.NotificationReceive`,\n and some custom handler you attached on eg. `post_save` signal\n make the order effective in your system\n- visitors gets back to your site where you tell him his purchase is effective\n\nWhen the response for payment is PENDING, djflocash tracks the payment status\nand keep it pending, until a payment or non payment notifications arrives\n(see `Payment.is_pending` and `PaymentManager.pending`.\nIt's up to you to use this information to notify your customers,\nthat a pending payment is already in progress.\n\n.. |pypi-version| image:: https://img.shields.io/pypi/v/djflocash.svg\n :target: https://pypi.python.org/pypi/djflocash\n :alt: Latest PyPI version\n\n.. |travis| image:: http://img.shields.io/travis/jurismarches/djflocash/master.svg?style=flat\n :target: https://travis-ci.org/jurismarches/djflocash\n :alt: Travis status\n\n.. |license| image:: https://img.shields.io/github/license/jurismarches/djflocash.svg \n :target: https://github.com/jurismarches/djflocash/blob/master/LICENSE\n :alt: LGPL license\n\n\nChangelog for djflocash\n########################\n\nThe format is based on `Keep a Changelog`_\nand this project tries to adhere to `Semantic Versioning`_.\n\n\n.. _`Keep a Changelog`: http://keepachangelog.com/en/1.0.0/\n.. _`Semantic Versioning`: http://semver.org/spec/v2.0.0.html\n\n0.1 - 2018-10-01\n================\n\nFirst release.\n\nAdded\n-----\n\n- payement model\n- order form with generation from payement\n- notification model\n- notification handling with verification\n- pending payment handling\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/jurismarches/djflocash", "keywords": "", "license": "", "maintainer": "", "maintainer_email": "", "name": "djflocash", "package_url": "https://pypi.org/project/djflocash/", "platform": "", "project_url": "https://pypi.org/project/djflocash/", "project_urls": { "Homepage": "https://github.com/jurismarches/djflocash" }, "release_url": "https://pypi.org/project/djflocash/0.1.2/", "requires_dist": [ "pycountry (>=18.5.26)", "django (>=1.10)", "requests (>=2.18.4)" ], "requires_python": "", "summary": "Using flocash payment gateway interface with Django", "version": "0.1.2" }, "last_serial": 4406013, "releases": { "0.1.1": [ { "comment_text": "", "digests": { "md5": "352a374850171854bf70dbe8130a5717", "sha256": "642674af78177b666320b5c14ba8452d2106256a257891629902fe86d2c6eaf9" }, "downloads": -1, "filename": "djflocash-0.1.1-py3-none-any.whl", "has_sig": true, "md5_digest": "352a374850171854bf70dbe8130a5717", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 16885, "upload_time": "2018-10-01T17:03:08", "url": "https://files.pythonhosted.org/packages/86/93/f81f96f084922fad50c1738468a522724b99853619d27e31388d26b28c3a/djflocash-0.1.1-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "7bd2f2589b3755f1f2a6ffeae0630cbb", "sha256": "3f719a1041f0e182172449f52730d8d63c713848e62f2e7517e3cdb759084e9f" }, "downloads": -1, "filename": "djflocash-0.1.1.tar.gz", "has_sig": true, "md5_digest": "7bd2f2589b3755f1f2a6ffeae0630cbb", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18520, "upload_time": "2018-10-01T17:03:15", "url": "https://files.pythonhosted.org/packages/7a/59/2631f376a79e7b9a23fa76e963053c16de1776e2037c4fead377980015a5/djflocash-0.1.1.tar.gz" } ], "0.1.2": [ { "comment_text": "", "digests": { "md5": "f056cc4d66788976c718b9680b835c46", "sha256": "41849a0e09bed513b7e5bef133be443f2b1616f5f97aee61b449b51d9fc7bbc5" }, "downloads": -1, "filename": "djflocash-0.1.2-py3-none-any.whl", "has_sig": true, "md5_digest": "f056cc4d66788976c718b9680b835c46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17434, "upload_time": "2018-10-23T11:03:30", "url": "https://files.pythonhosted.org/packages/43/f9/9adec4f6e9341ee1c791db530d3da1704b4a6625df6e816c757565252566/djflocash-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3d46456b4fc1794149263b367ec606c", "sha256": "669b277b489277bfcb84ef40ef7484173c9abc5a75498a4bf3dbbc3a2e15645e" }, "downloads": -1, "filename": "djflocash-0.1.2.tar.gz", "has_sig": true, "md5_digest": "a3d46456b4fc1794149263b367ec606c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18633, "upload_time": "2018-10-23T11:03:37", "url": "https://files.pythonhosted.org/packages/a0/8e/84bef16b1d0cea229c025be6df09d588f39038ba9a53088fff8c0807a34f/djflocash-0.1.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f056cc4d66788976c718b9680b835c46", "sha256": "41849a0e09bed513b7e5bef133be443f2b1616f5f97aee61b449b51d9fc7bbc5" }, "downloads": -1, "filename": "djflocash-0.1.2-py3-none-any.whl", "has_sig": true, "md5_digest": "f056cc4d66788976c718b9680b835c46", "packagetype": "bdist_wheel", "python_version": "py3", "requires_python": null, "size": 17434, "upload_time": "2018-10-23T11:03:30", "url": "https://files.pythonhosted.org/packages/43/f9/9adec4f6e9341ee1c791db530d3da1704b4a6625df6e816c757565252566/djflocash-0.1.2-py3-none-any.whl" }, { "comment_text": "", "digests": { "md5": "a3d46456b4fc1794149263b367ec606c", "sha256": "669b277b489277bfcb84ef40ef7484173c9abc5a75498a4bf3dbbc3a2e15645e" }, "downloads": -1, "filename": "djflocash-0.1.2.tar.gz", "has_sig": true, "md5_digest": "a3d46456b4fc1794149263b367ec606c", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 18633, "upload_time": "2018-10-23T11:03:37", "url": "https://files.pythonhosted.org/packages/a0/8e/84bef16b1d0cea229c025be6df09d588f39038ba9a53088fff8c0807a34f/djflocash-0.1.2.tar.gz" } ] }