{ "info": { "author": "Mikhail Korobov", "author_email": "kmike84@gmail.com", "bugtrack_url": null, "classifiers": [], "description": "================\ndjango-robokassa\n================\n\ndjango-robokassa - \u044d\u0442\u043e \u043f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b ROBOKASSA \u0432\n\u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043d\u0430 Django.\n\n\u0414\u043e \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u044f \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0437\u043d\u0430\u043a\u043e\u043c\u0438\u0442\u044c\u0441\u044f \u0441 \u043e\u0444\u0438\u0446\u0438\u0430\u043b\u044c\u043d\u043e\u0439 \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0435\u0439\nROBOKASSA (http://docs.robokassa.ru/). \u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0440\u0435\u0430\u043b\u0438\u0437\u0443\u0435\u0442\n\u043f\u0440\u043e\u0442\u043e\u043a\u043e\u043b \u0432\u0437\u0430\u0438\u043c\u043e\u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0439 \u0432 \u044d\u0442\u043e\u043c \u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0435.\n\n\u0423\u0441\u0442\u0430\u043d\u043e\u0432\u043a\u0430\n=========\n\n::\n\n $ pip install django-robokassa\n\n\u041f\u043e\u0442\u043e\u043c \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c 'robokassa' \u0432 INSTALLED_APPS \u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u044c ::\n\n $ python manage.py syncdb\n\n\u0438\u043b\u0438, \u0435\u0441\u043b\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f South, ::\n\n $ python manage.py migrate\n\n\u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f django >= 1.3.1.\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0439\u0442\u0435 django-robokassa \u0432\u0435\u0440\u0441\u0438\u0438 0.9.3, \u0435\u0441\u043b\u0438 \u043f\u0440\u043e\u0435\u043a\u0442 \u043d\u0430 django 1.2.x \u0438\u043b\u0438 django 1.1.x.\n\n\u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430\n=========\n\n\u0412 settings.py \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u043b\u0435\u0434\u0443\u044e\u0449\u0438\u0435 \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438:\n\n* ROBOKASSA_LOGIN - \u043b\u043e\u0433\u0438\u043d\n* ROBOKASSA_PASSWORD1 - \u043f\u0430\u0440\u043e\u043b\u044c \u21161\n\n\u041d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b:\n\n* ROBOKASSA_PASSWORD2 - \u043f\u0430\u0440\u043e\u043b\u044c \u21162. \u0415\u0433\u043e \u043c\u043e\u0436\u043d\u043e \u043d\u0435 \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c, \u0435\u0441\u043b\u0438\n django-robokassa \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0442\u043e\u043b\u044c\u043a\u043e \u0434\u043b\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0444\u043e\u0440\u043c\u044b \u043f\u043b\u0430\u0442\u0435\u0436\u0430.\n \u0415\u0441\u043b\u0438 django-robokassa \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0434\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439, \u0442\u043e \u044d\u0442\u043e\u0442\n \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440 \u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b\u0439.\n\n* ROBOKASSA_USE_POST - \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u043b\u0438 \u043c\u0435\u0442\u043e\u0434 POST \u043f\u0440\u0438 \u043f\u0440\u0438\u0435\u043c\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043e\u0442\n ROBOKASSA. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - True. \u0421\u0447\u0438\u0442\u0430\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u0434\u043b\u044f Result URL, Success URL \u0438\n Fail URL \u0432\u044b\u0431\u0440\u0430\u043d \u043e\u0434\u0438\u043d \u0438 \u0442\u043e\u0442 \u0436\u0435 \u043c\u0435\u0442\u043e\u0434.\n\n* ROBOKASSA_STRICT_CHECK - \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u043b\u0438 \u0441\u0442\u0440\u043e\u0433\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443 (\u0442\u0440\u0435\u0431\u043e\u0432\u0430\u0442\u044c\n \u043f\u0440\u0435\u0434\u0432\u0430\u0440\u0438\u0442\u0435\u043b\u044c\u043d\u043e\u0433\u043e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043d\u0430 ResultURL). \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e - True.\n\n* ROBOKASSA_TEST_MODE - \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u043b\u0438 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0440\u0435\u0436\u0438\u043c. \u041f\u043e \u0443\u043c\u043e\u043b\u0447\u0430\u043d\u0438\u044e False\n (\u0442.\u0435. \u0432\u043a\u043b\u044e\u0447\u0435\u043d \u0431\u043e\u0435\u0432\u043e\u0439 \u0440\u0435\u0436\u0438\u043c).\n\n* ROBOKASSA_EXTRA_PARAMS - \u0441\u043f\u0438\u0441\u043e\u043a (list) \u043d\u0430\u0437\u0432\u0430\u043d\u0438\u0439 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432,\n \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u0431\u0443\u0434\u0443\u0442 \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c\u0441\u044f \u0432\u043c\u0435\u0441\u0442\u0435 \u0441 \u0437\u0430\u043f\u0440\u043e\u0441\u0430\u043c\u0438. \"Shp\" \u043a \u043d\u0438\u043c \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043d\u0435\n \u043d\u0443\u0436\u043d\u043e.\n\n* ROBOKASSA_TEST_FORM_TARGET - url \u0440\u043e\u0431\u043e\u043a\u0430\u0441\u0441\u044b \u0434\u043b\u044f \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u0433\u043e \u0440\u0435\u0436\u0438\u043c\u0430.\n \u041d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 \u043f\u0440\u0435\u0434\u043d\u0430\u0437\u043d\u0430\u0447\u0435\u043d\u0430 \u0434\u043b\u044f \u0441\u043b\u0443\u0447\u0430\u044f, \u043a\u043e\u0433\u0434\u0430 \u0432 \u0440\u0430\u0441\u043f\u043e\u0440\u044f\u0436\u0435\u043d\u0438\u0438 \u043d\u0435 \u0438\u043c\u0435\u0435\u0442\u0441\u044f\n \u0434\u043e\u0441\u0442\u0443\u043f\u043d\u043e\u0433\u043e \u0432 \u0438\u043d\u0442\u0435\u0440\u043d\u0435\u0442\u0435 \u0434\u043e\u043c\u0435\u043d\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440 \u0440\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u043d\u0430 localhost) \n \u0438 \u0432\u043c\u0435\u0441\u0442\u043e \u0441\u0435\u0440\u0432\u0435\u0440\u0430 \u0440\u043e\u0431\u043e\u043a\u0430\u0441\u0441\u044b \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u043e\n \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0432\u043e\u0439.\n\n\n\u0418\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0435\n=============\n\n\u0424\u043e\u0440\u043c\u0430 \u0434\u043b\u044f \u043f\u0440\u0438\u0435\u043c\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\n-------------------------\n\n\u0414\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b \u0443\u043f\u0440\u043e\u0441\u0442\u0438\u0442\u044c \u043a\u043e\u043d\u0441\u0442\u0440\u0443\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435 html-\u0444\u043e\u0440\u043c \u0434\u043b\u044f \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u0435\u0439 \u0432\nRobokassa, \u0432 django-robokassa \u0435\u0441\u0442\u044c \u0444\u043e\u0440\u043c\u0430 RobokassaForm. \u041e\u043d\u0430 \u043d\u0443\u0436\u043d\u0430\n\u0434\u043b\u044f \u0443\u043f\u0440\u043e\u0449\u0435\u043d\u0438\u044f \u0432\u044b\u0432\u043e\u0434\u0430 \u0438\u043d\u0444\u043e\u0440\u043c\u0430\u0446\u0438\u0438 \u0432 \u0448\u0430\u0431\u043b\u043e\u043d\u0430\u0445, \u0432\u044b\u0447\u0438\u0441\u043b\u0435\u043d\u0438\u044f \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u044b \u0438\n\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u044f \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432 GET-\u0437\u0430\u043f\u0440\u043e\u0441\u043e\u0432.\n\n\u041f\u0440\u0438\u043c\u0435\u0440::\n\n # views.py\n\n from django.shortcuts import get_object_or_404, render\n from django.contrib.auth.decorators import login_required\n\n from robokassa.forms import RobokassaForm\n\n @login_required\n def pay_with_robokassa(request, order_id):\n order = get_object_or_404(Order, pk=order_id)\n\n form = RobokassaForm(initial={\n 'OutSum': order.total,\n 'InvId': order.id,\n 'Desc': order.name,\n 'Email': request.user.email,\n # 'IncCurrLabel': '',\n # 'Culture': 'ru'\n })\n\n return render(request, 'pay_with_robokassa.html', {'form': form})\n\n\u0412 initial \u0432\u0441\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b \u043d\u0435\u043e\u0431\u044f\u0437\u0430\u0442\u0435\u043b\u044c\u043d\u044b. \u0414\u0435\u0442\u0430\u043b\u044c\u043d\u0443\u044e \u0441\u043f\u0440\u0430\u0432\u043a\u0443 \u043f\u043e \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\n\u043b\u0443\u0447\u0448\u0435 \u043f\u043e\u0441\u043c\u043e\u0442\u0440\u0435\u0442\u044c \u0432 `\u0434\u043e\u043a\u0443\u043c\u0435\u043d\u0442\u0430\u0446\u0438\u0438 `_\n\u043a Robokassa. \u041c\u043e\u0436\u043d\u043e \u043f\u0435\u0440\u0435\u0434\u0430\u0432\u0430\u0442\u044c \u0432 initial \u0437\u043d\u0430\u0447\u0435\u043d\u0438\u044f \"\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u0445 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u043e\u0432\",\n\u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0445 \u0432 ROBOKASSA_EXTRA_PARAMS ('shp' \u043a \u043d\u0438\u043c \u043f\u0440\u0438\u043f\u0438\u0441\u044b\u0432\u0430\u0442\u044c \u043e\u043f\u044f\u0442\u044c \u043d\u0435 \u043d\u0443\u0436\u043d\u043e).\n\n\u0421\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u0448\u0430\u0431\u043b\u043e\u043d::\n\n {% extends 'base.html' %}\n\n {% block content %}\n
\n

{{ form.as_p }}

\n

\n
\n {% endblock %}\n\n\u0424\u043e\u0440\u043c\u0430 \u0432\u044b\u0432\u0435\u0434\u0435\u0442\u0441\u044f \u0432 \u0432\u0438\u0434\u0435 \u043d\u0430\u0431\u043e\u0440\u0430 \u0441\u043a\u0440\u044b\u0442\u044b\u0445 input-\u0442\u0435\u0433\u043e\u0432.\n\n\u0423 \u0444\u043e\u0440\u043c\u044b \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442 target, \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0438\u0439 URL, \u043f\u043e \u043a\u043e\u0442\u043e\u0440\u043e\u043c\u0443 \u0444\u043e\u0440\u043c\u0443 \u0441\u043b\u0435\u0434\u0443\u0435\u0442\n\u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0442\u044c. \u0412 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 \u044d\u0442\u043e \u0431\u0443\u0434\u0435\u0442 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 URL, \u0432 \u0431\u043e\u0435\u0432\u043e\u043c - \u0431\u043e\u0435\u0432\u043e\u0439.\n\n\u041e\u0431\u0440\u0430\u0442\u0438\u0442\u0435 \u0432\u043d\u0438\u043c\u0430\u043d\u0438\u0435, {% csrf_token %} \u0432 \u0444\u043e\u0440\u043c\u0435 \u043d\u0435 \u043d\u0443\u0436\u0435\u043d (\u0438 \u0431\u043e\u043b\u0435\u0435 \u0442\u043e\u0433\u043e, \u0434\u043e\u0431\u0430\u0432\u043b\u044f\u0442\u044c\n\u0435\u0433\u043e \u043a \u0444\u043e\u0440\u043c\u0435 \u043d\u0435\u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e), \u0442.\u043a. \u0444\u043e\u0440\u043c\u0430 \u0432\u0435\u0434\u0435\u0442 \u043d\u0430 \u0432\u043d\u0435\u0448\u043d\u0438\u0439 \u0441\u0430\u0439\u0442 - \u0441\u0430\u0439\u0442 \u0440\u043e\u0431\u043e\u043a\u0430\u0441\u0441\u044b.\n\n\u0412\u043c\u0435\u0441\u0442\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0438 \u0444\u043e\u0440\u043c\u044b \u043c\u043e\u0436\u043d\u043e \u0441\u0444\u043e\u0440\u043c\u0438\u0440\u043e\u0432\u0430\u0442\u044c GET-\u0437\u0430\u043f\u0440\u043e\u0441. \u0423 \u0444\u043e\u0440\u043c\u044b \u0435\u0441\u0442\u044c\n\u043c\u0435\u0442\u043e\u0434 get_redirect_url, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u0435\u0442 \u043d\u0443\u0436\u043d\u044b\u0439 \u0430\u0434\u0440\u0435\u0441 \u0441\u043e \u0432\u0441\u0435\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.\n\u0420\u0435\u0434\u0438\u0440\u0435\u043a\u0442 \u043d\u0430 \u044d\u0442\u043e\u0442 \u0430\u0434\u0440\u0435\u0441 \u0440\u0430\u0432\u043d\u043e\u0441\u0438\u043b\u0435\u043d \u043e\u0442\u043f\u0440\u0430\u0432\u043a\u0435 \u0444\u043e\u0440\u043c\u044b \u043c\u0435\u0442\u043e\u0434\u043e\u043c GET.\n\ndjango-robokassa \u043d\u0435 \u0432\u043a\u043b\u044e\u0447\u0430\u0435\u0442 \u0432 \u0441\u0435\u0431\u044f \u043c\u043e\u0434\u0435\u043b\u0438 \"\u041f\u043e\u043a\u0443\u043f\u043a\u0430\" (``Order`` \u0432 \u043f\u0440\u0438\u043c\u0435\u0440\u0435),\n\u0442.\u043a. \u044d\u0442\u0430 \u043c\u043e\u0434\u0435\u043b\u044c \u0431\u0443\u0434\u0435\u0442 \u043e\u0442\u043b\u0438\u0447\u0430\u0442\u044c\u0441\u044f \u043e\u0442 \u0441\u0430\u0439\u0442\u0430 \u043a \u0441\u0430\u0439\u0442\u0443. \u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043c\u0435\u043d\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432\n\u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.\n\n\n\u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u043e\u0432 \u043f\u043b\u0430\u0442\u0435\u0436\u0435\u0439\n------------------------------\n\u0412 Robokassa \u0435\u0441\u0442\u044c \u043d\u0435\u0441\u043a\u043e\u043b\u044c\u043a\u043e \u043c\u0435\u0442\u043e\u0434\u043e\u0432 \u043e\u043f\u0440\u0435\u0434\u0435\u043b\u0435\u043d\u0438\u044f \u0440\u0435\u0437\u0443\u043b\u044c\u0442\u0430\u0442\u0430 \u043f\u043b\u0430\u0442\u0435\u0436\u0430:\n\n1. \u041f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u044b Success \u0438 Fail \u0433\u0430\u0440\u0430\u043d\u0442\u0438\u0440\u0443\u0435\u0442\u0441\u044f, \u0447\u0442\u043e \u043f\u043b\u0430\u0442\u0435\u0436\n \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0435\u043d\u043d\u043e \u043f\u0440\u043e\u0448\u0435\u043b \u0438 \u043d\u0435 \u043f\u0440\u043e\u0448\u0435\u043b\n\n2. \u041f\u0440\u0438 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u0438\u043b\u0438 \u043d\u0435\u0443\u0434\u0430\u0447\u043d\u043e\u043c \u043f\u043b\u0430\u0442\u0435\u0436\u0435 Robokassa \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 POST \u0438\u043b\u0438 GET \u0437\u0430\u043f\u0440\u043e\u0441\n \u043d\u0430 Result URL.\n\n3. \u041c\u043e\u0436\u043d\u043e \u0437\u0430\u043f\u0440\u0430\u0448\u0438\u0432\u0430\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u043f\u043b\u0430\u0442\u0435\u0436\u0430 \u0447\u0435\u0440\u0435\u0437 XML-\u0441\u0435\u0440\u0432\u0438\u0441.\n\n\u0412 django-robokassa \u043d\u0430 \u0434\u0430\u043d\u043d\u044b\u0439 \u043c\u043e\u043c\u0435\u043d\u0442 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u044e\u0442\u0441\u044f \u043c\u0435\u0442\u043e\u0434\u044b 1 \u0438 2 \u0438 \u0438\u0445 \u0441\u043e\u0432\u043c\u0435\u0449\u0435\u043d\u0438\u0435\n(\u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430, \u0447\u0442\u043e \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043d\u0430 Success URL \u0443\u0436\u0435 \u0431\u044b\u043b\u043e \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u0435\n\u043d\u0430 Result URL \u043f\u0440\u0438 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u043d\u0438\u0438 \u043e\u043f\u0446\u0438\u0438 ROBOKASSA_STRICT_CHECK = True).\n\n\u0412 \u0446\u0435\u043b\u044f\u0445 \u0431\u0435\u0437\u043e\u043f\u0430\u0441\u043d\u043e\u0441\u0442\u0438 \u043b\u0443\u0447\u0448\u0435 \u0432\u0441\u0435\u0433\u0434\u0430 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0441\u0442\u0440\u043e\u0433\u0443\u044e \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0443\n(\u0441 \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435\u043c \u0447\u0435\u0440\u0435\u0437 Result URL). \u0415\u0435 \u043c\u0435\u0445\u0430\u043d\u0438\u0437\u043c:\n\n1. \u041f\u043e\u0441\u043b\u0435 \u043e\u043f\u043b\u0430\u0442\u044b robokassa.ru \u043e\u0442\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442 \"\u0444\u043e\u043d\u043e\u0432\u044b\u0439\" \u0437\u0430\u043f\u0440\u043e\u0441 \u043d\u0430 ResultURL.\n\n2. \u0412\u043d\u0443\u0442\u0440\u0438 view, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0433\u043e \u0441 ResultURL, \u043f\u0440\u043e\u0438\u0441\u0445\u043e\u0434\u0438\u0442 \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430 \u0441\u043e\u0434\u0435\u0440\u0436\u0430\u0449\u0435\u0439\u0441\u044f \u0432\n \u0437\u0430\u043f\u0440\u043e\u0441\u0435 md5-\u043f\u043e\u0434\u043f\u0438\u0441\u0438 \u0447\u0435\u0440\u0435\u0437 ROBOKASSA_PASSWORD2 (\u044d\u0442\u043e \u0432\u0442\u043e\u0440\u043e\u0439 \u043f\u0430\u0440\u043e\u043b\u044c, \u043a\u043e\u0442\u043e\u0440\u044b\u0439 \u043d\u0435\n \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u043f\u043e \u0441\u0435\u0442\u0438 \u0438 \u0438\u0437\u0432\u0435\u0441\u0442\u0435\u043d \u0442\u043e\u043b\u044c\u043a\u043e \u043e\u0442\u043f\u0440\u0430\u0432\u0438\u0442\u0435\u043b\u044e \u0438 \u043f\u043e\u043b\u0443\u0447\u0430\u0442\u0435\u043b\u044e).\n ROBOKASSA_PASSWORD2 \u043d\u0443\u0436\u0435\u043d \u0434\u043b\u044f \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0437\u0430\u043f\u0440\u043e\u0441 \u0431\u044b\u043b \u043f\u043e\u0441\u043b\u0430\u043d\n \u0438\u043c\u0435\u043d\u043d\u043e \u0441 robokassa.ru.\n\n3. \u0415\u0441\u043b\u0438 \u0437\u0430\u043f\u0440\u043e\u0441 \u043f\u0440\u0430\u0432\u0438\u043b\u044c\u043d\u044b\u0439, \u0442\u043e view \u0448\u043b\u0435\u0442 \u0441\u0438\u0433\u043d\u0430\u043b\n ``robokassa.signals.result_received``. \u0427\u0442\u043e\u0431 \u043f\u0440\u043e\u0438\u0437\u0432\u043e\u0434\u0438\u0442\u044c\n \u043c\u0430\u043d\u0438\u043f\u0443\u043b\u044f\u0446\u0438\u0438 \u0432\u043d\u0443\u0442\u0440\u0438 \u0441\u0430\u0439\u0442\u0430 (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043d\u0430\u0447\u0438\u0441\u043b\u044f\u0442\u044c \u0441\u0440\u0435\u0434\u0441\u0442\u0432\u0430 \u0441\u043e\u0433\u043b\u0430\u0441\u043d\u043e\n \u043f\u0440\u0438\u0448\u0435\u0434\u0448\u0435\u043c\u0443 \u0437\u0430\u043f\u0440\u043e\u0441\u0443 \u0438\u043b\u0438 \u043c\u0435\u043d\u044f\u0442\u044c \u0441\u0442\u0430\u0442\u0443\u0441 \u0437\u0430\u043a\u0430\u0437\u0430), \u043d\u0443\u0436\u043d\u043e \u0434\u043e\u0431\u0430\u0432\u0438\u0442\u044c\n \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0441\u0442\u0432\u0443\u044e\u0449\u0438\u0439 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430.\n\n4. \u0415\u0441\u043b\u0438 \u0432\u0441\u0435 \u0432 \u043f\u043e\u0440\u044f\u0434\u043a\u0435, \u0442\u043e view, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u044b\u0439 \u0441 Result URL,\n \u043e\u0442\u0434\u0430\u0435\u0442 robokassa.ru \u043e\u0442\u0432\u0435\u0442 \u0432\u0438\u0434\u0430 ``OK``,\n \u0433\u0434\u0435 ```` - \u0443\u043d\u0438\u043a\u0430\u043b\u044c\u043d\u044b\u0439 id \u0442\u0435\u043a\u0443\u0449\u0435\u0439 \u043e\u043f\u0435\u0440\u0430\u0446\u0438\u0438.\n \u042d\u0442\u043e\u0442 \u043e\u0442\u0432\u0435\u0442 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c \u0434\u043b\u044f \u0442\u043e\u0433\u043e, \u0447\u0442\u043e\u0431\u044b robokassa.ru \u043f\u043e\u043b\u0443\u0447\u0438\u043b\u0430\n \u043f\u043e\u0434\u0442\u0432\u0435\u0440\u0436\u0434\u0435\u043d\u0438\u0435 \u0442\u043e\u0433\u043e, \u0447\u0442\u043e \u0432\u0441\u0435 \u043d\u0435\u043e\u0431\u0445\u043e\u0434\u0438\u043c\u044b\u0435 \u0434\u0435\u0439\u0441\u0442\u0432\u0438\u044f \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u044b.\n\n5. \u0415\u0441\u043b\u0438 robokassa.ru \u043f\u043e\u043b\u0443\u0447\u0430\u0435\u0442 \u044d\u0442\u043e\u0442 \u043e\u0442\u0432\u0435\u0442, \u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f\n \u043d\u0430 Success URL. \u041d\u0430 \u044d\u0442\u043e\u0439 \u0441\u0442\u0440\u0430\u043d\u0438\u0447\u043a\u0435 \u043e\u0431\u044b\u0447\u043d\u043e \u043b\u0443\u0447\u0448\u0435 \u0432\u044b\u0432\u0435\u0441\u0442\u0438 \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435\n \u043e\u0431 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u043c \u043f\u0440\u043e\u0445\u043e\u0436\u0434\u0435\u043d\u0438\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u0430/\u043e\u043f\u043b\u0430\u0442\u044b. \u0415\u0441\u043b\u0438 \u043e\u0442\u0432\u0435\u0442 view, \u0441\u0432\u044f\u0437\u0430\u043d\u043d\u043e\u0439\n \u0441 Result URL, \u043d\u0435 \u0441\u043e\u043e\u0442\u0432\u0435\u0442\u0432\u0442\u0443\u0435\u0442 \u043e\u0436\u0438\u0434\u0430\u0435\u043c\u043e\u043c\u0443, \u0442\u043e \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c \u043f\u0435\u0440\u0435\u043d\u0430\u043f\u0440\u0430\u0432\u043b\u044f\u0435\u0442\u0441\u044f\n \u043d\u0435 \u043d\u0430 Success URL, \u0430 \u043d\u0430 Fail URL; \u0442\u0430\u043c \u0435\u043c\u0443 \u0445\u043e\u0440\u043e\u0448\u043e \u0431\u044b \u043f\u043e\u043a\u0430\u0437\u0430\u0442\u044c\n \u0441\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u0435 \u043e \u043f\u0440\u043e\u0438\u0437\u043e\u0448\u0435\u0434\u0448\u0435\u0439 \u043e\u0448\u0438\u0431\u043a\u0435.\n\n\n\u0421\u0438\u0433\u043d\u0430\u043b\u044b\n-------\n\n\u041e\u0431\u0440\u0430\u0431\u043e\u0442\u043a\u0443 \u0441\u043c\u0435\u043d\u044b \u0441\u0442\u0430\u0442\u0443\u0441\u043e\u0432 \u043f\u043e\u043a\u0443\u043f\u043e\u043a \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0432 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0430\u0445 \u0441\u0438\u0433\u043d\u0430\u043b\u043e\u0432.\n\n* ``robokassa.signals.result_received`` - \u0448\u043b\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0438 \u0443\u0432\u0435\u0434\u043e\u043c\u043b\u0435\u043d\u0438\u044f \u043e\u0442\n Robokassa. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043f\u043b\u0430\u0442\u0430 \u0431\u044b\u043b\u0430 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439.\n \u0412 \u043a\u0430\u0447\u0435\u0441\u0442\u0432\u0435 sender \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442\u0441\u044f \u044d\u043a\u0437\u0435\u043c\u043f\u043b\u044f\u0440 \u043c\u043e\u0434\u0435\u043b\u0438 SuccessNotification, \u0443\n \u043a\u043e\u0442\u043e\u0440\u043e\u0439 \u0435\u0441\u0442\u044c \u0430\u0442\u0440\u0438\u0431\u0443\u0442\u044b InvId \u0438 OutSum.\n\n* ``robokassa.signals.success_page_visited`` - \u0448\u043b\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043e\u043f\u043b\u0430\u0442\u044b. \u042d\u0442\u043e\u0442 \u0441\u0438\u0433\u043d\u0430\u043b \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u044c \u0432\u043c\u0435\u0441\u0442\u043e\n result_received, \u0435\u0441\u043b\u0438 \u043d\u0435 \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442\u0441\u044f \u0441\u0442\u0440\u043e\u0433\u0430\u044f \u043f\u0440\u043e\u0432\u0435\u0440\u043a\u0430\n (ROBOKASSA_STRICT_CHECK=False)\n\n* ``robokassa.signals.fail_page_visited`` - \u0448\u043b\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043f\u0435\u0440\u0435\u0445\u043e\u0434\u0435 \u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044f\n \u043d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0443 \u043e\u0448\u0438\u0431\u043a\u0438 \u043e\u043f\u043b\u0430\u0442\u044b. \u041f\u043e\u043b\u0443\u0447\u0435\u043d\u0438\u0435 \u044d\u0442\u043e\u0433\u043e \u0441\u0438\u0433\u043d\u0430\u043b\u0430 \u043e\u0437\u043d\u0430\u0447\u0430\u0435\u0442, \u0447\u0442\u043e \u043e\u043f\u043b\u0430\u0442\u0430\n \u043d\u0435 \u0431\u044b\u043b\u0430 \u043f\u0440\u043e\u0438\u0437\u0432\u0435\u0434\u0435\u043d\u0430. \u0412 \u043e\u0431\u0440\u0430\u0431\u043e\u0442\u0447\u0438\u043a\u0435 \u0441\u043b\u0435\u0434\u0443\u0435\u0442 \u043e\u0441\u0443\u0449\u0435\u0441\u0442\u0432\u043b\u044f\u0442\u044c \u0440\u0430\u0437\u0431\u043b\u043e\u043a\u0438\u0440\u0432\u043a\u0443 \u0442\u043e\u0432\u0430\u0440\u0430\n \u043d\u0430 \u0441\u043a\u043b\u0430\u0434\u0435 \u0438 \u0442.\u0434.\n\n\u0412\u0441\u0435 \u0441\u0438\u0433\u043d\u0430\u043b\u044b \u043f\u043e\u043b\u0443\u0447\u0430\u044e\u0442 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b InvId (\u043d\u043e\u043c\u0435\u0440 \u0437\u0430\u043a\u0430\u0437\u0430), OutSum (\u0441\u0443\u043c\u043c\u0430 \u043e\u043f\u043b\u0430\u0442\u044b) \u0438\nextra (\u0441\u043b\u043e\u0432\u0430\u0440\u044c \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u043c\u0438 \u0432\nROBOKASSA_EXTRA_PARAMS).\n\n\u041f\u0440\u0438\u043c\u0435\u0440::\n\n from robokassa.signals import result_received\n from my_app.models import Order\n\n def payment_received(sender, **kwargs):\n order = Order.objects.get(id=kwargs['InvId'])\n order.status = 'paid'\n order.paid_sum = kwargs['OutSum']\n order.extra_param = kwargs['extra']['my_param']\n order.save()\n\n result_received.connect(payment_received)\n\n\n\nurls.py\n-------\n\n\u0414\u043b\u044f \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0438 Result URL, Success URL \u0438 Fail URL \u043c\u043e\u0436\u043d\u043e \u043f\u043e\u0434\u043a\u043b\u044e\u0447\u0438\u0442\u044c\n\u043c\u043e\u0434\u0443\u043b\u044c robokassa.urls::\n\n urlpatterns = patterns('',\n #...\n url(r'^robokassa/', include('robokassa.urls')),\n #...\n )\n\n\u0410\u0434\u0440\u0435\u0441\u0430, \u043a\u043e\u0442\u043e\u0440\u044b\u0435 \u043d\u0443\u0436\u043d\u043e \u0443\u043a\u0430\u0437\u044b\u0432\u0430\u0442\u044c \u0432 \u043f\u0430\u043d\u0435\u043b\u0438 robokassa, \u0432 \u044d\u0442\u043e\u043c \u0441\u043b\u0443\u0447\u0430\u0435 \u0431\u0443\u0434\u0443\u0442 \u0438\u043c\u0435\u0442\u044c \u0432\u0438\u0434\n\n* Result URL: ``http://yoursite.ru/robokassa/result/``\n* Success URL: ``http://yoursite.ru/robokassa/success/``\n* Fail URL: ``http://yoursite.ru/robokassa/fail/``\n\n\n\u0428\u0430\u0431\u043b\u043e\u043d\u044b\n-------\n\n* ``robokassa/success.html`` - \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043e\u043f\u043b\u0430\u0442\u044b. \u0412\n \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f form \u0442\u0438\u043f\u0430 ``SuccessRedirectForm``, InvId\n \u0438 OutSum \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0430\u043a\u0430\u0437\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435\n \u0432 ROBOKASSA_EXTRA_PARAMS.\n\n* ``robokassa/fail.html`` - \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u0432 \u0441\u043b\u0443\u0447\u0430\u0435 \u043d\u0435\u0443\u0441\u043f\u0435\u0448\u043d\u043e\u0439 \u043e\u043f\u043b\u0430\u0442\u044b. \u0412\n \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435 \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f form \u0442\u0438\u043f\u0430 ``FailRedirectForm``, InvId\n \u0438 OutSum \u0441 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438 \u0437\u0430\u043a\u0430\u0437\u0430, \u0430 \u0442\u0430\u043a\u0436\u0435 \u0432\u0441\u0435 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u0435 \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u044b, \u043e\u043f\u0438\u0441\u0430\u043d\u043d\u044b\u0435\n \u0432 ROBOKASSA_EXTRA_PARAMS.\n\n* ``robokassa/error.html`` - \u043f\u043e\u043a\u0430\u0437\u044b\u0432\u0430\u0435\u0442\u0441\u044f \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u043c \u0437\u0430\u043f\u0440\u043e\u0441\u0435 \u043a \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435\n \"\u0443\u0441\u043f\u0435\u0445\" \u0438\u043b\u0438 \"\u043d\u0435\u0443\u0434\u0430\u0447\u0430\" (\u043d\u0430\u043f\u0440\u0438\u043c\u0435\u0440, \u043f\u0440\u0438 \u043e\u0448\u0438\u0431\u043a\u0435 \u0432 \u043a\u043e\u043d\u0442\u0440\u043e\u043b\u044c\u043d\u043e\u0439 \u0441\u0443\u043c\u043c\u0435). \u0412 \u043a\u043e\u043d\u0442\u0435\u043a\u0441\u0442\u0435\n \u0435\u0441\u0442\u044c \u043f\u0435\u0440\u0435\u043c\u0435\u043d\u043d\u0430\u044f form \u043a\u043b\u0430\u0441\u0441\u0430 ``FailRedirectForm`` \u0438\u043b\u0438 ``SuccessRedirectForm``.\n\n\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430\n==========\n\n\u0420\u0430\u0437\u0440\u0430\u0431\u043e\u0442\u043a\u0430 \u0432\u0435\u0434\u0435\u0442\u0441\u044f \u043d\u0430 github: https://github.com/kmike/django-robokassa\n\n\u041f\u043e\u0436\u0435\u043b\u0430\u043d\u0438\u044f, \u0438\u0434\u0435\u0438, \u0431\u0430\u0433-\u0440\u0435\u043f\u043e\u0440\u0442\u044b \u0438 \u0442\u0434. \u043f\u0438\u0448\u0438\u0442\u0435 \u0432 \u0442\u0440\u0435\u043a\u0435\u0440: https://github.com/kmike/django-robokassa/issues\n\n\u041b\u0438\u0446\u0435\u043d\u0437\u0438\u044f - MIT.\n\n\u0422\u0435\u0441\u0442\u0438\u0440\u043e\u0432\u0430\u043d\u0438\u0435\n------------\n\n\u0414\u043b\u044f \u0437\u0430\u043f\u0443\u0441\u043a\u0430 \u0442\u0435\u0441\u0442\u043e\u0432 \u0443\u0441\u0442\u0430\u043d\u043e\u0432\u0438\u0442\u0435 `tox `_, \u0441\u043a\u043b\u043e\u043d\u0438\u0440\u0443\u0439\u0442\u0435 \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439\n\u0438 \u0432\u044b\u043f\u043e\u043b\u043d\u0438\u0442\u0435 \u043a\u043e\u043c\u0430\u043d\u0434\u0443\n\n::\n\n $ tox\n\n\u0438\u0437 \u043a\u043e\u0440\u043d\u044f \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u044f.\n\n\n\n\u0418\u0441\u0442\u043e\u0440\u0438\u044f \u0438\u0437\u043c\u0435\u043d\u0435\u043d\u0438\u0439\n=================\n\n1.3 (2016-03-07)\n----------------\n\n* \u0438\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0432 \u0442\u0435\u0441\u0442\u043e\u0432\u043e\u043c \u0440\u0435\u0436\u0438\u043c\u0435 (\u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0428\u0443\u043c\u0438\u0445\u0438\u043d\u0443 \u0418\u0432\u0430\u043d\u0443);\n* \u043d\u0430\u0441\u0442\u0440\u043e\u0439\u043a\u0430 ROBOKASSA_TEST_FORM_TARGET \u043f\u043e\u0437\u0432\u043e\u043b\u044f\u0435\u0442 \u0443\u043a\u0430\u0437\u0430\u0442\u044c \u0441\u0432\u043e\u0439 \u0442\u0435\u0441\u0442\u043e\u0432\u044b\u0439 \u0441\u0435\u0440\u0432\u0435\u0440\n (\u0441\u043f\u0430\u0441\u0438\u0431\u043e https://github.com/superqwer).\n* \u0440\u0435\u043f\u043e\u0437\u0438\u0442\u043e\u0440\u0438\u0439 \u043d\u0430 bitbucket \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f;\n* setup.py \u0442\u0435\u043f\u0435\u0440\u044c \u0438\u0441\u043f\u043e\u043b\u044c\u0437\u0443\u0435\u0442 setuptools.\n\n1.2 (2013-12-24)\n----------------\n\n* \u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 django 1.6 - \u0441\u043f\u0430\u0441\u0438\u0431\u043e \u0410\u043b\u0435\u043a\u0441\u0430\u043d\u0434\u0440\u0443 \u0421\u0438\u043c\u043a\u0438\u043d\u0443;\n* Python 2.5 \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u0438\u0432\u0430\u0435\u0442\u0441\u044f.\n\n1.1 (2013-04-12)\n----------------\n\n* \u041d\u0430 \u0441\u0442\u0440\u0430\u043d\u0438\u0446\u0435 FailURL \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0440\u043e\u0432\u0435\u0440\u044f\u0435\u0442\u0441\u044f \u043f\u043e\u0434\u043f\u0438\u0441\u044c (\u0442.\u043a. \u0420\u043e\u0431\u043e\u043a\u0430\u0441\u0441\u0430 \u0435\u0435\n \u0431\u043e\u043b\u044c\u0448\u0435 \u043d\u0435 \u043f\u0435\u0440\u0435\u0434\u0430\u0435\u0442) - \u0441\u043f\u0430\u0441\u0438\u0431\u043e @amureki;\n* \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0430 \u0441\u043f\u0440\u0430\u0432\u043a\u0430 - \u0441\u043f\u0430\u0441\u0438\u0431\u043e @bo858585.\n\n1.0 (2012-03-24)\n----------------\n* \u0414\u043b\u044f \u0440\u0430\u0431\u043e\u0442\u044b \u0442\u0435\u043f\u0435\u0440\u044c \u0442\u0440\u0435\u0431\u0443\u0435\u0442\u0441\u044f django >= 1.3;\n* \u0434\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 django 1.4;\n* \u0432\u0441\u0435 \u0432\u044c\u044e\u0445\u0438 \u0432\u043e\u0437\u0432\u0440\u0430\u0449\u0430\u044e\u0442 \u0442\u0435\u043f\u0435\u0440\u044c TemplateResponse;\n* \u043c\u0438\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u0435\u0440\u0435\u0432\u0435\u0434\u0435\u043d\u044b \u043d\u0430 \u0441\u043e\u0432\u0440\u0435\u043c\u0435\u043d\u043d\u0443\u044e \u0432\u0435\u0440\u0441\u0438\u044e south;\n* \u0437\u0430\u043f\u0443\u0441\u043a \u0442\u0435\u0441\u0442\u043e\u0432 \u0447\u0435\u0440\u0435\u0437 tox;\n* \u043d\u0435\u0431\u043e\u043b\u044c\u0448\u0438\u0435 \u0443\u043b\u0443\u0447\u0448\u0435\u043d\u0438\u044f \u0432 README.\n\n0.9.3 (2010-08-05)\n------------------\n\u0421\u043e\u043e\u0431\u0449\u0435\u043d\u0438\u044f \u0441 \u043e\u0448\u0438\u0431\u043e\u0447\u043d\u043e\u0439 \u043f\u043e\u0434\u043f\u0438\u0441\u044c\u044e \u043d\u0435 \u0432\u044b\u0437\u044b\u0432\u0430\u044e\u0442 \u0438\u0441\u043a\u043b\u044e\u0447\u0435\u043d\u0438\u044f.\n\n0.9.2 (2010-06-23)\n------------------\n\u0414\u043e\u0431\u0430\u0432\u043b\u0435\u043d\u0430 \u043f\u043e\u0434\u0434\u0435\u0440\u0436\u043a\u0430 django 1.2.\n\n0.9.1 (2010-05-10)\n------------------\n\u0418\u0441\u043f\u0440\u0430\u0432\u043b\u0435\u043d\u0430 \u0440\u0430\u0431\u043e\u0442\u0430 \u0441 \u0434\u043e\u043f\u043e\u043b\u043d\u0438\u0442\u0435\u043b\u044c\u043d\u044b\u043c\u0438 (\u043f\u043e\u043b\u044c\u0437\u043e\u0432\u0430\u0442\u0435\u043b\u044c\u0441\u043a\u0438\u043c\u0438) \u043f\u0430\u0440\u0430\u043c\u0435\u0442\u0440\u0430\u043c\u0438.\n\n0.9.0 (2010-04-15)\n------------------\n\u041f\u0435\u0440\u0432\u0430\u044f \u0432\u0435\u0440\u0441\u0438\u044f", "description_content_type": null, "docs_url": null, "download_url": "UNKNOWN", "downloads": { "last_day": -1, "last_month": -1, "last_week": -1 }, "home_page": "https://bitbucket.org/kmike/django-robokassa/", "keywords": null, "license": "MIT license", "maintainer": null, "maintainer_email": null, "name": "django-robokassa", "package_url": "https://pypi.org/project/django-robokassa/", "platform": "UNKNOWN", "project_url": "https://pypi.org/project/django-robokassa/", "project_urls": { "Download": "UNKNOWN", "Homepage": "https://bitbucket.org/kmike/django-robokassa/" }, "release_url": "https://pypi.org/project/django-robokassa/1.3/", "requires_dist": null, "requires_python": null, "summary": "\u041f\u0440\u0438\u043b\u043e\u0436\u0435\u043d\u0438\u0435 \u0434\u043b\u044f \u0438\u043d\u0442\u0435\u0433\u0440\u0430\u0446\u0438\u0438 \u043f\u043b\u0430\u0442\u0435\u0436\u043d\u043e\u0439 \u0441\u0438\u0441\u0442\u0435\u043c\u044b ROBOKASSA \u0432 \u043f\u0440\u043e\u0435\u043a\u0442\u044b \u043d\u0430 Django.", "version": "1.3" }, "last_serial": 1993036, "releases": { "0.9.0": [ { "comment_text": "", "digests": { "md5": "b8bda9e0c06da40f85dbb28a9bb20f70", "sha256": "7482da075505d625269e920fecb0352cbd7f75898ce44c10d1f2b20f085ae8a5" }, "downloads": -1, "filename": "django-robokassa-0.9.0.tar.gz", "has_sig": false, "md5_digest": "b8bda9e0c06da40f85dbb28a9bb20f70", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9704, "upload_time": "2010-04-15T23:25:23", "url": "https://files.pythonhosted.org/packages/b7/6b/e24408adde51b822f84497766df554c4ef4cc8c4567766e47508a5b35c40/django-robokassa-0.9.0.tar.gz" } ], "0.9.1": [ { "comment_text": "", "digests": { "md5": "0e9aa6ce3a04e496c7f1ee7951d98a53", "sha256": "6b07c5495c851b861e67640952e2d34efa5797a31f72b72852dd7e87c98f965d" }, "downloads": -1, "filename": "django-robokassa-0.9.1.tar.gz", "has_sig": false, "md5_digest": "0e9aa6ce3a04e496c7f1ee7951d98a53", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9773, "upload_time": "2010-05-10T09:26:53", "url": "https://files.pythonhosted.org/packages/c8/43/12cda7d78f5c725f1da19b5747c205131279e35e1435cae96db6aee11b99/django-robokassa-0.9.1.tar.gz" } ], "0.9.2": [ { "comment_text": "", "digests": { "md5": "6718877e859523a9a0130e6fe94c2213", "sha256": "2432268baea78edd89787bc61c85169be7bbb53d1e5bc18f12638409f0edd171" }, "downloads": -1, "filename": "django-robokassa-0.9.2.tar.gz", "has_sig": false, "md5_digest": "6718877e859523a9a0130e6fe94c2213", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9838, "upload_time": "2010-06-23T12:20:58", "url": "https://files.pythonhosted.org/packages/31/11/82cf2cb728a9b373bc02b57a60ed641523358470bf2d76b5233bcb2eb470/django-robokassa-0.9.2.tar.gz" } ], "0.9.3": [ { "comment_text": "", "digests": { "md5": "60afb750787a75430ce3d6e00d527a48", "sha256": "55cc23fc81bbb7b70088d415c2c577957ef1670c7a4f70dc76a96e8fa5c7b91c" }, "downloads": -1, "filename": "django-robokassa-0.9.3.tar.gz", "has_sig": false, "md5_digest": "60afb750787a75430ce3d6e00d527a48", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 9874, "upload_time": "2010-08-05T23:53:47", "url": "https://files.pythonhosted.org/packages/6a/4b/f88b4ed4bb5feee86e882a07efef2403d0077cb6c72c3d139ac01a81ed65/django-robokassa-0.9.3.tar.gz" } ], "1.0": [ { "comment_text": "", "digests": { "md5": "3ff2fac3223a8f107a3b30b0d09ee7d4", "sha256": "c8fcc9135eed01578a7155437d12f48365b23d6ef4a5a95b41640dc1d0b310b4" }, "downloads": -1, "filename": "django-robokassa-1.0.tar.gz", "has_sig": false, "md5_digest": "3ff2fac3223a8f107a3b30b0d09ee7d4", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 11251, "upload_time": "2012-03-24T11:58:12", "url": "https://files.pythonhosted.org/packages/4b/66/bc8bf4920056cdeca2398155d180cfb11cfdcb50b8a3a61e7ed742484fad/django-robokassa-1.0.tar.gz" } ], "1.1": [ { "comment_text": "", "digests": { "md5": "809431c24aab7a422a26d61de04af7e1", "sha256": "91c82c01f6ff24128ca7e596d02c51867c159dd29b0b58d75a6eb1658ed37891" }, "downloads": -1, "filename": "django-robokassa-1.1.tar.gz", "has_sig": false, "md5_digest": "809431c24aab7a422a26d61de04af7e1", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12088, "upload_time": "2013-04-12T11:37:52", "url": "https://files.pythonhosted.org/packages/cf/25/cf38fc73291057b1de7ddda6e05c354ed150cfaa18fe7f504d7ea860f87a/django-robokassa-1.1.tar.gz" } ], "1.2": [ { "comment_text": "", "digests": { "md5": "169c5b35f74a1ab1d5692cbfb73a6d3b", "sha256": "5a044f8dd316a8e5a86340d11762f18d6a58401c12add7b89defd322a65e8f3e" }, "downloads": -1, "filename": "django-robokassa-1.2.tar.gz", "has_sig": false, "md5_digest": "169c5b35f74a1ab1d5692cbfb73a6d3b", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 12194, "upload_time": "2013-12-23T23:25:41", "url": "https://files.pythonhosted.org/packages/10/5c/ef91fe5fb2053f516a6fe62c180800b828524733a34127261ea8a18ac1ee/django-robokassa-1.2.tar.gz" } ], "1.3": [ { "comment_text": "", "digests": { "md5": "2ee078004cf61d09752a63cfdeb950ea", "sha256": "86bd4167c2ed408e891939d6f2744ca90ef7c7edb20fbf5340e678c868a02b96" }, "downloads": -1, "filename": "django_robokassa-1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "2ee078004cf61d09752a63cfdeb950ea", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20977, "upload_time": "2016-03-07T05:05:11", "url": "https://files.pythonhosted.org/packages/32/1b/6a9c2671a331c3f6c0d9f44617693e86916e3ebfd707a44c8d919d5d5423/django_robokassa-1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9d18b3eca579f889bf1c0a9efa4bd0d", "sha256": "8dce73ac4f51aeb11340356b583b5d8d98de5be7c7c746f324fb3ff542761443" }, "downloads": -1, "filename": "django-robokassa-1.3.tar.gz", "has_sig": false, "md5_digest": "b9d18b3eca579f889bf1c0a9efa4bd0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13133, "upload_time": "2016-03-07T05:04:56", "url": "https://files.pythonhosted.org/packages/92/73/9c7a4e5db3c2b807aae7eceb92bda54e35e10d55cee68c06d94a9f9eacf1/django-robokassa-1.3.tar.gz" } ] }, "urls": [ { "comment_text": "", "digests": { "md5": "2ee078004cf61d09752a63cfdeb950ea", "sha256": "86bd4167c2ed408e891939d6f2744ca90ef7c7edb20fbf5340e678c868a02b96" }, "downloads": -1, "filename": "django_robokassa-1.3-py2-none-any.whl", "has_sig": false, "md5_digest": "2ee078004cf61d09752a63cfdeb950ea", "packagetype": "bdist_wheel", "python_version": "2.7", "requires_python": null, "size": 20977, "upload_time": "2016-03-07T05:05:11", "url": "https://files.pythonhosted.org/packages/32/1b/6a9c2671a331c3f6c0d9f44617693e86916e3ebfd707a44c8d919d5d5423/django_robokassa-1.3-py2-none-any.whl" }, { "comment_text": "", "digests": { "md5": "b9d18b3eca579f889bf1c0a9efa4bd0d", "sha256": "8dce73ac4f51aeb11340356b583b5d8d98de5be7c7c746f324fb3ff542761443" }, "downloads": -1, "filename": "django-robokassa-1.3.tar.gz", "has_sig": false, "md5_digest": "b9d18b3eca579f889bf1c0a9efa4bd0d", "packagetype": "sdist", "python_version": "source", "requires_python": null, "size": 13133, "upload_time": "2016-03-07T05:04:56", "url": "https://files.pythonhosted.org/packages/92/73/9c7a4e5db3c2b807aae7eceb92bda54e35e10d55cee68c06d94a9f9eacf1/django-robokassa-1.3.tar.gz" } ] }