У меня есть функция, которая запускает процесс EMV.Эта функция имеет тип возврата void, и я вызываю его в блоке кода ниже
public string startEMVProcess(string userpin)
{
btnEMVStart_Click(null, null);//this function starts the emv process
pin = userpin;
//i want to receive results from the EMV process here. into a global variable called 'result' and return 'result'
}
else
{
result = "Invalid Pin Length";
return result;
}
return result;
}
Здесь идентификатор тела функции btnEMVStartClick
private void btnEMVStart_Click(object sender, EventArgs e)
{
byte[] additionalTags = Common.getByteArray(tbAdditionalTags.Text);
IDT_Device.emv_allowFallback(cbAllowFallback.Checked);
RETURN_CODE rt = IDT_Augusta.SharedController.emv_startTransaction(Convert.ToDouble(tbAmount.Text),0, DeviceTerminalInfo.exponent, 0,30, additionalTags, false);
if (rt == RETURN_CODE.RETURN_CODE_DO_SUCCESS)
{
tbOutput.AppendText("Start EMV Successful\r\n");
System.Diagnostics.Debug.WriteLine("Start EMV Successful");
}
else
{
tbOutput.AppendText("Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt) + ": " + IDTechSDK.errorCode.getErrorString(rt) + "\r\n");
System.Diagnostics.Debug.WriteLine("Start EMV failed Error Code: " + "0x" + String.Format("{0:X}", (ushort)rt));
}
}
Результат из EMVSDK передает процесс в другую функцию, как показано ниже
private void SetOutputText(string text)
{
//the result from the EMV process is 'text'
var refr = DateTime.Now.ToString("yyyyMMddhhmmss");
var param = "Referenceid:"+text;
var res = TestISO(param);//i am doing something with 'text' here and getting a response.
//How can i return 'res' back to function 'StartEMVProcess'?
}
Как я могу получить ответ 'res', возвращенный в 'StartEmvProcess'?