Библиотека API WebMoney Transfer для языка Python (только Classic HTTPS-интерфейс)

Содержимое: wmt.zip (55.42 KB)
Загружен: 31.03.2003

Положительные отзывы: 0
Отрицательные отзывы: 0

Продано: 0
Возвраты: 0

Продавец: Сизиков Е.П.

Написать продавцу

Описание товара

  • Библиотека API WebMoney Transfer для языка Python, реализует весь набор функций HTTPS-интерфейса WebMoney Transfer для Keeper Classic, требует внешней программы генерации электронной подписи по алгоритму SIGN, кроссплатформенная (требуется поддержка Python´ом SSL-сокетов для данной платформы / наличия функции socket.ssl() /).
  • Прорабатывается вариант реализации процедуры SIGN-подписи как модуль-расширения Python (на C/C++), что позволит отказаться от использования внешней (дополнительной) программы.
  • Документация для разработчиков пока отсутствует, но есть тестовый файл test.py, в котором проверяются (используются) все реализованные функции.

Дополнительная информация

  • #!/usr/bin/python2.2 -O
  • """ WebMoney Transfer
  • Keeper Classic HTTPS interface test module (c) 2003 eugene_beast
  • Encoding: cp1251
  • Вместо xxxxxxxxxxxx подставить wmid & wm purse магазина и клиента.
  • """
  • __version__ = (0, 0, 1, ´alpha´)
  • from base import WMTError
  • from wmhttps import ClassicHTTPS as WMThttps
  • from wmxml import ClassicXML as WMTxml
  • # WMID клиента
  • cl_wmid = ´xxxxxxxxxxxx´
  • # WM-кошелек клиента
  • cl_wmpurse = ´Zxxxxxxxxxxxx´
  • # WMID магазина
  • t = WMThttps(´xxxxxxxxxxxx)
  • x = WMTxml(´xxxxxxxxxxxx´)
  • # WM-кошелек магазина
  • t.shop_wmpurse = x.shop_wmpurse = ´Zxxxxxxxxxxxx´
  • # период протекции при переводе денег (для TransCreateProt) - 1 день (по умолчанию 3 дня)
  • t.trans_prtime = x.trans_prtime = 1
  • # номер счета и номер транзакции перевода в магазине
  • shop_inv_number = shop_trans_number = 1
  • #-------------------------------------------------------------------------------
  • print ´Выписка счета, WMThttps.InvCreate()...´
  • wm_inv_id = None
  • try:
  • wm_inv_id = int(open(´test.wmt_inv_id´, ´r´).readline())
  • print ´Info: saved WMT Invoice ID found...´
  • except:
  • try:
  • wm_inv_id = t.InvCreate(cl_wmid, 1.21, shop_inv_number, ´descr:test´, ´address:void´)
  • open(´test.wmt_inv_id´, ´w´).write(str(wm_inv_id))
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • print ´WM Invoice ID: ´+str(wm_inv_id)
  • #-------------------------------------------------------------------------------
  • print ´Проверка состояния счета, WMThttps.InvCheck()...´
  • states = { -2: ´Счет не найден´,\
  • -1: ´Счет не был оплачен покупателем и покупатель отказался от оплаты счета´, \
  • 0: ´Счет еще не оплачен покупателем´, \
  • 1: ´Счет оплачен, но по операции с протекцией сделки - деньги еще не у магазина, для завершения необходимо ввести код протекции в течение срока протекции магазина´, \
  • 2: ´Счет оплачен, деньги уже перечислены на кошелек магазина´}
  • try:
  • state = x.InvCheck(shop_inv_number, cl_wmid, wm_inv_id)
  • print ´Classic XML: %d: %s´ % (state, states[state])
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • # test - stop right here
  • import sys
  • sys.exit(0)
  • try:
  • state = t.InvCheck(shop_inv_number, cl_wmid, wm_inv_id)
  • print ´Classic HTTPS: %d: %s´ % (state, states[state])
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • #-------------------------------------------------------------------------------
  • print ´Проверка соответствия кошелька идентификатору, WMThttps.CheckWMIDPurse()...´
  • states = { 0: ´Указанного WM идентификатора не существует´, \
  • 1: ´WM идентификатор существует, но он не имеет указанного кошелька´, \
  • 2: ´WM идентификатор существует и имеет указанный кошелек´ }
  • print ´%s/%s должен существовать и иметь кошелек´ % (cl_wmid, cl_wmpurse)
  • try:
  • state = t.CheckWMIDPurse(cl_wmid, cl_wmpurse)
  • print state, states[state]
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • wrong_purse = ´Z813374817225´
  • print ´%s/%s должен существовать но кошелька иметь не должен´ % (cl_wmid, wrong_purse)
  • try:
  • state = t.CheckWMIDPurse(cl_wmid, wrong_purse)
  • print state, states[state]
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • wrong_wmid = ´001000300000´
  • print ´%s/%s не должен существовать идентификатор´ % (wrong_wmid, wrong_purse)
  • try:
  • state = t.CheckWMIDPurse(cl_wmid, wrong_purse)
  • print state, states[state]
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • #-------------------------------------------------------------------------------
  • print ´Перевод денег, WMThttps.TransCreate()...´
  • wm_trans_id = None
  • try:
  • wm_trans_id = int(open(´test.wmt_trans_id´, ´r´).readline())
  • print ´Info: saved WMT money transfer Transaction ID found:´, wm_trans_id
  • except:
  • try:
  • wm_trans_id = t.TransCreate(cl_wmpurse, 0.01, shop_trans_number, ´test:trans´)
  • print ´Перевод денег произведен, номер транзакции:´, wm_trans_id
  • open(´test.wmt_trans_id´, ´w´).write(str(wm_trans_id))
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • if wm_trans_id:
  • try:
  • status = t.TransCheck(wm_trans_id)
  • print ´ - проверим успешность перевода...´ + status and ´успешно.´ or ´Error: ´ + err
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • else:
  • print ´Error: Не могу проверить успешность транзакции перевода - нет номера транзакции.´
  • #-------------------------------------------------------------------------------
  • print ´Перевод денег с протекцией, WMThttps.TransCreateProt()...´
  • wm_trans_id = None
  • try:
  • wm_trans_id = int(open(´test.wmt_trans_id_prot´, ´r´).readline())
  • print ´Info: saved WMT money transfer Transaction ID found:´, wm_trans_id
  • except:
  • try:
  • wm_trans_id = t.TransCreateProt(cl_wmpurse, 1, shop_trans_number, ´test:trans_prot´, ´123456´)
  • print ´Перевод денег произведен, номер транзакции:´, wm_trans_id
  • open(´test.wmt_trans_id_prot´, ´w´).write(str(wm_trans_id))
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • if wm_trans_id:
  • try:
  • status = t.TransCheck(wm_trans_id)
  • print ´ - проверим успешность перевода...´ + status and ´успешно.´ or ´Error: ´ + err
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • else:
  • print ´Error: Не могу проверить успешность транзакции перевода - нет номера транзакции.´
  • #-------------------------------------------------------------------------------
  • print ´Отправка сообщения, WMThttps.SendMsg()...´
  • wm_msg_id = None
  • try:
  • wm_msg_id = int(open(´test.wmt_msg_id´, ´r´).readline())
  • print ´Info: saved WMT Message ID found:´, wm_msg_id
  • except:
  • try:
  • wm_msg_id = t.SendMsg(cl_wmid, unicode(´Привет! Это тестовое сообщение из разрабатываемой мной библиотеки WMT для языка Python. Can you read this?´, ´utf-8´).encode(´cp1251´))
  • print ´Сообщение послано, номер сообщения:´, wm_msg_id
  • open(´test.wmt_msg_id´, ´w´).write(str(wm_msg_id))
  • except WMTError, error:
  • print ´Error %s:´ % error.errno, error.strerror
  • #-------------------------------------------------------------------------------
836.18 ₽

Отзывы

Отзывов от покупателей не поступало
836.18 ₽ Купить сейчас