Skip to content

lit-uriy/yandex-money-kit-django

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

35 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

django-yandex-money

Документация по интеграции

Установка

  1. Установить пакет:

    pip install git+https://github.com/aTastyCookie/yandexmoney_django.git
  2. Добавить yandex_money в settings.INSTALLED_APPS:

    INSTALLED_APPS = (
        ...
        'yandex_money',
        ...
    )
  3. Выполнить синхронизацию с БД:

    python manage.py syncdb
    python manage.py migrate # для тех, кто использует south
  4. Добавить в 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')),
    )
  5. Указать в 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
  6. Указать в кабинете Яндекс.Деньги настройки для приема уведомлений:

Использование

Полный пример использования

  1. Представление платежной формы:

    # -*- coding: utf-8 -*-
    
    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
  2. Шаблон платежной формы:

    <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>
  3. Также вы можете определить 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
            },
        }
    }

Tnx to @DrMartiner & @sdfsdhgjkbmnmxc

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published