Продавец
0%
Сизиков Е.П.
Продаж
0
Возвратов
0
Оффлайн чат
0
0
1121 ₽
Cкидка постоянным покупателям! Если сумма ваших покупок у продавца Сизиков Е.П. больше чем:
😶 Скидка отсутствует
Библиотека API WebMoney Transfer для языка Python, реализует весь набор функций HTTPS-интерфейса WebMoney Transfer для Keeper Classic, требует внешней программы генерации электронной подписи по алгоритму SIGN, кроссплатформенная (требуется поддержка Python'ом SSL-сокетов для данной платформы / наличия функции socket.ssl() /).
Прорабатывается вариант реализации процедуры SIGN-подписи как модуль-расширения Python (на C/C++), что позволит отказаться от использования внешней (дополнительной) программы.
Документация для разработчиков пока отсутствует, но есть тестовый файл test.py, в котором проверяются (используются) все реализованные функции.
Прорабатывается вариант реализации процедуры 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
#-------------------------------------------------------------------------------
""" 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
#-------------------------------------------------------------------------------