[ИЩУ ИСПОЛНИТЕЛЯ] Библиотека для работы с XML-интерфейсами WebMoney для .Net

Koteyka

Пользователь
Регистрация
10.01.2016
Сообщения
39
Благодарностей
10
Баллы
8
Приветствую!

Подскажите, пожалуйста, есть ли кто-нибудь кто сделал бы из этой библиотеки снипет на c# для перевода средств между своими кошельками?
Интересует цена. Предложения в личку.

Т.з. было бы таким: есть заранее известный список кошельков, допустим он в текстовом файле, загоняем его в список ZP, это и я могу сделать, не принципиально, и чтобы снипет чекал сначала баланс кошелька, и если баланс положительный, переводил бы всю эту сумму на другой кошелёк, который укажу, допустим во входных настройках.

У webmoney есть все методы под эти нужды, вот ссылка:
https://wiki.webmoney.ru/projects/webmoney/wiki/WM-API

Еще исполнителю по всей видимости нужно иметь персональный аттестат, чтобы вы могли тестировать на своём wmid, пока пишите снипет, но не уверен.
 

Koteyka

Пользователь
Регистрация
10.01.2016
Сообщения
39
Благодарностей
10
Баллы
8
Пытаюсь сам осилить, но знаний C# катастрофически не хватает)

Что уже сделал?

1. Скачал Key Extractor, извлёк требуемый xml key.
2. Создал в шаблоне входные настройки под xml key, wmid, поле для выбора файла с кошельками, и поле для кошелька на который переводить средства.

Линк на Key Extractor:
http://download.wmsigner.com/webmoney-cryptography/public/v3.2/bin.zip

Мануал:
https://wiki.webmoney.ru/projects/webmoney/wiki/Key_Extractor

3. Скачал требуемые библиотеки.

Линк на библиотеки: (не обязательно их скачивать от сюда, я уже все скачал и положил в архив с шаблоном)
http://download.wmsigner.com/webmoney.xmlinterfaces/.net/v1.0/bin.zip

Мануал по использование xml интерфейсов для этой библиотеки:
https://wiki.webmoney.ru/projects/webmoney/wiki/WM-API

4. Скопировал все библы в ExternalAssemblies.

5. Подключил их в References.

6. Добавил в OwnCodeUsings следующий код:

Код:
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading;
using System.IO;
using System.Text.RegularExpressions;
using ZennoLab.CommandCenter;
using ZennoLab.InterfacesLibrary;
using ZennoLab.InterfacesLibrary.ProjectModel;
using ZennoLab.InterfacesLibrary.ProjectModel.Collections;
using ZennoLab.InterfacesLibrary.ProjectModel.Enums;
using ZennoLab.Macros;
using Global.ZennoExtensions;
using ZennoLab.Emulation;
//webmoney
using XmlInterfaces.General;
using WebMoney.BasicObjects;
using WebMoney.Cryptography;
using WebMoney.XmlInterfaces;
using WebMoney.XmlInterfaces.Configuration;
using CertificateValidator;
using Finance.Entities;
using NLog;
using log4net;
using BusinessTools.Logging;
using BusinessTools.Cryptography;

namespace ZennoLab.OwnCode
{
    public class Webmoney
    {
        static public string Main(string myXMLkey) //оригинал static void Main()
        {
            // xml-представление ключа WebMoney Keeper WinPro, полученное с помощью утилиты KeyExtractor 3.1
            string xmlKey = myXMLkey;

            Signer signer = new Signer();
            signer.Initialize(xmlKey);

            string signature = signer.Sign("message").ToString(); // подпись строки, я так полагаю, что сюда нужно передавать все данне о транзакции, но в какой момент и какие именно данные? Изначально в примере в эту функцию передавался массив строк Main(string[] args), но я переделал в Main(string myXMLkey), чтобы вызывать этот метод из C# и передавать от туда xml key, возможно это не правильно, но как правильно - не знаю)
            return signature;
        }
        /* пытался написать функцию для авторизации в коде приложения, но ругается на отсутствие объекта или класса Initializer, поэтому пока закомментил
        static public void Init(string myWMID,string myXMLkey)
        {
            var masterWmId = WmId.Parse(myWMID);// (WmId) 111111111111; // альтернативно можно записать WmId.Parse("111111111111")
            KeeperKey keeperKey = new KeeperKey(myXMLkey);

            var initializer = new Initializer(masterWmId, keeperKey);
            initializer.StartDate = new DateTime(1983, 1, 1).ToUniversalTime(); // для формирования ReqN
            initializer.Apply();
        }
        */
    }
}
7. Включил интерфейс X2 на странице https://merchant.webmoney.ru/conf/purses.asp (Без этого не получится использовать api)

8. Теперь нужно дописать метод получения баланса кошельков, и занести их в список или таблицу ZP, например.

В примере есть такой код:
Код:
var purseInfoFilter = new PurseInfoFilter(primaryWmId);
var purseInfoRegister = purseInfoFilter.Submit();

foreach (var purseInfo in purseInfoRegister.PurseInfoList)
{
   Console.WriteLine(purseInfo.Purse + " " + purseInfo.Amount);
}
Полный мануал получения баланса:
http://wiki.webmoney.ru/projects/webmoney/wiki/Интерфейс_X9

9. Дописать метод перевода с кошельков, на которых баланс не равен нулю, на тот, что указан во входящих настройках шаба.

В примере код такой:
Код:
var originalTransfer = new OriginalTransfer(2, new Purse(WmCurrency.Z, 1), Purse.Parse("Z123456789012"), Amount.Parse(1));
originalTransfer.Description = (Description) "Тестовый перевод";
originalTransfer.InvoiceId = recentInvoice.Id; // если перевод по счету

var recentTransfer = originalTransfer.Submit();
Полный мануал на перевод средств с одного кошелька на другой:
https://wiki.webmoney.ru/projects/webmoney/wiki/Интерфейс_X2


10. Может так будет уже проще разбираться и кто-нибудь сможет осилить?)
Или дать хоть какие-нибудь ориентиры, в какую сторону копать, как формировать подпись на основе транзакции, в какой момент и т.д.?


Да, метод static public string Main(string myXMLkey) выполняется успешно, если указываю во входных настройках полученный xml key из Key Extractor

И вот еще линк на все api:
https://wiki.webmoney.ru/projects/webmoney/wiki/WM-API


А этот линк на архив вместе с шаблоном описанном в этом посте, в нем в том числе и DDL, которые нужно положить в ExternalAssemblies:
https://yadi.sk/d/9EZxqUaBogNTT
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Может перенести в раздел рекламы, чтобы привлечь внимание фрилансеров?
даже не знаю будет ли кто разбираться в библиотеках этих по собственному желанию просто так)
 

Koteyka

Пользователь
Регистрация
10.01.2016
Сообщения
39
Благодарностей
10
Баллы
8
Может перенести в раздел рекламы, чтобы привлечь внимание фрилансеров?
даже не знаю будет ли кто разбираться в библиотеках этих по собственному желанию просто так)
Да я готов был бы и оплатить естественно) Если можно, то перенесите конечно)
 

rostonix

Известная личность
Регистрация
23.12.2011
Сообщения
29 067
Благодарностей
5 707
Баллы
113
Перенес и апнул тему. Надеюсь умельцы откликнуться
 

Koteyka

Пользователь
Регистрация
10.01.2016
Сообщения
39
Благодарностей
10
Баллы
8

Кто просматривает тему: (Всего: 1, Пользователи: 0, Гости: 1)