Модуль оплаты yanexmoney-kit-django необходим для интеграции с сервисом Яндекс.Касса на базе фраймворка Django.
Доступные платежные методы, если вы работаете как юридические лицо:
- Банковские карты - Visa (включая Electron), MasterCard и Maestro любого банка мира
- Электронные деньги - Яндекс.Деньги, WebMoney и QIWI Wallet
- Наличные - Более 170 тысяч пунктов оплаты по России
- Баланс телефона - Билайн, МегаФон и МТС
- Интернет банкинг - Альфа-Клик, Сбербанк Онлайн, MasterPass и Промсвязьбанк
- Кредитование
- Django версии 1.5 или выше
- South версии 1.0 или выше
- lxml версии 3.3.4
- Установить пакет:
pip install git+https://github.com/yandex-money/yandex-money-kit-django.git
- Добавить
yandex_money
вsettings.INSTALLED_APPS
:
INSTALLED_APPS = (
...
'yandex_money',
...
)
- Выполнить синхронизацию с БД:
python manage.py syncdb
python manage.py migrate # для тех, кто использует south
- Добавить в
urls.py
:
urlpatterns = patterns('',
# ...
url(r'^fail-payment/$', TemplateView.as_view(template_name='fail.html'), name='payment_fail'),
url(r'^success-payment/$', TemplateView.as_view(template_name='success.html'), name='payment_success'),
url(r'^yandex-money/', include('yandex_money.urls')),
)
- Указать в settings.py следующие параметры:
YANDEX_MONEY_DEBUG = False
YANDEX_MONEY_SCID = 12345
YANDEX_MONEY_SHOP_ID = 56789
YANDEX_MONEY_SHOP_PASSWORD = 'password'
YANDEX_MONEY_FAIL_URL = 'https://example.com/fail-payment/'
YANDEX_MONEY_SUCCESS_URL = 'https://example.com/success-payment/'
# информировать о случаях, когда модуль вернул Яндекс.Кассе ошибку
YANDEX_MONEY_MAIL_ADMINS_ON_PAYMENT_ERROR = True
-
Указать в личном кабинете Яндекс.Деньги настройки для приема уведомлений:
-
paymentAvisoURL:
https://example.com/yandex-money/aviso/
-
checkURL:
https://example.com/yandex-money/check/
-
failURL:
https://example.com/fail-payment/
-
successURL:
https://example.com/success-payment/
- Представление платежной формы:
from django.views.generic import TemplateView
from yandex_money.forms import PaymentForm
from yandex_money.models import Payment
class OrderPage(TemplateView):
template_name = 'order_page.html'
def get_context_data(self, **kwargs):
payment = Payment(order_amount=123)
payment.save()
ctx = super(OrderPage, self).get_context_data(**kwargs)
ctx['form'] = PaymentForm(instance=payment)
return ctx
- Шаблон платежной формы:
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<meta charset="utf-8">
</head>
<body>
<div style="border: 1px dotted gray; padding: 15px 15px 0; margin: 30px auto; width: 300px;">
<form name="ShopForm" method="POST" action="https://money.yandex.ru/eshop.xml">
<ul style="list-style: none;">
<li style="margin-bottom: 20px;">
Сумма заказа: <b>{{ form.sum.value }}</b>
</li>
{{ form.as_ul }}
<li style="margin-top: 20px;">
<input type="submit" value="Оплатить">
</li>
</ul>
</form>
</div>
</body>
</html>
- Также вы можете определить logger 'yandex_money':
LOGGING = {
'version': 1,
'disable_existing_loggers': True,
'root': {
'level': 'INFO',
'handlers': ['default'],
},
'formatters': {
'simple': {
'format': '[%(asctime)s] %(levelname)s: %(message)s',
'datefmt': '%d/%m/%Y %H:%M:%S',
},
},
'handlers': {
'default': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGGING_DIR, 'messages.log'),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'message',
},
'yandex_money': {
'level': 'DEBUG',
'class': 'logging.handlers.RotatingFileHandler',
'filename': os.path.join(LOGGING_DIR, 'yandex_money.log'),
'maxBytes': 1024 * 1024 * 5,
'backupCount': 5,
'formatter': 'standard',
},
},
'loggers': {
'': {
'handlers': ['default'],
'level': 'INFO',
'propagate': True
},
'yandex_money': {
'handlers': ['yandex_money'],
'level': 'DEBUG',
'propagate': False
},
}
}
Любое использование Вами программы означает полное и безоговорочное принятие Вами условий лицензионного договора, размещенного по адресу https://money.yandex.ru/doc.xml?id=527132 (далее – «Лицензионный договор»). Если Вы не принимаете условия Лицензионного договора в полном объёме, Вы не имеете права использовать программу в каких-либо целях.
Пишите нам [email protected] При обращении необходимо:
- Указать наименование CMS и компонента магазина, а также их версии
- Указать версию платежного модуля (доступна в списке меню
Модули
) - Описать проблему или предложение
- Приложить снимок экрана (для большей информативности)