django-yandex-money

Integrating django project with yandex-money


Keywords
django, yandex, money, payment, pay
License
MIT
Install
pip install django-yandex-money==1.1.2

Documentation

django-yandex-money

ΠŸΡ€ΠΈΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅ ΠΏΠ΅Ρ€Π΅Π΅Π°Ρ…ΠΎΠ»ΠΎ сюда

ДокумСнтация для ΠΏΠΎ ΠΈΠ½Ρ‚Π΅Π³Ρ€Π°Ρ†ΠΈΠΈ

Установка

  1. Π£ΡΡ‚Π°Π½ΠΎΠ²ΠΈΡ‚ΡŒ ΠΏΠ°ΠΊΠ΅Ρ‚:

    pip install django-yandex-money
  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 ΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€Ρ‹:

    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/'
  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://yandex.ru/eshop.xml">
                    <ul style="list-style: none;">
                        <li style="margin-bottom: 20px;">
                            Π‘ΡƒΠΌΠΌΠ° Π·Π°ΠΊΠ°Π·Π°: <b>{{ form.sum.value }}</b>
                        </li>
    
                        {{ form.as_ul|safe }}
    
                        <li style="margin-top: 20px;">
                            <input type="submit" value="ΠžΠΏΠ»Π°Ρ‚ΠΈΡ‚ΡŒ">
                        </li>
                    </ul>
                </form>
            </div>
        </body>
    </html>