Да. Я потихоньку разбираюсь с ней) Да вот не все получается...
Вот файл HTML.
<form name="form1" id="form1" action="2.php" method="post">
<input type="button" id="signData" name="signData" value="Подписать данные" style="width: 280px" ><br>
<input type="button" id="verifyData" name="verifyData" value="Проверить данные" style="width: 280px" ><br>
<input type="button" id="getTimeSig" name="getTimeSig" value="Получить время подписи" style="width: 280px"><br><br>
<tr><td colspan="3" style="width: 730px; height: 220px"><textarea name="textBOX1" class="result maxWidth" style="width: 730px; height: 220px"></textarea></td></tr>
<tr><td colspan="3" style="width: 730px; height: 220px"><textarea name="textBOX2" class="maxWidth" style="width: 730px; height: 220px"></textarea></td></tr>
<tr><td colspan="3" style="width: 730px; height: 120px"><textarea name="textBOX3" class="maxWidth" style="width: 730px; height: 120px"></textarea></td></
<input name="infoIden" id="infoIden" type="hidden" value="">
</form>
Вот PHP:
<? header('Content-Type:text/html; charset=utf-8');
$PHP_LIB = new COM('HybridLib.Hybrid') ;
$textBOX1 = $_POST['textBOX1'];
$textBOX2 = $_POST['textBOX2'];
$infoIden = $_POST['infoIden'];
if($infoIden == "Подписать данные")
{
$outSign = "";
$PHP_LIB-> SignData("256", 0, $textBOX1, &$outSign);
echo $outSign;
}
elseif($infoIden == "Получить время подписи")
{
<?php
$inData = $textBOX2;
$datetime = 0;
$PHP_LIB->TSAGetTimeFromSig($inData, 0, 0, &$datetime);
echo $datetime;
}
?>
Вот JavaScript:
$(document).ready(function(){
$('body').on('click', '#signData', function(){
var form = $(this).parents('form#form1');
window.document.form1.infoIden.value = "Подписать данные" ;
$('textarea[name=textBOX2]').val('');
form.ajaxSubmit({
beforeSubmit: function(){
var ar_Field = form.find('input').fieldSerialize().split('&');
for (var i = 0; i < ar_Field.length; i++)
{
var val = ar_Field[i].split('=');
}
},
complete: function(xhr) {
console.log(xhr);
$('textarea[name=textBOX2]').val(xhr.responseText);
}
});
});
});
$(document).ready(function(){
$('body').on('click', '#getTimeSig', function(){
var form = $(this).parents('form#form1');
window.document.form1.infoIden.value = "Получить время подписи" ;
$('textarea[name=textBOX3]').val('');
form.ajaxSubmit({
beforeSubmit: function(){
var ar_Field = form.find('input').fieldSerialize().split('&');
for (var i = 0; i < ar_Field.length; i++)
{
var val = ar_Field[i].split('=');
}
},
complete: function(xhr) {
console.log(xhr);
$('textarea[name=textBOX3]').val(xhr.responseText);
}
});
});
});
--- Добавлено ---
А вот с#:
private void btn_GetTimeFromSig_Click(object sender, EventArgs e)
{
string inData = textBox2.Text;
long outDateTime = 0;
KalkanCOMTest.TSAGetTimeFromSig(inData, 0, 0, out outDateTime);
DateTime date = new DateTime(1970, 1, 1).AddSeconds(outDateTime).AddHours(6); //Добавим 6 часов - часовой пояс Алматы
textBox8.Text += "Время подписи: " + date.ToString("dd.MM.yyyy HH-mm-ss") + " ALMT";
}
А вот с++ из COM-библиотеки:
STDMETHODIMP HybridCOM::TSAGetTimeFromSig(BSTR inData, INT flags, INT sigId, DATE* outDateTime)
{
time_t tmpOutDateTime = 0;
int tmpInDataLength = wcslen(inData) + 1;
std::vector<char> tmpInData(tmpInDataLength);
WideCharToMultiByte(CP_UTF8, 0, (LPCWCH)inData, tmpInDataLength, (LPSTR)&tmpInData[0], tmpInDataLength, NULL, NULL);
kc_funcs->KC_GetTimeFromSig(&tmpInData[0], tmpInDataLength, flags, sigId, &tmpOutDateTime);
return S_OK;