У WebMoney есть X-интерфейсы. Они предназанчены для того, чтобы программным способом взаимодействовать с этой платежной системой. Выставлять счета, получать различную статистику.
При этом порядок работы разный и заивсит от того как вы проходили регистрацию в платежной системе. Если через Light, то у вас p12 ключ и некоторые параметры (ваш wmid и подпись через Signer) передавать не надо. Если регистрация проходила через Keeper Classic, то у вас kwm ключ, и вам необходимо указывать ваш wmid и подписывать сообщения через Signer.
Для работы через эти интерфейсы есть хорошая библиотека WebmoneyJava Я работал через нее. Кошелек был зарегистрирован через Keeper Light. Но тут мне понадобилось перевести приложение на другой акканут, который был зарегистрирован через Keeper Classic. Вот тогда и началаись проблемы. Чтобы работать c ключами classic, необходимо:
- Сохранить ключ из кипера в файл.
- С помощью KeyExtractor преобразовать этот ключ в Base64
- Положить получившийся файл в то место где его будет видеть сервис. Указать путь к нему в самом сервисе.
Трудности начинаются со второго пункта. Я тщетно пытался найти на сайте WebMoney ссылку на приложение KeyExtractor. После долгих поисков, я все же ее нашел. KeyExctractor можно скачать здесь.
Дальше меня поджидала еще одна проблема: выяснилось, что изменился формат хранения classic ключей. Сейчас KeyExtractor преобразует их в xml Base64. Таким образом библиотека webmoneyjava не работала с новым представлением classic ключей. Я нашел обновленную версию соответствующей библиотеки, написанной на C#. После чего поправил код webmoneyjava. Исправления затронули :
- SignerImpl
- wmsignerjx.Signer
- wmsignerjx.Montgomery
Ниже я привожу код изменненых классов.
Теперь можно смело использовать соответствующий сервис для работы с Classic ключами.
Комментариев нет:
Отправить комментарий