{ "info": { "author": "Olamilekan Wahab", "author_email": "olamyy53@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "Pyrave\n======\n\nPyrave is a python wrapper for the flutterwave\u2019s\n`rave `__ payment platform\n\nIt currently supports the following features:\n\n- Account charge (NG Banks)\n\n- Account charge (International for US and ZAR).\n\n- Card Charge (Bake in support for 3DSecure/PIN).\n\n- Encryption\n\n- Transaction status check (Normal requery flow and xrequery).\n\n- Retry transaction status check flow.\n\n- Preauth -> Capture -> Refund/void.\n\n- Support for USSD and Mcash (Alternative payment methods).\n\n- List of banks for NG Account charge. (Get banks list).\n\n- Get fees endpoint.\n\n- Integrity Checksum\n (https://flutterwavedevelopers.readme.io/docs/checksum).\n\nGetting Started\n---------------\n\nThese instructions will get you a copy of the project up and running on\nyour local machine for development and testing purposes.\n\nSet Up\n~~~~~~\n\nGo to `rave `__ and sign up. This would\nprovide you with a public and private authorization key which would be\nused throughout the library. Store these authorization keys in your\nenvironment as ``RAVE_PUBLIC_KEY`` for the public key and\n``RAVE_SECRET_KEY``.\n\nInstalling\n~~~~~~~~~~\n\n.. code:: bash\n\n pip install -U pyrave\n\nUpon completion, try to import the library with\n\n.. code:: python\n\n import pyrave\n\nIf the installation was successful, the code above should run without\nany error.\n\nIf an error like ``No module named pyrave`` pops up, then the\ninstallation was not successfull. You can either raise an issue here to\nget it looked at or attempt to reinstall it.\n\nUsage\n-----\n\nPayment\n-------\n\nThe payment class was made simple enough to cover the following rave\nactions:\n\n.. code:: python\n\n from pyrave import Payment\n\n rave_payment = Payment()\n\n data = {...}\n\nPayment with card and account\n'''''''''''''''''''''''''''''\n\n.. code:: python\n\n ## Payment with card and account\n payment_with_card = rave_payment.pay(using=\"card\", **data)\n payment_with_account = rave_payment.pay(using=\"account\", **data)\n\nGetting encrypted data\n''''''''''''''''''''''\n\nTo get the encrypted data, call the Payment class\u2019\n``get_encrypted_data`` method. This would return a tuple of data\n\n.. code:: python\n\n encrypted_data = rave_payment.get_encrypted_data(using=\"account\", **data)\n\nAn alternative approach to doing this is to call the pay method and pass\nthe return_encrypted boolean as True\n\n.. code:: python\n\n encrypted_data = rave_payment.pay(using=\"card\", return_encrypted=True , **data)\n\nIn both cases, if the request was successful, you should be able to get\neach one of the encryption details by indexing ``encrypted_data``\n\nCharge Validation\n'''''''''''''''''\n\nTo validate a charge, call the ``validate_charge`` method and pass the\n``reference`` and ``otp`` as parameter. You can select the method that\napplies most to your transaction.\n\n.. code:: python\n\n validate_charge = rave_payment.validate_charge(\"reference\", \"otp\", method=\"card\")\n\nTransaction Verification\n''''''''''''''''''''''''\n\nTo verify a transaction, call the ``verify_transaction`` method and pass\nthe transaction reference.\n\n.. code:: python\n\n transaction_verification = rave_payment.verify_transaction(\"reference\", \"otp\", method=\"card\")\n\nDisbursements\n'''''''''''''\n\nTo make disbursements, call the ``disburse`` method and pass the\n``bank_code``, ``account_number``, ``currency``, ``amount`` as\nparameters\n\n.. code:: python\n\n disbursements = rave_payment.disburse(\"bank_code\", \"account_number\", \"currency\", \"amount\")\n\nCharge Tokenization\n'''''''''''''''''''\n\n.. code:: python\n\n tokenize = rave_payment.tokenize_charge(**data)\n\nRefund\n''''''\n\n.. code:: python\n\n refud = rave_payment.refund(reference_id=\"reference_id\")\n\nTransaction\n-----------\n\nThe transaction Class provides support for the following rave functions:\n\n.. code:: python\n\n from pyrave import Transaction\n\n rave_transaction = Transaction()\n\n data = {...}\n\nVerify Transaction\n''''''''''''''''''\n\n.. code:: python\n\n verify = rave_transaction.verify_transaction(**data)\n\nVerify Transaction with xrequery\n''''''''''''''''''''''''''''''''\n\n.. code:: python\n\n verify = rave_transaction.verify_transaction_with_xrequery(**data)\n\nGet Recurrent Transactions\n''''''''''''''''''''''''''\n\n.. code:: python\n\n verify = rave_transaction.get_reccurent_transactions()\n\nGet Recurrent Transaction\n'''''''''''''''''''''''''\n\n.. code:: python\n\n verify = rave_transaction.get_reccurent_transaction(transaction_id=\"your transaction_id\")\n\nStop Recurrent Transactions\n'''''''''''''''''''''''''''\n\n.. code:: python\n\n verify = rave_transaction.get_reccurent_transaction(transaction_data_id=\"your transaction_data_id\")\n\nMiscellaneous features\n----------------------\n\nThe Misc class provides support for the following rave functions:\n\n.. code:: python\n\n from pyrave import Misc\n\n misc = Misc()\n\nGet list of banks\n'''''''''''''''''\n\n.. code:: python\n\n banks = misc.get_banks()\n\nGet fees\n''''''''\n\n.. code:: python\n\n banks = misc.get_fee(amount=\"your amount\", currency=\"your currency\", ptype=\"your ptype\", card6=\"card's number\")\n\nGet Exchange Rates\n''''''''''''''''''\n\n.. code:: python\n\n rates = misc.get_exchange_rates(origin_currency=\"your origin currency\", destination_currency=\"your destination currency\", amount=None)\n\nPreauth\n-------\n\n.. code:: python\n\n from pyrave import Preauth\n\n preauth = Preauth()\n\nPreauthorize card\n^^^^^^^^^^^^^^^^^\n\nBefore preauthorizing a card, get the client and alg parameters by\ncalling the ``get_encrypted_data`` method of the Payment class.\n\n.. code:: python\n\n preauth.preauthorise_card(client=\"client id\", algo=\"algo used\")\n\nPreauthorization Capture\n''''''''''''''''''''''''\n\nTo capture preauthorization, call the\n``capture_preauthorised_transaction`` method and pass the\n``transaction_reference`` as parameter\n\n.. code:: python\n\n preauthorization = preauth.capture_preauthorised_transaction(transaction_reference=\"your transaction reference\")\n\nTransaction Refund or Void\n''''''''''''''''''''''''''\n\n.. code:: python\n\n refund_or_void = preauth.refund_or_void_transaction(action=\"refund or void\", reference_id=\"your reference id\")\n\nContributing\n------------\n\nTo contribute, fork the repo, make your changes and create a pull\nrequest.\n\nTodo\n----\n\nMore Tests\n\nAuthors\n-------\n\n- `Olamilekan Wahab `__\n\nLicense\n-------\n\nThis project is licensed under the MIT License - see the\n`LICENSE.md `__ file for details\n", "description_content_type": null, "docs_url": null, "download_url": "https://github.com/Olamyy/pyrave/archive/0.1.tar.gz", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/Olamyy/pyrave", "keywords": "rave", "license": "MIT", "maintainer": "", "maintainer_email": "", "name": "pyrave", "package_url": "https://pypi.org/project/pyrave/", "platform": "", "project_url": "https://pypi.org/project/pyrave/", "project_urls": { "Download": "https://github.com/Olamyy/pyrave/archive/0.1.tar.gz", "Homepage": "https://github.com/Olamyy/pyrave" }, "release_url": "https://pypi.org/project/pyrave/1.0.3a0/", "requires_dist": null, "requires_python": "", "summary": "Python wrapper flutterwave's rave API", "version": "1.0.3a0" }, "last_serial": 3660960, "releases": { "1.0.1a0": [ { "comment_text": "", "digests": { "md5": "ddf6006ece6bcc4913666fb616d3df55", "sha256": "0bb909573f7494eadd2caeada0fdef185c22dde96fdcd5e791f3b7cdb8d06cf2" }, "downloads": -1, "filename": "pyrave-1.0.1a0.tar.gz", "has_sig": false, "md5_digest": "ddf6006ece6bcc4913666fb616d3df55", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8315, "upload_time": "2018-03-01T13:15:14", "url": "https://files.pythonhosted.org/packages/4e/85/bc3bcb6df64c738db37ff392f5cd575d2f95f109faaec9992d9fb15dd5c4/pyrave-1.0.1a0.tar.gz" } ], "1.0.1b0": [ { "comment_text": "", "digests": { "md5": "8b745c6dfe4ef88a555de1dbb22d04ae", "sha256": "cfb7954b3774f4a79cc6fd5d07b33b070993b96e96652cc246cb5b3bc604a20b" }, "downloads": -1, "filename": "pyrave-1.0.1b0.tar.gz", "has_sig": false, "md5_digest": "8b745c6dfe4ef88a555de1dbb22d04ae", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8384, "upload_time": "2018-03-02T10:45:40", "url": "https://files.pythonhosted.org/packages/24/ea/e5e821e772c13c255d4c33137c47d4a94956634016a5821b80eb89e65360/pyrave-1.0.1b0.tar.gz" } ], "1.0.2a0": [ { "comment_text": "", "digests": { "md5": "01154544bb3417e1e8d8f9581a9b0b35", "sha256": "8e75b6a55cb29af37c98b7ef40177738741b4e14a0066828cdbc87e93cc0de71" }, "downloads": -1, "filename": "pyrave-1.0.2a0.tar.gz", "has_sig": false, "md5_digest": "01154544bb3417e1e8d8f9581a9b0b35", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8430, "upload_time": "2018-03-02T14:08:22", "url": "https://files.pythonhosted.org/packages/a5/08/a35fa448e80c9b3b11863585f261b61843a878c76dd7cf7b76c64d7eb309/pyrave-1.0.2a0.tar.gz" } ], "1.0.2b0": [ { "comment_text": "", "digests": { "md5": "d036544a66e08d1c393a2d9e44b14343", "sha256": "8de45e0d9dfd1f94d9f79d46deaa9ebda22bc9286880b8baa5d68a26b0485cab" }, "downloads": -1, "filename": "pyrave-1.0.2b0.tar.gz", "has_sig": false, "md5_digest": "d036544a66e08d1c393a2d9e44b14343", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8659, "upload_time": "2018-03-03T20:27:28", "url": "https://files.pythonhosted.org/packages/bd/c4/dbaf144b92a4cd78de5129cf846355f7320546c5f95acf10e1f964748867/pyrave-1.0.2b0.tar.gz" } ], "1.0.3a0": [ { "comment_text": "", "digests": { "md5": "5307923a5284728222db4e87ddc56bd3", "sha256": "ec232c46b3418713d4f16f5d4ebdbe03d24b83b2e1609641d54c636959f91a53" }, "downloads": -1, "filename": "pyrave-1.0.3a0.tar.gz", "has_sig": false, "md5_digest": "5307923a5284728222db4e87ddc56bd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8742, "upload_time": "2018-03-12T10:39:07", "url": "https://files.pythonhosted.org/packages/03/75/1a20449ca27862d75a036d2b814c5e5bef31872d2fc8c7de7ec29c865eef/pyrave-1.0.3a0.tar.gz" } ], "1.0a0": [ { "comment_text": "", "digests": { "md5": "5035a9a2b458b7ed52d0fa1fc2cc6857", "sha256": "94d96880c74cf1117a64fe03efe936fcb4c5c126f82da34143c0b57cb6d58e74" }, "downloads": -1, "filename": "pyrave-1.0a0.tar.gz", "has_sig": false, "md5_digest": "5035a9a2b458b7ed52d0fa1fc2cc6857", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 7751, "upload_time": "2018-02-23T07:37:28", "url": "https://files.pythonhosted.org/packages/ad/e6/991f1bd5f34bb992f2a32f7a387bbfcdb54bde0c2cf15957d718f1db368a/pyrave-1.0a0.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "5307923a5284728222db4e87ddc56bd3", "sha256": "ec232c46b3418713d4f16f5d4ebdbe03d24b83b2e1609641d54c636959f91a53" }, "downloads": -1, "filename": "pyrave-1.0.3a0.tar.gz", "has_sig": false, "md5_digest": "5307923a5284728222db4e87ddc56bd3", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 8742, "upload_time": "2018-03-12T10:39:07", "url": "https://files.pythonhosted.org/packages/03/75/1a20449ca27862d75a036d2b814c5e5bef31872d2fc8c7de7ec29c865eef/pyrave-1.0.3a0.tar.gz" } ] }