1С:Предприятие
:: 1С:Предприятие 8 общая
|
|
| ||
busy1 25.12.20 - 16:22 | Добрый день. Необходимо использовать mesprowrp.dll для интеграции с ПС Contact. Библиотеку подключил успешно. Но при попытки подписать, подпись не формирует. Может быть кто то имеет успешный опыт использования этой библиотеки. Поделитесь кодом, пожалуйста.
Вот мой пример: Функция СоздатьПодпись(strBuffer) strBuffer = "This Unicode string has 2 characters outside the ASCII range"; ДвоичныеДанные = ПолучитьДвоичныеДанныеИзСтроки(strBuffer,КодировкаТекста.UTF8,Истина); Buffer = Base64Строка(ДвоичныеДанные); SignObj = Новый COMОбъект("System.Object"); Cryptor = Новый COMОбъект("MesProWrp.ContactCryptor"); Cryptor.IsBase64 = True; Signature = Cryptor.Sign(Buffer,SignObj); Возврат Signature; КонецФункции | ||
acht 1 - 25.12.20 - 16:45 | Традиционный вопрос - а что по этому говорит автор этой dll? | ||
busy1 2 - 25.12.20 - 16:47 | Автор говорит, что всё ОК. Все работает. | ||
acht 3 - 25.12.20 - 16:49 | (2) И, наверно, показывает это на конкретных примерах? | ||
busy1 4 - 25.12.20 - 16:50 | Да только эти примеры в exe и не фига не 1с | ||
acht 5 - 25.12.20 - 16:51 | (4) Тогда откуда ожидание, что это вообще подключается к 1С? | ||
b_ru 6 - 25.12.20 - 16:55 | А что это за SignObj такой пустой и зачем он Cryptor'у нужен? Наверное в нем же должен быть "This Unicode string has 2 characters outside the ASCII range", а сейчас там пустота | ||
busy1 7 - 25.12.20 - 17:02 | Есть документация:
function Sign(constBuffer: OleVariant; outSignature: OleVariant): Integer; stdcall; | ||
busy1 8 - 25.12.20 - 17:10 | Меня смущает вот эта строка MesProWrp.dll представляет собой Active X библиотеку | ||
acht 9 - 25.12.20 - 17:18 | (7) А что еще написано в документации по поводу параметров? | ||
Kassern 10 - 25.12.20 - 17:21 | (7) скинь пример кода для других языков | ||
busy1 11 - 25.12.20 - 17:41 | (10) Сейчас студию установлю | ||
busy1 12 - 25.12.20 - 17:43 | Вот пример от разработчика, который тоже не работает | ||
busy1 13 - 25.12.20 - 17:43 | using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using MesProWrp; namespace SignTest { class Program{ static void Main(string[] args) { string Data = "Some text data"; string Data64 = Convert.ToBase64String(Encoding.UTF8.GetBytes(Data));
object SignObj;
ContactCryptor Cryptor = new ContactCryptor();
Cryptor.IsBase64 = true;
int Res = Cryptor.Sign(Data64, out SignObj);
Console.WriteLine($"Sign result:{Res}");
if (Res == 0)
{ Console.WriteLine($"Signature:{SignObj.ToString()}"); }
Console.Write("Press any key");
Console.ReadKey();
}
} } | ||
acht 14 - 25.12.20 - 17:46 | |||
busy1 15 - 25.12.20 - 17:54 | (14) Возможно я там не так работаю в visual stidio | ||
busy1 16 - 25.12.20 - 17:56 | Меня беспокоит out SignObj. А именно out - это указатель. Как это перевести в термины 1с. | ||
acht 17 - 25.12.20 - 18:04 | (16) Метод создаст объект нужного типа и вернет указатель на него переменную SignObj. Какой у объекта тип и что с ним делать - в документации. Нет в документации - не будет в 1С. | ||
acht 18 - 25.12.20 - 18:09 | Можешь попробовать перед вызовом поставить переменную SignObj = Неопределено и посмотреть, что в ней будет после вызова Sign |
|
Список тем форума |