Инструменты пользователя

Инструменты сайта


django

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Both sides previous revision Предыдущая версия
Следущая версия
Предыдущая версия
Последняя версия Both sides next revision
django [2011/08/02 10:37]
admin
django [2011/09/02 10:14]
admin
Строка 3: Строка 3:
 Пользователи других фреймворков могут написать своё приложение,​ специально для этого основная функциональность собрана в файле `common.py`. \\ Пользователи других фреймворков могут написать своё приложение,​ специально для этого основная функциональность собрана в файле `common.py`. \\
 Фреймворко-зависимую часть (запросы,​ систему хранения,​ обработку форм, оповещение менеджеров) нужно будет переписать,​ взяв за основу текущий код.\\ ​ Фреймворко-зависимую часть (запросы,​ систему хранения,​ обработку форм, оповещение менеджеров) нужно будет переписать,​ взяв за основу текущий код.\\ ​
 +{{:​onpay-django1.png|}}\\
 +{{:​onpay-django2.png|}}\\
    
 ====Схема работы Onpay.ru через фреймворк Django==== ====Схема работы Onpay.ru через фреймворк Django====
Строка 11: Строка 13:
 ====Настройки в личном кабинете Onpay.ru для работы с Django==== ====Настройки в личном кабинете Onpay.ru для работы с Django====
  
