{ "info": { "author": "UNKNOWN", "author_email": "UNKNOWN", "bugtrack_url": null, "classifiers": [], "description": "Django-Moneybookers\n===================\n`Moneyboookers `_ gateway for `Django `_ with two payment forms: common and secure.\n\n\nMoneyboookers gateway allows you to accept payments on your website. It contains two payment paths:\n\n* Form genaration with POST to Moneybookers\n* Secure redirect with prepared SESSION_ID\n\nIn both cases additional security checks are implemented.\n\nFull API documentation: \"Moneybookers Payment Gateway\"\n\n\nHow to install\n--------------\n1. Download the source and place in your apps folder\n\n2. Edit \"settings.py\"\n - add \"moneybookers\" to your \"INSTALLED_APPS\"\n - add following settings (example):\n\n.. code-block:: python\n\n MONEYBOOKERS_MERCHANT_ID = \"123456\"\n MONEYBOOKERS_SECRET_WORD = \"YourSecretWord\"\n MONEYBOOKERS_PAY_TO_EMAIL = \"billing@mycompany.com\"\n MONEYBOOKERS_STATUS_URL = \"https://www.mycompany.com/moneybookers/status_url/\"\n MONEYBOOKERS_CURRENCY_CODE = \"EUR\"\n\nnot required, but recommended:\n\n.. code-block:: python\n\n MONEYBOOKERS_CANCEL_URL = \"https://www.mycompany.com/moneybookers/cancel/\"\n MONEYBOOKERS_RETURN_URL = \"https://www.mycompany.com/moneybookers/ok/\"\n MONEYBOOKERS_STATUS_URL2 = \"mailto: billing@mycompany.com\"\n MONEYBOOKERS_RECEPIENT_DESCRIPTION = \"My Company Limited\"\n \nFor more optional settings please see \"conf.py\"\n \n \n3. Add to \"urls.py\" paths\n\n.. code-block:: python\n\n urlpatterns = patterns('',\n (r'^moneybookers/status_url/', include('moneybookers.urls')),\n (r'^moneybookers/cancel/', 'MoneybookersCancel'),\n (r'^moneybookers/ok/', 'MoneybookersOk'),\n (r'^order/$', 'View_With_Order'),\n )\n \n \n4. Create table in your database\n\n.. code-block:: bash\n\n manage.py syncdb\n\n \n5. Create/render form\n\n* Common way:\n\nCreate an instance of the form in your \"views.py\" and make render in your template\n\n.. code-block:: python\n\n from moneybookers.forms import MoneybookersStandardForm\n\n def View_With_Order(request):\n mb_dict = {\n \"amount\":\"25.00\",\n \"invoice\":\"4567\",\n \"user_id\": request.user.id,\n \"detail1_description\":\"Product ID:\",\n \"detail1_text\":\"4509334\",\n \"merchant_field\": \"new_client\",\n \"merchant_field_value\": \"1\",\n \"user_ipaddress\": request.META.get(\"REMOTE_ADDR\", \"0.0.0.0\")\n }\n f = MoneybookersStandardForm(initial=mb_dict)\n context = {\"form\": f}\n return render_to_response(\"order.html\", context)\n \nIn \"order.html\":\n\n.. code-block:: html\n\n

Pay with Moneybookers now!

\n {{ form.render }}\n \n \nAfter payment Moneybookers sends a signal to your server (status_url). The transaction will be saved in the database, then will be send a signal MoneybookersSignal. You can use it to process your own actions (add amount to users account, etc..). An example to use in \"models.py\":\nfrom moneybookers.signals import moneybookers_signal\nfrom django.db import transaction\nfrom django.core.mail import mail_admins\n\n.. code-block:: python\n\n @transaction.commit_manually\n def MoneybookersSignal(sender, **kwargs):\n if sender.error:\n mail_admins(\"Moneybookers: bad transaction %s\" % sender.transaction_id, sender.error_text)\n return\n sid = transaction.savepoint()\n try:\n user = User.objects.get(id=sender.user_id)\n profile = user.get_profile()\n profile.money = profile.money + sender.amount\n profile.save()\n mail_admins( \"Moneybookers: good transaction %s\" % sender.transaction_id, \"%s added to user %s\" % (sender.amount, sender.user_id) )\n transaction.savepoint_commit(sid)\n except Exception, e:\n transaction.savepoint_rollback(sid)\n mail_admins(\"Moneybookers: database rollback: transaction %s\" % sender.transaction_id, e)\n transaction.commit()\n\n moneybookers_signal.connect(MoneybookersSignal, dispatch_uid=\"yourapp.models.MoneybookersSignal\")\n \n \nSecure way:\n\nAdd to \"urls.py\" another path\n\n.. code-block:: python\n\n urlpatterns = patterns('',\n (r'^moneybookers_redirect/$', 'payment_moneybookers_redirect'),\n )\n \nCreate an form in your template yourself with POST-Url to \"moneybookers_redirect\"\n\n.. code-block:: html\n\n
\n \n \n
\n\nIn your \"views.py\" you must check the invoice number\n\n.. code-block:: python\n\n from django.contrib.auth.decorators import login_required\n from django.views.decorators.http import require_POST\n from django.http import HttpResponseRedirect, HttpResponseServerError\n \n @login_required\n @require_POST\n def payment_moneybookers_redirect(request):\n invoice = request.POST.get(\"invoice\", None)\n mb_dict = {\n \"language\": \"EN\",\n \"country\": ...,\n \"amount\": ...,\n \"prepare_only\": True,\n \"detail1_description\": \"Invoice #\",\n \"detail1_text\": invoice,\n \"invoice\": invoice,\n \"user_id\": request.user.id,\n \"user_ipaddress\": request.META.get(\"REMOTE_ADDR\", \"0.0.0.0\")\n }\n \n # If you want accept only credit cards without user to register on moneybookers:\n mb_dict[\"hide_login\"] = \"1\"\n mb_dict[\"payment_methods\"] = \"ACC\"\n \n f = MoneybookersSecureForm(initial=mb_dict)\n url = f.redirect_url()\n if url:\n return HttpResponseRedirect(url)\n return HttpResponseServerError()\n Patch your \"models.py\" with signal MoneybookersSignal like in \"common way\"\n\n\nBased on \"Moneybookers Payment Gateway Merchant Integration Manual\" v6.10 / 8 Nov. 2010\n\nAlex Aster, www.alrond.com, 2010\nFreeBSD License\n", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://github.com/gotlium/django-moneybookers", "keywords": null, "license": "UNKNOWN", "maintainer": null, "maintainer_email": null, "name": "django-moneybookers", "package_url": "https://pypi.org/project/django-moneybookers/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-moneybookers/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://github.com/gotlium/django-moneybookers" }, "release_url": "https://pypi.org/project/django-moneybookers/0.2/", "requires_dist": null, "requires_python": null, "summary": "UNKNOWN", "version": "0.2" }, "last_serial": 981289, "releases": { "0.2": [ { "comment_text": "", "digests": { "md5": "f719a9116b780238119f1b70aff798d1", "sha256": "7cbd94c1bbd139b8480e6a7d2740a389b7d6f7ab872357b3b3ab2dc95a7cc23f" }, "downloads": -1, "filename": "django-moneybookers-0.2.tar.gz", "has_sig": true, "md5_digest": "f719a9116b780238119f1b70aff798d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15359, "upload_time": "2014-01-25T20:42:29", "url": "https://files.pythonhosted.org/packages/df/40/c24c6a3da7b9feddb042fd2074b6e5477ce084e5a14b6f8dfb91e1c679c6/django-moneybookers-0.2.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "f719a9116b780238119f1b70aff798d1", "sha256": "7cbd94c1bbd139b8480e6a7d2740a389b7d6f7ab872357b3b3ab2dc95a7cc23f" }, "downloads": -1, "filename": "django-moneybookers-0.2.tar.gz", "has_sig": true, "md5_digest": "f719a9116b780238119f1b70aff798d1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 15359, "upload_time": "2014-01-25T20:42:29", "url": "https://files.pythonhosted.org/packages/df/40/c24c6a3da7b9feddb042fd2074b6e5477ce084e5a14b6f8dfb91e1c679c6/django-moneybookers-0.2.tar.gz" } ] }