Metadata-Version: 1.1
Name: django-yandex-cash-register
Version: 0.1.7
Summary: Generic Yandex.Kassa application for Django
Home-page: https://github.com/bzzzzzz/django-yandex-cash-register
Author: Evgeny Barbashov
Author-email: evgenybarbashov@yandex.ru
License: UNKNOWN
Description-Content-Type: UNKNOWN
Description: Yandex.Kassa (Яндекс.Касса) generic app for Django
        ==================================================
        
        .. image:: https://travis-ci.org/bzzzzzz/django-yandex-cash-register.svg?branch=master
            :target: https://travis-ci.org/bzzzzzz/django-yandex-cash-register
        
        .. image:: https://codeclimate.com/github/bzzzzzz/django-yandex-cash-register/badges/gpa.svg
           :target: https://codeclimate.com/github/bzzzzzz/django-yandex-cash-register
           :alt: Code Climate
        
        .. image:: https://codeclimate.com/github/bzzzzzz/django-yandex-cash-register/badges/coverage.svg
           :target: https://codeclimate.com/github/bzzzzzz/django-yandex-cash-register/coverage
           :alt: Test Coverage
        
        .. note:: This application is suitable only for russian web services, so I don't
           provide English readme. If you need English docs, please contact me.
        
        Простое приложение для подключения в Django оплаты через Яндекс.Кассу. Поддерживает
        Python 2.7, 3.4 и 3.5. Совместимо со всеми версиями Django>=1.8.
        
        В приложении реализован протокол интеграции, описанный в
        `официальной документации <https://tech.yandex.ru/money/doc/payment-solution/About-docpage/>`_
        
        Установка и настройка
        ---------------------
        
        Перед тем приступить к настройке приложения, убедитесь, что у вас уже есть аккаунт в
        `kassa.yandex.ru <https://kassa.yandex.ru>`_ и вы знаете SCID, ShopID и платежный
        пароль.
        
        1. Устанавливаем пакет:
        
           .. code-block:: sh
        
               pip install django-yandex-cash-register
        
        2. Добавляем приложение ``yandex_cash_register`` в ``settings.INSTALLED_APPS``:
        
           .. code-block:: python
        
               INSTALLED_APPS = (
                   ...
                   'yandex_cash_register',
                   ...
               )
        
        3. Указываем в ``settings.py`` следующие настройки:
        
           .. code-block:: python
        
               # True - Использование тестого платежного сервиса, False - основного
               YANDEX_CR_DEBUG = False
               # Идентификатор магазина, полученный в Яндекс.Кассе
               YANDEX_CR_SCID = 12345
               # Идентификатор витрины магазина, полученный в Яндекс.Кассе
               YANDEX_CR_SHOP_ID = 123456
               # Платежный пароль магазина
               YANDEX_CR_SHOP_PASSWORD = 'password'
               # Идентификаторы используемых видов оплаты (https://tech.yandex.ru/money/doc/payment-solution/reference/payment-type-codes-docpage/)
               YANDEX_CR_PAYMENT_TYPE = ['pc', 'ac', 'wm']
               # Название модели заказа. Модель должна соответствовать
               # интерфейсу yandex_cash_register.interfaces.IPayableOrder
               YANDEX_CR_ORDER_MODEL = 'your_app.Order'
               # Публичный домен магазина
               YANDEX_CR_SHOP_DOMAIN = 'https://example.com'
        
        4. Создаем таблицы в базе данных:
        
           .. code-block:: sh
        
               python manage.py migrate
        
        5. Добавляем приложение в ``urls.py``, обязательно указывая ``namespace`` и ``app_name``:
        
           .. code-block:: python
        
               url(r'^money/', include('yandex_cash_register.urls',
                                       namespace='yandex_cash_register',
                                       app_name='yandex_cash_register')),
        
        6. Если ваш домен `example.com` и вы указали `money` как урл приложения, то
           ваш `checkURL` в настройках должен быть `https://example.com/money/order-check/`,
           а `paymentAvisoURL` - `https://example.com/money/payment-aviso/`.
           URL успеха и провала платежа указывать не нужно.
        
        Использование
        -------------
        
        1. Первым делом нужно имплементировать интерфейс ``yandex_cash_register.interfaces.IPayableOrder``
           в модели заказа своего приложения для того, чтобы по завершении платежа
           вернуть клиента на соответствующую страницу.
        
        2. Для создания платежа достаточно знать уникальный идентификатор заказа,
           почтовый адрес и телефон клиента (требование Яндекс.Кассы), а также сумму
           заказа и (опционально) выбранный клиентом способ оплаты:
        
           .. code-block:: python
        
               from yandex_cash_register.models import Payment
        
               payment = Payment(
                   order_sum=Decimal('100.50'),  # Сумма к оплате
                   order_id='unique_id',  # Идентификатор заказа
                   cps_email='customer@example.com',  # Почтовый адрес клиента
                   cps_phone='70000000000',  # Телефон клиента, 11 цифр без символов
                   payment_type='wm',  # Способ оплаты (опционален), если его не задать,
                                       # клиент будет выбирать его на стороне Яндекс.Кассы
               )
               payment.save()
        
               # После создания заказа можно получить платежную форму, которую нужно отобразить клиенту
               # c method="post" и target="yandex_cash_register.conf.TARGET"
               # После ее сабмита (можно это сделать автоматически) клиент попадет в
               # интерфейс Яндекс.Кассы, где сможет завершить платеж
               form = payment.form()
        
        3. Для получения информации о результатах оплаты, нужно начать слушать сигналы
           из модуля ``yandex_cash_register.signals``. В наличии три сигнала:
        
           - payment_process - отсылается при получении Яндекс.Кассой информации о платеже
           - payment_success - отсылается при успешном платеже
           - payment_fail - отсылается при ошибочном платеже
        
           В качестве sender сигнала выступает объект ``yandex_cash_register.Payment``,
           для которого этот сигнал актуален.
        
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Web Environment
Classifier: Framework :: Django
Classifier: Framework :: Django :: 1.8
Classifier: Framework :: Django :: 1.9
Classifier: Framework :: Django :: 1.10
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: BSD License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 2
Classifier: Programming Language :: Python :: 2.7
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Utilities