-В личном ​кабинете Onpay.ru (Настройки магазина) необходимо настроить параметры API IN: +В [[http://​wiki.onpay.ru/​doku.php?​id=cabinet|Личном ​Кабинете]] Onpay.ru (Настройки магазина) необходимо настроить параметры API IN: 
    ​Уведомлять по API - Да     ​Уведомлять по API - Да 
    ​Проверять MD5 на ссылках - Да (не обязательно) ​    ​Проверять MD5 на ссылках - Да (не обязательно) ​
    URL API: http://​вашдомен/​onpay/​api/​ (можно переопределить через URLconf) ​    URL API: http://​вашдомен/​onpay/​api/​ (можно переопределить через URLconf) ​
    ​Пароль для API IN: ksjgJskLJds - ваш секретный код, который будет нужен при настройках платежного модуля Onpay.ru в Django    ​Пароль для API IN: ksjgJskLJds - ваш секретный код, который будет нужен при настройках платежного модуля Onpay.ru в Django
- +{{:​onpay-django3.png|}}\\  
 ====Установка Django-Onpay==== ====Установка Django-Onpay====
  
Строка 53: Строка 56:
  
    "​use_balance_table":​ True,     "​use_balance_table":​ True, 
-   # записывать в таблицу баланса. ​Без нее если честно не пробовал ​+   # записывать в таблицу баланса. ​
  
    "​pay_mode":​ "​fix", ​    "​pay_mode":​ "​fix", ​
Строка 66: Строка 69:
    "​enable_email_notify":​ None,     "​enable_email_notify":​ None, 
    # если включить опцию, при платежах будет отправлен email     # если включить опцию, при платежах будет отправлен email 
-   # через функцию email_managers ​ +   # через функцию email_managers ​ 
- +
-   "​enable_footman_update_balance":​ None,  +
-   # это только для примера и включать ни в коем случае нельзя!  +
-   # при получении платежа накидывается баланс на счет пользователя  +
-   # из профиля другого приложения (не путать с таблицей Balance)  +
-   # по аналогии стоит написать свою функцию и подключить через сигнал,​  +
-   # если вам требуется хранить счет пользователя в другом месте  +
- +
-   "​new_operation_status":​ 0,  +
-   # опция довольно бесполезная,​ оставил так как была в рхршных примерах ​+
  
    "​debug":​ None,     "​debug":​ None, 
-   # на данный момент отправляет через mail_admins запрос от onpay +   # на данный момент отправляет через mail_admins запрос от Onpay.ru ​
  
-Чтобы встроить платежную систему в свой дизайн надо переопределить шаблоны ​ из папки onpay. ​Надеюсь с этим справитесь без проблем. ​ +Чтобы встроить платежную систему в свой дизайн надо переопределить шаблоны ​ из папки onpay.\\  
- +\\ 
-Можно вместо include в urls.py прописать свои роуты к своим views, ​ +Можно вместо include в urls.py прописать свои роуты к своим views, если требуется какие-то изменения. ​\\ 
-если требуется какие-то изменения.  +\\ 
- +Можно поменять параметры после инициализации IframeGenerator: ​\\ 
-Можно поменять параметры после инициализации IframeGenerator:​  +   ​iframe_generator = IframeGenerator()  
- +   ​iframe_generator.set_f(3)  
-iframe_generator = IframeGenerator()  +   ​iframe_generator.width = 100500  
-iframe_generator.set_f(3)  +   ​iframe_generator.pay_mode = "​free"​  
-iframe_generator.width = 100500  +\\ 
-iframe_generator.pay_mode = "​free"​  +После оплаты отправляется сигнал `onpay.signals.refilled_balance`,​ если на него подписать свою функцию,​ можно добиться любой функциональности. Примеры смотрите в файле `signals.py`. \\ 
- +\\ 
-После оплаты отправляется сигнал `onpay.signals.refilled_balance`, ​ +Ну и, наконец,​ можно изменить исходные тексты и прислать hg патчи нам - по возможности добавим в репозиторий
-если на него подписать свою функцию,​ можно добиться любой функциональности. ​ +
-Примеры смотрите в файле `signals.py`. ​+
  
-Ну и, наконец,​ можно изменить исходные тексты и прислать hg патчи мне  +   common.py для работы с dom.minidom
-- по возможности добавлю в репозиторий. Комментарии писались по большей части  +
-на русском,​ так как сама платежная система русская.  +
-common.py для работы с dom.minidom+
  
-# coding: UTF-8 +   # coding: UTF-8 
-import urllib +   ​import urllib 
-from hashlib import md5 +   ​from hashlib import md5 
-#from lxml import etree +   ​#from lxml import etree 
-from xml.dom.minidom import getDOMImplementation+   ​from xml.dom.minidom import getDOMImplementation
  
-from onpay.conf import get_constant+   from onpay.conf import get_constant
  
-class IframeGenerator(object):​ +   class IframeGenerator(object):​ 
-    def __init__(self):​ +       ​def __init__(self):​ 
-        self.pay_mode = get_constant("​pay_mode",​ "​fix"​) +           ​self.pay_mode = get_constant("​pay_mode",​ "​fix"​) 
-        self.currency = get_constant("​currency",​ "​RUR"​) +           ​self.currency = get_constant("​currency",​ "​RUR"​) 
-        self.convert ​ = get_constant("​convert",​ "​yes"​) +           ​self.convert ​ = get_constant("​convert",​ "​yes"​) 
-        self.url_success = get_constant("​url_success"​) +           ​self.url_success = get_constant("​url_success"​) 
-        self.private_code = get_constant("​private_code"​) +           ​self.private_code = get_constant("​private_code"​) 
-        self.onpay_login = get_constant("​onpay_login"​) +           ​self.onpay_login = get_constant("​onpay_login"​) 
-        self.set_f(get_constant("​f"​))+           ​self.set_f(get_constant("​f"​))
  
     def iframe_url_params(self,​ operation_id,​ summ, email=None):​     def iframe_url_params(self,​ operation_id,​ summ, email=None):​
Строка 170: Строка 158:
         return u'<​iframe %s></​iframe>'​ % (u" "​.join(options_gen))         return u'<​iframe %s></​iframe>'​ % (u" "​.join(options_gen))
  
-def answer(type,​ code, pay_for, order_amount,​ order_currency,​ text):+   def answer(type,​ code, pay_for, order_amount,​ order_currency,​ text):
     "​функция выдает ответ для сервиса onpay в формате XML на чек запрос"​     "​функция выдает ответ для сервиса onpay в формате XML на чек запрос"​
     array_for_md5 = (type, pay_for, order_amount,​ order_currency,​ str(code),     array_for_md5 = (type, pay_for, order_amount,​ order_currency,​ str(code),
Строка 200: Строка 188:
  
  
-def answer_dict(POST,​ code, text):+    ​def answer_dict(POST,​ code, text):
     "​Shortcut for call answer with POST or form dict as parameter"​     "​Shortcut for call answer with POST or form dict as parameter"​
     return answer(     return answer(
Строка 211: Строка 199:
     )     )
  
-def answerpay(type,​ code, pay_for, order_amount,​ order_currency,​ text, onpay_id):+   def answerpay(type,​ code, pay_for, order_amount,​ order_currency,​ text, onpay_id):
     "​функция выдает ответ для сервиса onpay в формате XML на pay запрос"​     "​функция выдает ответ для сервиса onpay в формате XML на pay запрос"​
  
Строка 244: Строка 232:
     #                        xml_declaration=True,​ encoding='​UTF-8'​)     #                        xml_declaration=True,​ encoding='​UTF-8'​)
  
-def answerpay_dict(request_dict,​ code, text):+   def answerpay_dict(request_dict,​ code, text):
     "​Shortcut for call answerpay with POST or form dict as parameter"​     "​Shortcut for call answerpay with POST or form dict as parameter"​
     return answerpay(     return answerpay(
django.txt · Последние изменения: 2014/03/26 07:15 — admin