Python и trans2quik.dll

Страницы: 1
RSS
Python и trans2quik.dll, Не возвращает цену отправленной транзакции через дескриптор
 
Новичок в pythone и столкнулся с проблемой, что при отправки асинхронной транзакции в функции обратного вызова TRANS2QUIK_TRANSACTIONS_REPLY_CALLBACK, вызываю
функция TRANS2QUIK_TRANSACTION_REPLY_PRICE но она всегда возращает 0, хотя транзакция успешно отправлена.
Код
TRANS2QUIKORDERSTATUSCALLBACK = WINFUNCTYPE(c_void_p, c_long, c_long, c_long, c_long, c_long, POINTER(c_char_p), c_void_p)

def CallbackTransaction(nTransactionResult, nTransactionExtendedErrorCode, nTransactionReplyCode, dwTransId, dOrderNum, lpstrTransactionReplyMessage, transReplyDescriptor):
   result = Trans2Quik.TRANS2QUIK_TRANSACTION_REPLY_PRICE(transReplyDescriptor)

TRANS2QUIK_ORDER_STATUS_CALLBACK = TRANS2QUIKORDERSTATUSCALLBACK(CallbackTransaction)
TransCall = Trans2Quik.TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK(TRANS2QUIK_ORDER_STATUS_CALLBACK,byref(pnExtendedErrorCode), lpstrErrorMessage, dwErrorMessageSize)

 
Дмитрий, добрый день!

Уточните пожалуйста, с какими параметрами подаете транзакцию?
 
Здравствуйте Roman Azarov
Код
def TransactionQuick(SoB, name, price, q, nd):
    trans = f'ACCOUNT=ACCOUNT; CLIENT_CODE=CLIENT; TYPE=L; TRANS_ID={nd}; CLASSCODE=SPBXM; SECCODE={name}; ACTION=NEW_ORDER; OPERATION={SoB}; PRICE={price}; QUANTITY={q};'
    transaction = create_string_buffer(trans.encode('utf-8')) 
    pnExtendedErrorCode = c_long()
    lpstrErrorMessage = create_string_buffer(50) 
    dwErrorMessageSize = c_long(50)

    resTrans = Trans2Quik.TRANS2QUIK_SEND_ASYNC_TRANSACTION(transaction, byref(pnExtendedErrorCode), lpstrErrorMessage, dwErrorMessageSize)

TransactionQuick('S', 'VEON_SPB', 3, 2, 1)
 
Дмитрий, здравствуйте!

В первую очередь, рекомендуем проверить корректное получение цены с помощью колбэка используя примеры (на C++) из архива с библиотекой.
В случае, если там поведение будет корректное, советуем самостоятельно заняться вопросом повторения результата на другом ЯП (в частности, на Python).

Цитата
Дмитрий написал:
TransCall = Trans2Quik.TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK(TRANS2QUIK_ORDER_STATUS_CALLBACK,byref(pnExtendedErrorCode), lpstrErrorMessage, dwErrorMessageSize)
Также заметим, что в TRANS2QUIK_SET_TRANSACTIONS_REPLY_CALLBACK первым параметром должен передаваться указатель на функцию.
Страницы: 1
Читают тему
Наверх