DEM 2 1.0.413 Release Notes
Released 27.08.2020
This release continues to improve existing features while introducing a few significant feature contributions.
What's new
- mToken Wrapper expanded with
bool? BiometricLoginCancelOrFaild { get; }
bool AuthorizeWebTransactionsWithQR(string messageType, string payload);
Andorid
public bool? BiometricLoginCancelOrFaild => throw new NotImplementedException();
public bool AuthorizeWebTransactionsWithQR(string messageType, string payload)
{
try
{
if (loadedFacade == null)
{
return false;
}
if (messageType == TokenNotificationType.NotificationTypeMac)
{
var token = ProcessMACNotification(payload);
List<CharArrayExt> mds = new List<CharArrayExt>();
var macValues = token.Payload.Where(x => x.Key == "m");
if (macValues != null && macValues.Count() > 0)
{
foreach (var mv in macValues)
{
var p = mv.Value.ToString();
var v = p.GetNumbers();
mds.Add(CharArrayExt.ValueOf(v));
}
}
CharArrayExt[] mdsInputs = mds.ToArray();
var transactionId = token.Payload.Where(x => x.Key == "t").FirstOrDefault().Value.ToString();
loadedFacade.ConfirmPayment(serverInfo, MacProfileName, mdsInputs, transactionId);
return true;
}
return false;
}
catch (Exception ex)
{
debug.Log(ADebugLevel.CriticalError, "AuthorizeWebTransactionsWithQR", ex);
return false;
}
}
iOS
public bool? BiometricLoginCancelOrFaild { get; protected set; }
void ActivationWithBiometricFail(NSError obj)
{
IsActivatedWithBiometric = false;
if (obj.Code == -120)
{
BiometricLoginCancelOrFaild = true;
}
else if (obj.Code == -121)
{
BiometricLoginCancelOrFaild = true;
}
else if (obj.Code == -122)
{
BiometricLoginCancelOrFaild = true;
}
LastErrorMessage = obj.ToString();
System.Diagnostics.Debug.WriteLine("Token activation with biometric failed" + obj.ToString());
}
public bool AuthorizeWebTransactionsWithQR(string messageType, string payload)
{
try
{
NSError getTokenFacadeError;
var tokenFacade = TokenFacade.GetTokenWithTokenName(TokenName, out getTokenFacadeError);
if (tokenFacade == null)
{
return false;
}
if (messageType == TokenNotificationType.NOTIFICATION_TYPE_MAC)
{
string Qr_Key_Cipher_Modulus = "9a2de79c8c033232a72daaa43aae701b887ef30895b89aa36129821a798dd6164ce299bae9c0fb6fc71febc5d44bda0b253942d66c73fd433d6f539cdac0489aad41049acf445f3d0f34cc5c1970e8ecef07469fd908f71de0f974480d63e718804463d68f48c4f4644f81ef81c406f46d9738c879daf73c7f8b95015672f70e299e39ec3354fb6422ea0708208ca65dea12bf61278faf4602dd0cda7f73e90d62f12a0d24ad494c737489611c0cebb61269c022c507e6a68fb34a075017419e9c875d6bbe2fea6963a799668ac5f139f4fa9c80ff901fe7e718a9e6434a2f31df8a9f36016caddc10c54478180a44be79de33d06167fec1b19df24cd26c78a5";
if (!String.IsNullOrWhiteSpace(config.FactoryConfig_MToken_Qr_Key_Cipher_Modulus))
{
Qr_Key_Cipher_Modulus = config.FactoryConfig_MToken_Qr_Key_Cipher_Modulus;
}
string Qr_Key_Cipher_Exponenet = "10001";
if (!String.IsNullOrWhiteSpace(config.FactoryConfig_MToken_Qr_Key_Cipher_Exponenet))
{
Qr_Key_Cipher_Exponenet = config.FactoryConfig_MToken_Qr_Key_Cipher_Exponenet;
}
var publicKeyModulus = CharArrayExt.ValueOfString(Qr_Key_Cipher_Modulus);
var publicKeyExponenet = CharArrayExt.ValueOfString(Qr_Key_Cipher_Exponenet);
NSError processMACnotificationError;
var macNotificationPayload = TokenFacade.ProcessMACNotificationWithEncodedPayload(payload, publicKeyModulus, publicKeyExponenet, out processMACnotificationError);
List<CharArrayExt> mds = new List<CharArrayExt>();
if (macNotificationPayload != null)
{
if (macNotificationPayload.MacValues?.Count() > 0)
{
foreach (var mv in macNotificationPayload.MacValues)
{
mds.Add(CharArrayExt.ValueOfString(mv));
}
}
CharArrayExt[] mdsInputs = mds.ToArray();
NSError confirmError;
loadedFacade.ConfirmPaymentWithServerInfo(serverInfo, MacProfileName, mdsInputs, macNotificationPayload.TransactionId, out confirmError, AuthorizeWebTransactionsWithQRSuccess, AuthorizeWebTransactionsWithQRFail);
return true;
}
}
return false;
}
catch (Exception ex)
{
debug.LogAlways(ex);
return false;
}
}
void AuthorizeWebTransactionsWithQRSuccess()
{
System.Diagnostics.Debug.WriteLine("Web transaction authorized!");
}
void AuthorizeWebTransactionsWithQRFail(NSError obj)
{
System.Diagnostics.Debug.WriteLine("Web transaction authorization failed" + obj.ToString());
}
Bug fixed
Halk
External
- 1417, 1431, 1432
Nova
- UI fix for EntryComboBox
Erste
- Mulitpletransaction fix
- AccesToken fix
Latest application on AppCentar
Halk - SxS MToken - SC 24x7 UAT
DEM V2 - Staging - SxS on Halk test
Packages (413)
Contributions welcome!
If you have one or more of some common pieces of code that you are always replicating across delivery apps, don't hesitate to contribute! We are the first NuGet package you install when creating a new .Net Mobile banking app!
Please have a look at our contribution guide before you get started.
If you need any help getting started, please let us know.
Useful Links
Thank you to our community for helping to make DEM even better! Mobile Team