{
"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"
}
]
}