/// <summary> /// Set Issued VNett resquest /// </summary> /// <param name="value">Issued VNett resquest</param> public void SetIssuedVNettRequest(IssueVNettVANRequest value) { this.issuedVNettRequest = value; }
// END EGE-85532 /// <summary> /// Prepare new ENett Virtual Account Number (VAN) /// </summary> /// <param name="user">User</param> /// <param name="reader">ENettVANRequestReader</param> /// <returns>CompleteIssueVNettVANRequest</returns> /// The below method is used for RequestVAN public static CompleteIssueVNettVANRequest GetENettVANRequest(UserInfo user, ENettRequestVAN reader) { // Let's request a new VAN IssueVNettVANRequest amdReq = new IssueVNettVANRequest(); CompleteIssueVNettVANRequest retval = new CompleteIssueVNettVANRequest(); // Will be returned from ECN // Get ECN details int issuedECN = Util.ConvertStringToInt(reader.ECN); // Generate a new reference string referenceId = GenerateENettTransactionID(); retval.SetReferenceId(referenceId); amdReq.IntegratorReference = referenceId; amdReq.IntegratorCode = GetIntegratorCode(); amdReq.IntegratorAccessKey = GetIntegratorAccessKey(); amdReq.RequesterECN = GetRequestorECN(); amdReq.IssuedToEcn = issuedECN; amdReq.CountryCode = reader.Market; amdReq.CurrencyCode = reader.Currency; amdReq.CardTypeName = CardTypeName; amdReq.FundingCurrencyCode = reader.Currency; amdReq.MaximumAuthorisationAmount = Util.ConvertStringToLong(reader.MaxAuthAmount); string activationDate = Util.ConvertDateToString(Util.ConvertStringToDate(reader.ActivationDate, Const.ExpirationDateFormat), Const.DateFormat_yyyyMMdd); amdReq.ActivationDate = activationDate; amdReq.ExpiryDate = Util.ConvertDateToString(Util.ConvertStringToDate(reader.ExpiryDate, Const.ExpirationDateFormat), Const.DateFormat_yyyyMMdd); amdReq.IsMultiUse = Util.ConvertStringToBool(reader.IsMultiUse); long minumumAuthorisationAmount = Util.ConvertStringToLong(reader.MinAuthAmount); if (amdReq.IsMultiUse) { amdReq.IsMultiUseSpecified = true; amdReq.MultiUseClosePercentage = Util.ConvertStringToInt(reader.MultiUseClosePercentage); amdReq.MultiUseClosePercentageSpecified = true; minumumAuthorisationAmount = 0L; } amdReq.MinimumAuthorisationAmount = minumumAuthorisationAmount; // Add user references amdReq.MerchantCategoryName = reader.MerchantCategory; amdReq.UserReference1 = referenceId; amdReq.UserReference2 = reader.UserName; amdReq.UserReference3 = reader.Product; string travelerName = "Unknown"; string travelerPercode = "Unknown"; // We need here to return traveler code and name // It depends on which Enett implementation we are // in the phase 1, percode and traveler name are provided for one traveller // <PerCode>2001</PerCode> // <TravellerName>Sudhakar</TravellerName> // in phase 2, multiple travallers are sent // so we need to extract the main traveller // <Travellers> // <Traveller> // <IsMainTraveller>true</IsMainTraveller> // <Name>Claire Burns</Name> // ... // </Traveller> // <//Travellers> // if (String.IsNullOrEmpty(reader.PerCode)) { // We have on phase 2 with multiple travellers // we need to find the main traveler List <ENettRequestVAN.Traveller> travs = reader.Travellers; foreach (ENettRequestVAN.Traveller trav in travs) { if (Util.ConvertStringToBool(trav.IsMainTraveller)) { // This is the main traveller travelerPercode = trav.Percode; travelerName = trav.Name; } } } else { // We are in phase 1, only one traveler is provided travelerPercode = reader.PerCode; travelerName = reader.TravellerName; } amdReq.UserReference4 = travelerName; amdReq.Username = reader.UserName; UserReference[] str = new UserReference[5]; str[0] = new UserReference(); str[0].Value = travelerPercode; str[1] = new UserReference(); str[1].Value = Util.ConvertDateToString(Util.ConvertStringToDate(reader.BookingDate, Const.ExpirationDateFormat), Const.DateFormat_yyyyMMdd); // Payment ID str[2] = new UserReference(); str[2].Value = reader.SupplierName; // Username str[3] = new UserReference(); str[3].Value = string.Empty; //>>EGE-6880 // new User Refernce for Channel str[4] = new UserReference(); str[4].Value = reader.Channel; //<<EGE-6880 amdReq.UserReferences = str; // Get message digest StringBuilder builder = new StringBuilder(); builder.Append(GetClientAccessKey()); builder.Append(referenceId); builder.Append(activationDate); builder.Append(CardTypeName); builder.Append(reader.Currency); builder.Append(issuedECN); builder.Append(reader.MaxAuthAmount); builder.Append(minumumAuthorisationAmount); builder.Append(reader.MerchantCategory); builder.Append(referenceId); builder.Append(reader.UserName); // Send message digest string msgDigest = builder.ToString(); byte[] arr = Encoding.Default.GetBytes(msgDigest); amdReq.MessageDigest = SHA1HashEncode(arr); retval.SetIssuedVNettRequest(amdReq); return(retval); }