Приведенный ниже код позволит выписать счет тому, кто зайдет на страницу вашего магазина. Код содержит в себе элемент ActiveX, и поэтому по умолчанию он работает только c браузером Internet Explorer, а для работы ActiveX в Netscape Navigator необходим соответствующий plug-in.
Внимание: перенос в строке «VALUE="83ce…» сделан для удобства чтения. При формировании реальной страницы переноса быть не должно!
Данный тэг вставляет на страницу браузера ActiveX-объект, который выглядит как картинка с изображением WM-кассы. В случае, если кто-либо зайдет на страницу вашего магазина и бросит монетку в ActiveX из своего WebMoney Keeper, на его имя будет выписан счет с параметрами, переданными в данном ActiveX.
Эти параметры означают следующее:
nInvoice — целое число, определяющее номер счета, выписываемого ActiveX. Оно необходимо для отслеживания счетов, выписанных вашим магазином, и, в идеале, должно быть уникальным для каждого выписываемого счета (или для каждого товара);
nState — режим ActiveX для статических магазинов должен быть равен 32 (остальные режимы необходимы для динамических магазинов и будут описаны в шаблонах динамических магазинов);
strStoresPurse — кошелек магазина, от имени которого будет выписываться счет покупателю;
Notes — название товара и комментарии к товару;
Amount — цена товара, сумма, на которую покупателю будет выписан счет (число с дробной частью, отделенной точкой);
DateOfCreate — дата счета, большой роли не играет и, в идеале, должна быть равна дате выписки счета (обязателен формат YYYY.MM.DD hh:nn:ss);
Expiration — целое число, определяющее количество дней действия счета;
Protection — целое число, определяющее количество дней протекции сделки по данному счету;
Signature — сертификат счета. Как его сформировать, будет описано ниже.
Для браузеров, не поддерживающих технологию ActiveX, вы можете вставить в HTML следующий тэг (не забудьте, что для Netscape Navigator данный тэг должен быть внутри тега FORM).
Как вы видите, это простое текстовое поле, где перечислены те же параметры счета, что и у ActiveX. Здесь необходимо учитывать следующие особенности:
- счет должен формироваться точно так же, как это сделано выше, без пропуска строк;
- названия параметров должны совпадать, быть в том же регистре и отделяться от значения параметра двоеточием и пробелом;
- после каждого значения параметра должна следовать последовательность ВКПС (возврат каретки перевод строки #13#10).
Чтобы сделать ваш счет работающим, то есть подписать его вашим закрытым ключом и создать таким образом сертификат счета, необходимо вызвать интерфейс кошелька WebMoney Keeper. На языке VBScript (в Windows Scripting Host) это может выглядеть следующим образом:
Dim Keeper ' вызов интерфеса к этому моменту WebMoney Keeper должен быть запущен
Set Keeper = WScript.CreateObject("WebMoneyRun.Keeper")
Dim gid, gname, gprice, gdate, shoppurse, gdayhold, gdayvalid
gid = 3
gname = "Утюг"
gprice = "500.00"
gdate = "1998.11.23 13:33:47"
shoppurse = "Z313292867832"
gdayhold = 0
gdayvalid = 0
Dim gcodestr
gcodestr = "№: " & gid & chr(13) & chr(10) & _
"товар: " & gname & chr(13) & chr(10) & _
"сумма: " & gprice & chr(13) & chr(10) & _
"дата создания: " & gdate & chr(13) & chr(10) & _
"кошелек магазина: " & shoppurse & chr(13) & chr(10) & _
"срок протекции: " & gdayhold & chr(13) & chr(10) & _
"время жизни: " & gdayvalid & chr(13) & chr(10)
'формирование строки на подпись формат строки должен быть именно таким
Dim SIGN_
SIGN_ = ""
Dim Login_
Login_ = "221563405131" 'WM идентификатор
Dim Pwd_
Pwd_ = "123qwe" ' Пароль
SIGN_ = Keeper.StringSign(Login_, Pwd_, gcodestr)
'Подпись строки возвращенная строка будет содержать сертификат подписанного счета
MsgBox SIGN_ ' Вывести подпись
' end of the sample
Этот код можно сохранить в файл .VBS, подправить (вставить свои значения для счета) и выполнить. Вы получите строку (сигнатуру), которую надо вставить в дальнейшем в параметры счета (в VALUE для PARAM NAME="Signature"). Если результатом выполнения этого кода будет пустая строка, то либо возникла ошибка, либо введен неверный пароль или WM-идентификатор.
Чтобы увидеть, как работает данный код, попробуйте бросить (из трея с иконки "мигающего муравья" или из списка кошельков WM Keeper) с помощью Drag&Drop монетку в кассу (для Microsoft IE), или в текстовое поле сертификата счета (для Netscape Communicator). Информационное сообщение запросит ввести адрес доставки товара (необязательный параметр). После этого система попытается выписать счет на оплату.
Для браузера Microsoft Internet Explorer:
Для браузера Netscape Communicator:
Если в процессе выписки счета в Кипере покупателя возникает сообщение "Вы не авторизованы корреспондентом для выполнения данной операции", значит, у покупателя стоит ограничение на прием счетов ( в Кипере Меню-Настройки-Программы_Ограничения).
Особенность! В коде указанного выше элемента ActiveX есть строка <PARAM NAME="nState" VALUE=32>. Эта строка определяет режим работы. Другие режимы работы 2, 4, 8, 16, 32 и т.д. описаны в других подразделах (см. слева). Можно комбинировать эти режимы (складывать их значения) для того, чтобы один раз выполнить сразу несколько функций. Так в режиме 35 (1+2+32) ActiveX будет проверять компьютер клиента на инсталляцию и запуск WM Keeper, а также работать в качестве статического счета.