Code Monkey home page Code Monkey logo

django-yandex-kassa's Introduction

django-yandex-kassa

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

Оформление документов

  1. Идем на kassa.yandex.ru
  2. Регистрируемся
  3. Созваниваемся с сапортом, отправляем сканы, получаем SCID & ShopID

Отдельно нужно договариваться (писать прошение, подавать доп. пакет документов) на прием платежей через

  • Сбер, т.к. он не умеет делать возврат и, вообще, особенный;
  • мобильные платежи: на момент написания документации для подключения 'ого способа оплаты сайт должен был иметь оборотку более 30тр в месяц +процент для каждого оператора оговаривается отдельно;
  • QiWi;
  • MasterPass.

Установка

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

    pip install django-yandex-kassa
  2. Добавить yandex_kassa в settings.INSTALLED_APPS:

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

    python manage.py syncdb
  4. Добавить в urls.py:

    urlpatterns = patterns('',
        # ...
        url(r'^kassa/', include('yandex_kassa.urls')),
    )
  5. Указать в settings следующие параметры:

    YANDEX_KASSA_DEBUG = False
    YANDEX_KASSA_SCID = 123123
    YANDEX_KASSA_SHOP_ID = 123123
    YANDEX_KASSA_SHOP_PASSWORD = 'password'
    
    YANDEX_KASSA_DISPLAY_FIELDS = ['paymentType', 'cps_email', 'cps_phone']
    
    YANDEX_KASSA_CALLBACK_URL = '/kassa/callback/'
    YANDEX_KASSA_FAIL_URL = '/kassa/fail/'
    YANDEX_KASSA_SUCCESS_URL = '/kassa/success/'
    
    YANDEX_KASSA_PAYMENT_TYPE = ['ab', 'ac', 'gp', 'pb', 'pc', 'wm']
  6. Указать в рабочем Яндекс Кассы кабинете натсрйоки для приема уведомлений:

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

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

  1. Реализуйте представление и модель товара и заказа:

    # -*- coding: utf-8 -*-
    
    # ...
    
    class HomeView(TemplateView):
        template_name = 'home.html'
    
        def get_context_data(self, **kwargs):
            count = randint(1, 3)
            item = Item.objects.all().order_by('?').first()
            amount = count * item.price
    
            payment = Payment(order_amount=amount)
            payment.save()
    
            order = Order(item=item, count=count,
                          amount=amount, payment=payment)
            order.save()
    
            ctx = super(HomeView, self).get_context_data(**kwargs)
            ctx['order'] = order
            ctx['form'] = PaymentForm(initial=dict(orderNumber=order.uuid, sum=amount,
                                                   customerNumber=payment.customer_number))
            return ctx
    # -*- coding: utf-8 -*-
    
    # ...
    
    class Item(models.Model):
        name = models.CharField('Наименование', max_length=32)
        price = models.PositiveIntegerField('Стоимость')
    
        def __unicode__(self):
            return truncatechars(self.name, 16)
    
        class Meta:
            verbose_name = 'Товар'
            verbose_name_plural = 'Товары'
    
    
    class Order(models.Model):
        uuid = models.CharField('ID заказа', max_length=64,
                                default=get_uuid, primary_key=True)
        item = models.ForeignKey('app.Item', verbose_name='Товар')
        count = models.PositiveIntegerField('Кол-во', default=1)
        payment = models.ForeignKey('yandex_kassa.Payment',
                                    verbose_name='Платеж')
        amount = models.PositiveIntegerField('Сумма заказа')
    
        class Meta:
            verbose_name = 'Заказ'
            verbose_name_plural = 'Заказы'
  2. Шаблон платежной формы:

    <div class="col-lg-6 col-md-6 col-sm-6 col-xs-6">
        <form action="{{ form.target }}"
              method="post" class="form" name="ShopForm" id="payment_form_id">
            {% bootstrap_form form %}
    
            {% buttons %}
                <button type="submit" class="btn btn-success">
                    {% bootstrap_icon "shopping-cart" %}
                    Оплатить "{{ order.item.name }}" x{{ order.count }} шт
                </button>
            {% endbuttons %}
        </form>
    </div>

django-yandex-kassa's People

Contributors

drmartiner avatar daniilr avatar mpyrev avatar raagin avatar ishumihin avatar messteno avatar geweb7 avatar

Watchers

James Cloos avatar  avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.