tucan / qiwi

Library for QIWI payment system
MIT License
11 stars 5 forks source link

Decipheriv error #4

Closed goodmind closed 8 years ago

goodmind commented 8 years ago
events.js:160
      throw er; // Unhandled 'error' event
      ^

Error: error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt
    at Error (native)
    at Decipheriv.Cipher._flush (crypto.js:131:28)
    at Decipheriv.<anonymous> (_stream_transform.js:118:12)
    at Decipheriv.g (events.js:286:16)
    at emitNone (events.js:86:13)
    at Decipheriv.emit (events.js:185:7)
    at prefinish (_stream_writable.js:478:12)
    at finishMaybe (_stream_writable.js:490:7)
    at endWritable (_stream_writable.js:498:3)
    at Decipheriv.Writable.end (_stream_writable.js:463:5)
tucan commented 8 years ago

Предоставьте больше информации: во время какого вызова из библиотеки qiwi произошла ошибка, какая версия NodeJS? Были ли у вас проблемы со связью в момент возникновения ошибки? Сколько раз повторялась ошибка (если повторялась) и при каких условиях?

goodmind commented 8 years ago

Любой вызов invokeMethod, версия NodeJS 6.3.0. Проблем со связью не было. Повторялось через запрос

tucan commented 8 years ago

Какая версия OpenSSL используется? Самосборная или в составе дистрибутива? Если последнее, то какого?

goodmind commented 8 years ago

1.0.2h, ArchLinux

tucan commented 8 years ago

Вы обновляли OpenSSL или NodeJS на другую версию после установки библиотеки qiwi? Если да, то удалите qiwi и затем установите снова с помощью npm. Обратите внимание на то, будут ли выдаваться какие-нибудь предупреждающие сообщения при установке ursa (это зависимость) и ее компиляции. Для чистоты эксперимента сделайте, как написано выше, после этого снова попробуйте запустить программу, использующую qiwi, и напишите о результатах.

goodmind commented 8 years ago

Ошибка пропала, оказалось что setSession выполнялся асинхронно, можно ли установить сессию один раз, а не вызывать перед каждым методом?

tucan commented 8 years ago

А его и не надо вызывать перед каждым методом. Он вызывается один раз перед началом работы с сервером QIWI. Более того, вы можете по очереди работать с разными кошельками QIWI в пределах одной сессии. Просто вызываете setAccess с соответствующим номером телефона и токеном, после чего необходимую функцию (accountInfo, к примеру). Далее аналогично для другого кошелька. Для очистки рабочего контекста от параметров доступа вызываете removeAccess.