private Result <Customer> createOnceOffCustomer(Sale_Details details) { //try //{ CustomerRequest request = new CustomerRequest { FirstName = details.CardHolderName, LastName = details.CardHolderLastName, CreditCard = new CreditCardRequest { Options = new CreditCardOptionsRequest { VerifyCard = true }, CVV = details.CardCCV, ExpirationMonth = details.CardExpiryMonth + "", ExpirationYear = details.CardExpiryYear + "", Number = details.CardNumber } }; Result <Customer> result = gateway.Customer.Create(request); return(result); //} //catch (AuthenticationException e) { // throw new AuthenticationException() { // Source = e.Source, // HelpLink = e.HelpLink // }; //} }
internal static void fill_AuthSaleRequest(ref Icharge icharge, Sale_Details details, bool AmtInCents) { //icharge.Config("CurrencyCode=" + details.CurrencyCode); icharge.InvoiceNumber = details.ExtRef; icharge.Card.Number = details.CardNumber; icharge.Card.ExpMonth = details.CardExpiryMonth; icharge.Card.ExpYear = details.CardExpiryYear; if (!string.IsNullOrEmpty(details.CardCCV)) { icharge.Card.CVVData = details.CardCCV; } icharge.Customer.FirstName = details.CustomerFirstName; icharge.Customer.LastName = details.CustomerLastName; icharge.Customer.FullName = details.CustomerFirstName + " " + details.CustomerLastName; icharge.Customer.Address = details.CustomerAddress; icharge.Customer.City = details.CustomerCity; icharge.Customer.State = details.CustomerState; icharge.Customer.Zip = details.CustomerZip; icharge.Customer.Country = details.CustomerCountry; icharge.Customer.Phone = details.CustomerPhone; icharge.Customer.Email = details.CustomerEmail; icharge.Customer.Id = details.CustomerIdentifier; icharge.TransactionAmount = AmtInCents ? (details.Amount * 100).ToString() : details.Amount.ToString("F2"); }
public Transaction_Result Sale(Sale_Details details) { try { if (string.IsNullOrWhiteSpace(details.ProviderToken) && paymentOptions.PaymentTokenize_requires_CVV) { throw new FormatException("Gateway cannot process untokenised cards, as CVV is required"); } XElement root = new XElement("DemandRequest"); XElement elem_userID = new XElement("UserId", userID); XElement elem_ref = new XElement("Reference", details.ProviderToken); XElement elem_desc = new XElement("Description", details.ProductDescription); XElement elem_amount = new XElement("Amount", details.Amount); XElement elem_m1 = new XElement("m_1", details.CustomerIdentifier); XElement elem_m2 = new XElement("m_2", details.transactionID); XElement elem_m3 = new XElement("m_3", details.accountID); XElement elem_m4 = new XElement("m_4", details.ExtRef); root.Add(elem_userID, elem_ref, elem_desc, elem_amount, elem_m1, elem_m2, elem_m3, elem_m4); var xmlString = root.ToString(); var xml = PostXMLTransaction("https://www.vcs.co.za/vvonline/ccxmldemand.asp", "?xmlMessage=" + xmlString); XmlNode authResponse = xml.GetElementsByTagName("DemandResponse").Item(0); var responseNode = authResponse.SelectNodes("Response").Item(0); var refNode = authResponse.SelectNodes("Reference").Item(0); var addResNode = authResponse.SelectNodes("AdditionalResponseData").Item(0); var resCodeNode = authResponse.SelectNodes("ResponseCode").Item(0); var approved = responseNode.InnerText.Contains("APPROVED") && !responseNode.InnerText.Contains("NOT"); var result = new Transaction_Result { isApproved = approved, ApprovalCode = approved ? responseNode.InnerText : "", TransactionIndex = refNode.InnerText, ProcessorCode = resCodeNode.InnerText, FullRequest = xmlString, FullResponse = xml.OuterXml, hasServerError = false, ErrorCode = !approved ? responseNode.InnerText : "", ErrorText = addResNode.InnerText, ProviderToken = details.ProviderToken }; return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { try { Transaction_Result authResult = Auth(details); if (!authResult.isApproved) { authResult.ErrorText = "Authorisation Error - " + authResult.ErrorText; return(authResult); } Transaction_Result captureResult = Capture(new AuthCapture_Details { TransactionIndex = authResult.TransactionIndex }); if (!captureResult.isApproved) { captureResult.ErrorText = "Capture Error - " + authResult.ErrorText; return(captureResult); } captureResult.TransactionIndex = authResult.TransactionIndex; return(captureResult); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { System.Collections.Specialized.NameValueCollection parameters = new System.Collections.Specialized.NameValueCollection(); parameters.Add("auth_id", authID); parameters.Add("auth_pass", authPass); parameters.Add("card_num", details.CardNumber); parameters.Add("card_cvv", details.CardCCV); parameters.Add("card_expiry", GatewayUtils.formatExpiryDateYY(details.CardExpiryMonth, details.CardExpiryYear)); parameters.Add("cust_name", details.CustomerFirstName); parameters.Add("cust_address", details.CustomerAddress); parameters.Add("cust_postcode", details.CustomerZip); parameters.Add("cust_country", details.CustomerCountryCodeTwoLetter); parameters.Add("cust_ip", details.IPAddress); parameters.Add("cust_email", details.CustomerEmail); parameters.Add("cust_tel", details.CustomerPhone); parameters.Add("tran_ref", details.ExtRef); parameters.Add("tran_amount", details.Amount.ToString("F2")); parameters.Add("tran_currency", details.CurrencyCode); parameters.Add("tran_testmode", Mode); parameters.Add("tran_type", "sale"); parameters.Add("tran_class", "cont"); var result = DoUrlEncodedFormPost("https://secure.cashflows.com/gateway/remote", parameters); var result_set = result.Split('|'); if (result_set.Length != 5) { throw new Exception("Response format invalid"); } var status = result_set[0]; var transactionIdentifier = result_set[1]; var avs = result_set[2]; var auth_code = result_set[3]; var message = result_set[4]; bool isSuccess = status == "A"; return(new Transaction_Result { ApprovalCode = isSuccess ? auth_code : "", ErrorCode = !isSuccess ? auth_code : "", ErrorText = !isSuccess ? message : "", FullRequest = KeyValueToQueryString(parameters), FullResponse = result, hasServerError = false, isApproved = isSuccess, isPending = false, ResultCode = avs, ResultText = message, TransactionIndex = transactionIdentifier }); }
public Transaction_Result Auth(Sale_Details details) { if (isAutoSettleOn) { throw new Exception("Cannot do an authorisation only since gateway is configured to automatically mark authorisations to be settled"); } string cardType = (string)Enum.GetName(typeof(CardTypeEnum), details.CardType); string qs = getAuthQS(CompanyID, Outlet, details.ExtRef, details.Amount.ToString("F2"), cardType, details.CustomerFirstName + " " + details.CustomerLastName, details.CardNumber, details.CardExpiryYear.ToString(), details.CardExpiryMonth.ToString(), details.CardCCV); return(PostTransaction("https://secure.setcom.co.za/server.cfm", qs)); }
public Transaction_Result Auth(Sale_Details details) { try { var xmlString = getAuthXML ( userID, details.ExtRef, "NA", details.Amount.ToString("F2"), details.CustomerFirstName + " " + details.CustomerLastName, details.CardNumber, details.CardExpiryMonth.ToString(), details.CardExpiryYear.ToString(), details.CardCCV, "", details.CurrencyCode ); var xml = PostXMLTransaction("https://www.vcs.co.za/vvonline/ccxmlauth.asp", xmlString); XmlNode authResponse = xml.GetElementsByTagName("AuthorisationResponse").Item(0); var responseNode = authResponse.SelectNodes("Response").Item(0); var refNode = authResponse.SelectNodes("Reference").Item(0); var addResNode = authResponse.SelectNodes("AdditionalResponseData").Item(0); var resCodeNode = authResponse.SelectNodes("ResponseCode").Item(0); var approved = responseNode.InnerText.Contains("APPROVED") && !responseNode.InnerText.Contains("NOT"); var result = new Transaction_Result { isApproved = approved, ApprovalCode = approved ? responseNode.InnerText : "", TransactionIndex = refNode.InnerText, ProcessorCode = resCodeNode.InnerText, FullRequest = xmlString, FullResponse = xml.OuterXml, hasServerError = false, ErrorCode = !approved ? responseNode.InnerText : "", ErrorText = addResNode.InnerText }; return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { try { //var icharge = newClient(); //nSoftwareUtils.fill_SaleRequest(ref icharge, details, false); //icharge.Sale(); //var result = nSoftwareUtils.parse_SaleResponse(ref icharge); var gateway = newClient(); TransactionRequest request = new TransactionRequest { Amount = details.Amount, OrderId = details.ExtRef, CreditCard = new TransactionCreditCardRequest { Number = details.CardNumber, ExpirationDate = formatExpiryDate(details.CardExpiryMonth, details.CardExpiryYear), CardholderName = details.CustomerFirstName + " " + details.CustomerLastName, CVV = details.CardCCV, }, Customer = new CustomerRequest { FirstName = details.CustomerFirstName, LastName = details.CustomerLastName, Phone = details.CustomerPhone, Email = details.CustomerEmail }, Options = new TransactionOptionsRequest { SubmitForSettlement = true }, }; Result <Transaction> Tresult = gateway.Transaction.Sale(request); Transaction_Result result = formatResult(request, Tresult); return(result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { if (isAutoSettleOn) { string cardType = (string)Enum.GetName(typeof(CardTypeEnum), details.CardType); string qs = getAuthQS(CompanyID, Outlet, details.ExtRef, details.Amount.ToString("F2"), cardType, details.CustomerFirstName + " " + details.CustomerLastName, details.CardNumber, details.CardExpiryYear.ToString(), details.CardExpiryMonth.ToString(), details.CardCCV); return(PostTransaction("https://secure.setcom.co.za/server.cfm", qs)); } else { var auth = Auth(details); return(Capture(new AuthCapture_Details { Amount = details.Amount, CurrencyCode = details.CurrencyCode, TransactionIndex = auth.TransactionIndex })); } }
public Transaction_Result Auth(Sale_Details details) { try { var xmlString = getAuthXML( PayGateID, Password, details.ExtRef, details.CustomerFirstName + " " + details.CustomerLastName, details.CardNumber, GatewayUtils.formatExpiryDate(details.CardExpiryMonth, details.CardExpiryYear), "0", //budget period 0 == Straight (details.Amount * 100).ToString("F0"), //takes amounts in cents details.CurrencyCode, details.CardCCV ); var xml = GatewayUtils.PostXMLTransaction(url, xmlString); XmlNode protocol = xml.GetElementsByTagName("protocol").Item(0); XmlNode errorNode = protocol.SelectNodes("errorrx").Item(0); string cardnumber = details.CardNumber; Regex rgx = new Regex(@"[^\d]"); cardnumber = rgx.Replace(cardnumber, String.Empty); //removes dashes spaces, etc string last4digits = cardnumber.Substring(details.CardNumber.Length - 4); var stringwriter = new System.IO.StringWriter(); var serializer = new XmlSerializer(details.GetType()); serializer.Serialize(stringwriter, details); var fullrequest = stringwriter.ToString(); fullrequest = fullrequest.Replace(cardnumber, last4digits); fullrequest = fullrequest.Replace(details.CardCCV, "***"); var respstringwriter = new System.IO.StringWriter(); xml.Save(respstringwriter); if (errorNode == null) { XmlNode successNode = protocol.SelectNodes("authrx").Item(0); string transactionID = successNode.Attributes.GetNamedItem("tid").Value; //The unique reference number assign by PayGate to the original transaction. string customerReference = successNode.Attributes.GetNamedItem("cref").Value; //This is your reference number for use by your internal systems. Must be different per transaction string status = successNode.Attributes.GetNamedItem("stat").Value; //Transaction status. string statusDesc = successNode.Attributes.GetNamedItem("sdesc").Value; //Transaction status description. string resultCode = successNode.Attributes.GetNamedItem("res").Value; //Result Code string resultDesc = successNode.Attributes.GetNamedItem("rdesc").Value; //Result Code description. string authCode = successNode.Attributes.GetNamedItem("auth").Value; //The Authorisation code returned by the acquirer (bank). string risk = successNode.Attributes.GetNamedItem("risk").Value; //X - NA, A - Authenticated, N - Not Authenticated This is a 2-character field containing a risk indicator for this transaction. string cardTypeCode = successNode.Attributes.GetNamedItem("ctype").Value; //Card type code 0 - Unknown, 1 - Visa, 2 - MasterCard, 3 - Amex, 4 - Diners return(new Transaction_Result { TransactionIndex = transactionID, isApproved = status != "0" && status != "2", hasServerError = false, ApprovalCode = statusDesc, ResultCode = resultCode, ResultText = resultDesc, ProcessorCode = authCode, FullRequest = fullrequest, FullResponse = xml.OuterXml }); } else { string errorCode = errorNode.Attributes.GetNamedItem("ecode").Value; string errorDesc = errorNode.Attributes.GetNamedItem("edesc").Value; return(new Transaction_Result { isApproved = false, hasServerError = false, ErrorCode = errorCode, ErrorText = errorDesc, }); } } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
//NOT IMPLEMENTED public Transaction_Result Verify(Sale_Details details) { throw new NotSupportedException(); }
public Transaction_Result Sale(Sale_Details details) { try { Transaction_Result auth_result = Auth(details); if (auth_result.isApproved) { Transaction_Result capture_result = Capture(new AuthCapture_Details { Amount = details.Amount, TransactionIndex = auth_result.TransactionIndex }); if (capture_result.isApproved) { var authDoc = new XmlDocument(); authDoc.LoadXml(auth_result.FullRequest); var captureDoc = new XmlDocument(); captureDoc.LoadXml(capture_result.FullRequest); var mergedDoc = new XmlDocument(); var root = mergedDoc.CreateElement("Requests"); mergedDoc.AppendChild(root); var authNode = mergedDoc.CreateElement("AuthRequest"); root.AppendChild(authNode); var captureNode = mergedDoc.CreateElement("CaptureRequest"); root.AppendChild(captureNode); foreach (XmlNode node in authDoc.ChildNodes[1]) { var imported_node = mergedDoc.ImportNode(node, true); authNode.AppendChild(imported_node); } foreach (XmlNode node in captureDoc.ChildNodes[1]) { var imported_node = mergedDoc.ImportNode(node, true); captureNode.AppendChild(imported_node); } //authNode.InnerXml = authDoc.InnerXml; //captureNode.InnerXml = captureDoc.InnerXml; var stringwriter = new System.IO.StringWriter(); mergedDoc.Save(stringwriter); capture_result.FullRequest = stringwriter.ToString(); return(capture_result); } else { capture_result.ResultText = "Capture Error || " + auth_result.ResultText; capture_result.FullRequest = auth_result.FullRequest + capture_result.FullRequest; return(capture_result); } } auth_result.ResultText = "Authorisation Error || " + auth_result.ResultText; return(auth_result); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
//NOT IMPLEMENTED public Transaction_Result Verify(Sale_Details details) { // Supported but linked to Customer on BrainTree throw new NotSupportedException(); }
public Transaction_Result Sale(Sale_Details details) { try { var gateway = newClient(); DoTransactionResponseMessage gateWayResult = gateway.doTransaction( "ONE_ZERO", SafeKey, transactionType.PAYMENT, authenticationType.NA, new additionalInfo { merchantReference = details.ExtRef }, new customer { address1 = details.CustomerAddress, addressCity = details.CustomerCity, countryOfResidence = details.CustomerCountry, firstName = details.CustomerFirstName, lastName = details.CustomerLastName }, new basket { amountInCents = (details.Amount * 100).ToString("F0"), currencyCode = details.CurrencyCode }, null, new creditCard[] { new creditCard { amountInCents = (details.Amount * 100).ToString("F0"), cardExpiry = GatewayUtils.formatExpiryDate(details.CardExpiryMonth, details.CardExpiryYear), cardNumber = details.CardNumber, cvv = details.CardCCV, nameOnCard = details.CustomerFirstName + " " + details.CustomerLastName } }, null, null, null, null, null, null, null, null, null, null, null, null, null, null, null ); var results = gateWayResult; if (results.successful) { return(new Transaction_Result { isApproved = true, ApprovalCode = results.resultCode, ResultCode = results.resultCode, ResultText = results.resultMessage, TransactionIndex = results.payUReference, hasServerError = false, FullRequest = getXmlString(details), FullResponse = getXmlString(results) }); } else { return(new Transaction_Result { isApproved = false, hasServerError = false, ErrorCode = results.resultCode, ErrorText = results.resultMessage, FullResponse = getXmlString(results), FullRequest = getXmlString(details) }); } } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { var url = string.Format(apiurl, details.ProviderToken, "adhoc"); //do POST request to URL - header needs to include merchant-id, version, timestamp, signature - body needs to include amount, item_name var ISO8601_timestamp = DateTimeOffset.Now.ToOffset(new TimeSpan(2, 0, 0)).DateTime.ToString("yyyy'-'MM'-'dd'T'hh:mm:ss"); var body_query_string = ""; Dictionary <string, string> paramDict = new Dictionary <string, string>(); paramDict.Add("merchant-id", MerchantID); //paramDict.Add("merchant_key", MerchantKey); paramDict.Add("version", apiVersion); paramDict.Add("timestamp", ISO8601_timestamp); paramDict.Add("amount", (details.Amount * 100).ToString("F0")); paramDict.Add("item_name", details.ProductDescription); paramDict.Add("passphrase", Passphrase); body_query_string = "amount=" + paramDict["amount"]; body_query_string += "&item_name=" + paramDict["item_name"]; byte[] postData = Encoding.ASCII.GetBytes(body_query_string); HttpWebRequest purchase_request = (HttpWebRequest)WebRequest.Create(url); purchase_request.UserAgent = "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 1.1.4322; .NET CLR 2.0.50727)"; purchase_request.Headers.Add("merchant-id", paramDict["merchant-id"]); //purchase_request.Headers.Add("merchant_key", paramDict["merchant_key"]); purchase_request.Headers.Add("version", paramDict["version"]); purchase_request.Headers.Add("timestamp", paramDict["timestamp"]); var ordered_keys = paramDict.Keys.OrderBy(r => r).ToArray(); var signature_string = ""; for (int i = 0; i < ordered_keys.Length; i++) { var key = ordered_keys[i]; if (i != 0) { signature_string += "&"; } signature_string += key + "=" + Uri.EscapeDataString(paramDict[key]); } System.Security.Cryptography.MD5 md5 = new System.Security.Cryptography.MD5CryptoServiceProvider(); var signature_hash = md5.ComputeHash(System.Text.Encoding.ASCII.GetBytes(signature_string)); var signature_hash_string = BitConverter.ToString(signature_hash); signature_hash_string = signature_hash_string.Replace("-", "").ToLower(); purchase_request.Headers.Add("signature", signature_hash_string); purchase_request.Method = "POST"; purchase_request.ContentType = "application/x-www-form-urlencoded"; purchase_request.ContentLength = postData.Length; Stream data = purchase_request.GetRequestStream(); data.Write(postData, 0, postData.Length); data.Close(); WebResponse response = null; try { response = purchase_request.GetResponse(); } catch (WebException e) { using (WebResponse response2 = e.Response) { HttpWebResponse httpResponse = (HttpWebResponse)response2; Console.WriteLine("Error code: {0}", httpResponse.StatusCode); using (Stream data2 = response2.GetResponseStream()) using (var reader2 = new StreamReader(data2)) { string text = reader2.ReadToEnd(); Console.WriteLine(text); } } } data = response.GetResponseStream(); StreamReader reader = new StreamReader(data); string serverResponse = reader.ReadToEnd(); reader.Close(); if (string.IsNullOrWhiteSpace(serverResponse) || !serverResponse.Trim().StartsWith("{")) { return(new Transaction_Result { isApproved = false, FullRequest = signature_string, FullResponse = serverResponse, hasServerError = true, ErrorText = "An unknown error has occurred, return object not in correct format" }); } dynamic json_serverResponse = Newtonsoft.Json.JsonConvert.DeserializeObject <dynamic>(serverResponse); var code = json_serverResponse.code; var status = json_serverResponse.status ?? ""; var dataobj = json_serverResponse.data ?? null; var responseitem = dataobj != null ? dataobj.response : false; var messageitem = dataobj != null ? dataobj.message ?? "" : ""; /* * * { * "code": 200, The HTTP status code for the result * "status": "success", A more verbose description of the result * "data": * { * "response": true, //approved or not * "message": "Success" //error message * } * } * */ if (code < 200 || code > 299) { return(new Transaction_Result { isApproved = false, FullRequest = signature_string, FullResponse = serverResponse, hasServerError = true, ErrorCode = code.ToString(), ErrorText = status }); } return(new Transaction_Result { isApproved = responseitem, ApprovalCode = code.ToString(), FullRequest = signature_string, FullResponse = serverResponse, hasServerError = false, ErrorCode = code.ToString(), ErrorText = messageitem, ProviderToken = details.ProviderToken }); }
protected override void Seed(DatabaseContext context) { List <Brand> brandList = new List <Brand>(); List <MyUser> brandUsers = new List <MyUser>(); List <Product> productList = new List <Product>(); //Only one super user is creating MyUser SuperUser = new MyUser() { Name = "Emre", Surname = "Serbest", ActivateGuid = Guid.NewGuid(), Email = "*****@*****.**", Address = FakeData.PlaceData.GetAddress(), Gender = "Male", IsActive = true, IsSuperUser = true, HasBrand = false, Username = "******", Password = "******", UserImage = "super_user_avatar.png", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; context.MyUsers.Add(SuperUser); context.SaveChanges(); //Creating 7 Admins (Brand Users) for (int i = 0; i < 7; i++) { var gender = FakeData.BooleanData.GetBoolean() ? "Male" : "Female"; var avatar_url = "default_user_avatar"; if (gender == "Male") { avatar_url = "male_user_avatar.png"; } else { avatar_url = "female_user_avatar.png"; } MyUser BrandUser = new MyUser() { Name = FakeData.NameData.GetFirstName(), Surname = FakeData.NameData.GetSurname(), Email = FakeData.NetworkData.GetEmail(), Address = FakeData.PlaceData.GetAddress(), Gender = gender, UserImage = avatar_url, ActivateGuid = Guid.NewGuid(), IsActive = true, IsSuperUser = false, HasBrand = true, Username = $"brandUser{i}", Password = "******", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; brandUsers.Add(BrandUser); context.MyUsers.Add(BrandUser); } context.SaveChanges(); //List<MyUser> users = context.MyUsers.ToList(); //Creating a Brand for the current BrandUser foreach (MyUser item in brandUsers) { Brand newBrand = new Brand() { BrandName = FakeData.NameData.GetCompanyName(), BrandImage = "logo_placeholder.png", Tag = FakeData.TextData.GetSentence(), MyUser = item, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; brandList.Add(newBrand); context.Brands.Add(newBrand); } context.SaveChanges(); List <string> sizeList = new List <string>(); sizeList.Add("XS"); sizeList.Add("S"); sizeList.Add("M"); sizeList.Add("L"); sizeList.Add("XL"); sizeList.Add("XXL"); List <string> colorList = new List <string>(); colorList.Add("black"); colorList.Add("white"); colorList.Add("pink"); colorList.Add("green"); colorList.Add("red"); // Creating Categories MEN, WOMEN, KidsAndBabies Category Men = new Category() { Title = "Men", Description = "Only for men shopping items", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; context.Categories.Add(Men); Category Women = new Category() { Title = "Women", Description = "Only for women shopping items", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; context.Categories.Add(Women); Category KidsAndBabies = new Category() { Title = "Kids & Babies", Description = "Kids and Babies shopping items", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; context.Categories.Add(KidsAndBabies); context.SaveChanges(); List <Category> mainCategories = new List <Category>(); List <SubCategory> MenSubCategories = new List <SubCategory>(); List <SubCategory> WomenSubCategories = new List <SubCategory>(); List <SubCategory> KidsAndBabiesSubCategories = new List <SubCategory>(); List <string> MenCatNames = new List <string>() { "Hoodies", "Jackets", "T-shirts", "Shirts", "Socks", "Jeans", "Casual Pants", "Cargo Pants", "Suits", "Boxers", "Men's Sleep Lounge", "Accessories", }; List <string> WomenCatNames = new List <string>() { "Dress", "Blouses", "T-shirts", "Beach Style", "Skirts", "Shorts", "Jean", "Blazers", "Bra", "Sleep Lounge", "Accessories", }; List <string> KidsCatNames = new List <string>() { "Dresses", "Clothing Sets", "Family Matching Clothes", "Shoes", "Swim Suits", "Shorts", "Baby Mother", "Toys", }; foreach (string subCat in MenCatNames) { SubCategory subCatMen = new SubCategory() { Title = subCat, Description = "Men Shopping", Category = Men, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; MenSubCategories.Add(subCatMen); context.SubCategories.Add(subCatMen); } foreach (string subCat in WomenCatNames) { SubCategory subCatWomen = new SubCategory() { Title = subCat, Description = "Women Shopping", Category = Women, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; WomenSubCategories.Add(subCatWomen); context.SubCategories.Add(subCatWomen); } foreach (string subCat in KidsCatNames) { SubCategory subCatKidsAndBabies = new SubCategory() { Title = subCat, Description = "Kids & Babies Shopping", Category = KidsAndBabies, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; KidsAndBabiesSubCategories.Add(subCatKidsAndBabies); context.SubCategories.Add(subCatKidsAndBabies); } context.SaveChanges(); mainCategories.Add(Men); mainCategories.Add(Women); mainCategories.Add(KidsAndBabies); //Creating 50 products for (int j = 0; j < 50; j++) { Category randomCat = mainCategories[FakeData.NumberData.GetNumber(0, mainCategories.Count - 1)]; SubCategory randomSubCat; if (randomCat == Men) { randomSubCat = MenSubCategories[FakeData.NumberData.GetNumber(0, MenSubCategories.Count - 1)]; } else if (randomCat == Women) { randomSubCat = WomenSubCategories[FakeData.NumberData.GetNumber(0, WomenSubCategories.Count - 1)]; } else { randomSubCat = KidsAndBabiesSubCategories[FakeData.NumberData.GetNumber(0, KidsAndBabiesSubCategories.Count - 1)]; } Product newProduct = new Product() { ProductName = FakeData.NameData.GetCompanyName(), ProductDescription = FakeData.TextData.GetSentence(), Brand = brandList[(FakeData.NumberData.GetNumber(0, brandList.Count - 1))], Size = sizeList[(FakeData.NumberData.GetNumber(0, sizeList.Count - 1))], Color = colorList[(FakeData.NumberData.GetNumber(0, colorList.Count - 1))], Stock = FakeData.NumberData.GetNumber(10, 100), Price = FakeData.NumberData.GetNumber(15, 150), DiscountPercentage = FakeData.NumberData.GetNumber(0, 10), Category = randomCat, SubCategory = randomSubCat, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; productList.Add(newProduct); context.Product.Add(newProduct); } context.SaveChanges(); List <MyUser> standartUserList = new List <MyUser>(); for (int s = 0; s < 10; s++) { MyUser standartUser = new MyUser() { Name = FakeData.NameData.GetFirstName(), Surname = FakeData.NameData.GetSurname(), Email = FakeData.NetworkData.GetEmail(), Address = FakeData.PlaceData.GetAddress(), Gender = FakeData.BooleanData.GetBoolean() ? "Male" : "Female", UserImage = FakeData.NetworkData.GetDomain(), ActivateGuid = Guid.NewGuid(), IsActive = true, IsSuperUser = false, HasBrand = false, Username = $"standartUser{s}", Password = "******", CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = "******", }; standartUserList.Add(standartUser); context.MyUsers.Add(standartUser); context.SaveChanges(); //Creating Wishlist for standartusers randomly. if (FakeData.BooleanData.GetBoolean()) { Wishlist wishlist = new Wishlist() { IsPublic = FakeData.BooleanData.GetBoolean(), Title = FakeData.BooleanData.GetBoolean() ? "Specialized-WishList-Title" : "WishList", MyUser = standartUser, }; context.Wishlists.Add(wishlist); //Adding products to the wishlist randomly for (int i = 0; i < FakeData.NumberData.GetNumber(3, 10); i++) { Wishlist_Products wishlist_products = new Wishlist_Products() { Product = productList[FakeData.NumberData.GetNumber(0, 45)], Wishlist = wishlist }; context.WishlistProduct.Add(wishlist_products); } } //Creating Sale for standart users randomly if (FakeData.BooleanData.GetBoolean()) { for (int salecounter = 0; salecounter < FakeData.NumberData.GetNumber(3, 20); salecounter++) { double totalPrice = 0; Sale_Details saleDetail = new Sale_Details() { }; Sale sale = new Sale() { }; for (int saleDetailCounter = 0; saleDetailCounter < FakeData.NumberData.GetNumber(2, 8); saleDetailCounter++) { Product soldProduct = productList[FakeData.NumberData.GetNumber(0, 49)]; int tempQuantity = FakeData.NumberData.GetNumber(1, 4); double tempSubTotal = soldProduct.Price * tempQuantity; totalPrice += tempSubTotal; saleDetail.Quantity = tempQuantity; saleDetail.Product = soldProduct; saleDetail.InstantPrice = soldProduct.Price; saleDetail.SubTotal = tempSubTotal; saleDetail.Sale = sale; context.Sale_Details.Add(saleDetail); } sale.Customer = standartUser; sale.Date = FakeData.DateTimeData.GetDatetime(); sale.Time = FakeData.DateTimeData.GetDatetime(); sale.TotalPrice = totalPrice; sale.TotalVat = 18; context.Sales.Add(sale); } } } context.SaveChanges(); //Adding product images foreach (Product itemProduct in productList) { for (int i = 0; i < FakeData.NumberData.GetNumber(3, 7); i++) { Product_Image productImage = new Product_Image() { Url = $"picture{i}.jpg", Product = itemProduct, }; context.ProductImages.Add(productImage); MyUser owner = standartUserList[FakeData.NumberData.GetNumber(0, standartUserList.Count - 1)]; //Adding comments Comment newComment = new Comment() { Text = FakeData.TextData.GetSentences(FakeData.NumberData.GetNumber(1, 3)), Owner = owner, Product = itemProduct, CreatedOn = DateTime.Now, ModifiedOn = DateTime.Now, ModifiedUsername = owner.Username, }; context.Comments.Add(newComment); //Creating likes Rate Rate = new Rate() { RateOwner = standartUserList[FakeData.NumberData.GetNumber(0, standartUserList.Count - 1)], Product = itemProduct, }; context.Rates.Add(Rate); } } context.SaveChanges(); }
public void runTests() { var ran = new Random(); // classes var sale_details_visa_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000002", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000036", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_nofunds = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000028", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4000000000000002", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5200000000000015", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5200000000000023", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_visa_success).testApproved("Auth"); Auth(sale_details_visa_fail).testNotApproved("Auth"); Auth(sale_details_visa_nofunds).testNotApproved("Auth"); Auth(sale_details_visa_fail_expiry).testNotApproved("Auth"); Auth(sale_details_master_success).testApproved("Auth"); Auth(sale_details_master_fail).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE sale_details_visa_success.ExtRef = "test" + ran.Next(); var sale_tr = Sale(sale_details_visa_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); // Credit // NOT IMPLEMENTED //VOID // NOT IMPLEMENTED }
public Transaction_Result Auth(Sale_Details details) { bool isApproved = false; bool isPending = false; bool failed = false; try { StripeConfiguration.SetApiKey(secretKey); if (details.ProviderToken == null || details.ProviderToken.Length <= 1) { try { StripeSource source = createStripeSource(details.CardNumber, details.CardExpiryYear, details.CardExpiryMonth, details.CardCCV, details.CardHolderName + " " + details.CardHolderLastName, false); details.ProviderToken = source.Id; } catch (StripeException e) { return(new Transaction_Result() { isApproved = false, hasServerError = true, ErrorCode = e.StripeError.Code, ErrorText = e.StripeError.Message, FullResponse = e.StripeError.StripeResponse.ResponseJson }); } } StripeCustomer customer = new StripeCustomer(); if (details.ProviderToken.IndexOf("cus") > -1) { customer = getTCGStripeCustomer(details.ProviderToken); } else { customer = createTCGStripeCustomer(new StorePaymentMethod_Details() { CardCVV = details.CardCCV, CardExpiryMonth = details.CardExpiryMonth, CardExpiryYear = details.CardExpiryYear, CardHolderName = details.CardHolderName, CardNumber = details.CardNumber, CardHolderSurname = details.CardHolderLastName }, details.ProviderToken); } details.ProviderToken = customer.DefaultSourceId; var chargeOptions = new StripeChargeCreateOptions() { Amount = calculateAmount(details.Amount, details.CurrencyCode), Currency = details.CurrencyCode.ToLower(), //SHOULD BE LOWER CASE Description = "Authentication for " + details.CustomerLastName + ", " + details.CustomerFirstName, SourceTokenOrExistingSourceId = details.ProviderToken, CustomerId = customer.Id, Capture = false }; var chargeService = new StripeChargeService(); StripeCharge charge = chargeService.Create(chargeOptions); string status = charge.Status; if (status.Contains("succeeded")) { isApproved = true; } else if (status.Contains("pending")) { isPending = true; } else { failed = true; } return(new Transaction_Result { isApproved = isApproved, hasServerError = failed, ErrorText = charge.FailureMessage, ResultText = charge.Status, isPending = isPending, ProviderToken = charge.Id, FullResponse = charge.StripeResponse.ResponseJson, ApprovalCode = charge.Status }); } catch (StripeException e) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = e.StripeError.Message, ProviderToken = null, ErrorCode = e.StripeError.Code, FullResponse = e.StripeError.StripeResponse.ResponseJson }); } }
public Transaction_Result Sale(Sale_Details details) { StripeConfiguration.SetApiKey(secretKey); //ONCE-OFF PAYMENT if (details.ProviderToken == null || details.ProviderToken.Length <= 1) { try { StripeSource source = createStripeSource(details.CardNumber, details.CardExpiryYear, details.CardExpiryMonth, details.CardCCV, details.CardHolderName + " " + details.CardHolderLastName, false); details.ProviderToken = source.Id; } catch (StripeException e) { return(new Transaction_Result() { isApproved = false, hasServerError = true, ErrorCode = e.StripeError.Code, ErrorText = e.StripeError.Message, FullResponse = e.StripeError.StripeResponse.ResponseJson }); } } //INITIATING A CHARGE var chargeOptions = new StripeChargeCreateOptions(); var chargeService = new StripeChargeService(); StripeCharge charge = new StripeCharge(); chargeOptions.Capture = true; bool isApproved = false; bool isPending = false; try { //IF A SOURCE TOKEN IS PROVIDED >>>> ONCE-OFF PAYMENT if (details.ProviderToken.IndexOf("src") > -1) { var sourceService = new StripeSourceService(); StripeSource source = sourceService.Get(details.ProviderToken); chargeOptions.SourceTokenOrExistingSourceId = source.Id; chargeOptions.Amount = calculateAmount(details.Amount, details.CurrencyCode); // $1.00 = 100 cents chargeOptions.Currency = details.CurrencyCode.ToLower(); //SHOULD BE LOWER CASE charge = chargeService.Create(chargeOptions); } //ONCE-OFF PAYMENT else if (details.ProviderToken.IndexOf("tok") > -1) { var sourceService = new StripeSourceService(); chargeOptions.SourceTokenOrExistingSourceId = details.ProviderToken; chargeOptions.Amount = calculateAmount(details.Amount, details.CurrencyCode); // $1.00 = 100 cents chargeOptions.Currency = details.CurrencyCode.ToLower(); //SHOULD BE LOWER CASE charge = chargeService.Create(chargeOptions); } //A REUSABLE CUSTOMER (OR A CARD) else if (details.ProviderToken.IndexOf("cus") > -1) { var customerService = new StripeCustomerService(); StripeCustomer customer = customerService.Get(details.ProviderToken); chargeOptions.SourceTokenOrExistingSourceId = customer.DefaultSourceId; chargeOptions.CustomerId = details.ProviderToken; chargeOptions.Amount = calculateAmount(details.Amount, details.CurrencyCode); // $1.00 = 100 cents chargeOptions.Currency = details.CurrencyCode.ToLower(); //SHOULD BE LOWER CASE charge = chargeService.Create(chargeOptions); } string status = charge.Status; if (status.Contains("succeeded")) { isApproved = true; } else if (status.Contains("pending")) { isPending = true; } return(new Transaction_Result { isApproved = isApproved, hasServerError = isPending, ErrorText = charge.FailureMessage, ErrorCode = charge.FailureCode, TransactionIndex = charge.BalanceTransactionId, ProviderToken = charge.Id, ResultText = charge.Status, FullResponse = charge.StripeResponse.ResponseJson }); } catch (StripeException e) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = e.StripeError.Message, ProviderToken = null, ErrorCode = e.StripeError.Code, FullResponse = e.StripeError.StripeResponse.ResponseJson }); } }
protected override void Seed(DatabaseContext context) { List <Brand> brandList = new List <Brand>(); List <MyUser> brandUsers = new List <MyUser>(); List <Product> productList = new List <Product>(); //Only one super user is creating MyUser SuperUser = new MyUser() { Name = "Emre", Surname = "Serbest", ActivateGuid = Guid.NewGuid(), Email = "*****@*****.**", IsActive = true, IsSuperUser = true, HasBrand = false, Username = "******", Password = "******", UserImage = FakeData.NetworkData.GetDomain(), }; context.MyUsers.Add(SuperUser); context.SaveChanges(); //Creating 7 Admins (Brand Users) for (int i = 0; i < 7; i++) { MyUser BrandUser = new MyUser() { Name = FakeData.NameData.GetFirstName(), Surname = FakeData.NameData.GetSurname(), Email = FakeData.NetworkData.GetEmail(), UserImage = FakeData.NetworkData.GetDomain(), ActivateGuid = Guid.NewGuid(), IsActive = true, IsSuperUser = false, HasBrand = true, Username = $"brandUser{i}", Password = "******" }; brandUsers.Add(BrandUser); context.MyUsers.Add(BrandUser); } context.SaveChanges(); //List<MyUser> users = context.MyUsers.ToList(); //Creating a Brand for the current BrandUser foreach (MyUser item in brandUsers) { Brand newBrand = new Brand() { BrandName = FakeData.NameData.GetCompanyName(), BrandImage = "BrandImage.jpg", Tag = FakeData.TextData.GetSentence(), MyUser = item, }; brandList.Add(newBrand); context.Brands.Add(newBrand); } context.SaveChanges(); // Creating categories(3,6) for the current Brand foreach (var itemBrand in brandList) { for (int a = 0; a < FakeData.NumberData.GetNumber(3, 6); a++) { Category category = new Category() { Title = FakeData.NameData.GetSurname(), Description = FakeData.TextData.GetSentence(), Brand = itemBrand, }; context.Categories.Add(category); } } context.SaveChanges(); List <string> sizeList = new List <string>(); sizeList.Add("XS"); sizeList.Add("S"); sizeList.Add("M"); sizeList.Add("L"); sizeList.Add("XL"); sizeList.Add("XXL"); List <string> colorList = new List <string>(); colorList.Add("black"); colorList.Add("white"); colorList.Add("pink"); colorList.Add("green"); colorList.Add("red"); //Creating 50 products for (int j = 0; j < 50; j++) { Product newProduct = new Product() { ProductName = FakeData.NameData.GetCompanyName(), ProductDescription = FakeData.TextData.GetSentence(), Brand = brandList[(FakeData.NumberData.GetNumber(0, brandList.Count - 1))], Size = sizeList[(FakeData.NumberData.GetNumber(0, sizeList.Count - 1))], Color = colorList[(FakeData.NumberData.GetNumber(0, colorList.Count - 1))], Stock = FakeData.NumberData.GetNumber(10, 100), Price = FakeData.NumberData.GetDouble(), DiscountPercentage = FakeData.NumberData.GetNumber(0, 10), }; productList.Add(newProduct); context.Product.Add(newProduct); } context.SaveChanges(); List <MyUser> standartUserList = new List <MyUser>(); for (int s = 0; s < 10; s++) { MyUser standartUser = new MyUser() { Name = FakeData.NameData.GetFirstName(), Surname = FakeData.NameData.GetSurname(), Email = FakeData.NetworkData.GetEmail(), UserImage = FakeData.NetworkData.GetDomain(), ActivateGuid = Guid.NewGuid(), IsActive = true, IsSuperUser = false, HasBrand = false, Username = $"standartUser{s}", Password = "******" }; standartUserList.Add(standartUser); context.MyUsers.Add(standartUser); context.SaveChanges(); //Creating Wishlist for standartusers randomly. if (FakeData.BooleanData.GetBoolean()) { Wishlist wishlist = new Wishlist() { IsPublic = FakeData.BooleanData.GetBoolean(), Title = FakeData.BooleanData.GetBoolean() ? "Specialized-WishList-Title" : "WishList", MyUser = standartUser, }; context.Wishlists.Add(wishlist); //Adding products to the wishlist randomly for (int i = 0; i < FakeData.NumberData.GetNumber(3, 10); i++) { Wishlist_Products wishlist_products = new Wishlist_Products() { Product = productList[FakeData.NumberData.GetNumber(0, 45)], Wishlist = wishlist }; context.WishlistProduct.Add(wishlist_products); } } //Creating Sale for standart users randomly if (FakeData.BooleanData.GetBoolean()) { for (int salecounter = 0; salecounter < FakeData.NumberData.GetNumber(3, 20); salecounter++) { double totalPrice = 0; Sale_Details saleDetail = new Sale_Details() { }; Sale sale = new Sale() { }; for (int saleDetailCounter = 0; saleDetailCounter < FakeData.NumberData.GetNumber(2, 8); saleDetailCounter++) { Product soldProduct = productList[FakeData.NumberData.GetNumber(0, 49)]; int tempQuantity = FakeData.NumberData.GetNumber(1, 4); double tempSubTotal = soldProduct.Price * tempQuantity; totalPrice += tempSubTotal; saleDetail.Quantity = tempQuantity; saleDetail.Product = soldProduct; saleDetail.InstantPrice = soldProduct.Price; saleDetail.SubTotal = tempSubTotal; saleDetail.Sale = sale; context.Sale_Details.Add(saleDetail); } sale.Customer = standartUser; sale.Date = FakeData.DateTimeData.GetDatetime(); sale.Time = FakeData.DateTimeData.GetDatetime(); sale.TotalPrice = totalPrice; sale.TotalVat = 18; context.Sales.Add(sale); } } } context.SaveChanges(); //Adding product images foreach (Product itemProduct in productList) { for (int i = 0; i < FakeData.NumberData.GetNumber(3, 7); i++) { Product_Image productImage = new Product_Image() { Url = $"picture{i}.jpg", Product = itemProduct, }; context.ProductImages.Add(productImage); //Adding comments Comment newComment = new Comment() { Text = FakeData.TextData.GetSentences(FakeData.NumberData.GetNumber(1, 3)), Owner = standartUserList[FakeData.NumberData.GetNumber(0, standartUserList.Count - 1)], Product = itemProduct, }; context.Comments.Add(newComment); //Creating likes Like like = new Like() { LikeOwner = standartUserList[FakeData.NumberData.GetNumber(0, standartUserList.Count - 1)], Product = itemProduct, }; context.Likes.Add(like); } } context.SaveChanges(); }
public void runTests() { var ran = new Random(); var sale_details_payu_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5471196125289392", CardExpiryMonth = 10, CardExpiryYear = 2020, CardCCV = "698", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_payu_expired = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5420287453066155", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "327", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; //var sale_details_payu_cvv = new Sale_Details { accountID = -1, customerID = -1, transactionID = -1, InvoiceNumber = "test1", CardNumber = "5471196125289392", CardExpiryMonth = 10, CardExpiryYear = 2020, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", CurrencyCodeNumeric = "840", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_payu_success).testApproved("Auth"); Auth(sale_details_payu_expired).testNotApproved("Auth"); //Auth(sale_details_payu_cvv).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE var sale_tr = Sale(sale_details_payu_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); // Credit // NOT IMPLEMENTED //VOID var auth_tr_void = Auth(sale_details_payu_success).testApproved("Auth"); var void_tr = Void(new Void_Details { Amount = 1, CurrencyCode = "ZAR", TransactionIndex = auth_tr_void.TransactionIndex }).testApproved("Void"); }
public Transaction_Result Verify(Sale_Details details) { throw new NotImplementedException(); }
public Transaction_Result Auth(Sale_Details details) { try { var gateway = newClient(); string cardtypestring = ((string)Enum.GetName(typeof(CardTypeEnum), details.CardType)).ToLower(); string cardtypeval = ""; //convert from string to mygate number switch (cardtypestring) { case ("american_express"): { cardtypeval = "1"; } break; case ("discover"): { cardtypeval = "2"; } break; case ("mastercard"): { cardtypeval = "3"; } break; case ("visa"): { cardtypeval = "4"; } break; case ("diners_club"): { cardtypeval = "5"; } break; default: { cardtypeval = "-1"; } break; } object[] arrResults = gateway.fProcess( "01", //GatewayID MerchantUID, //MerchantUID PaymentApplicationUID, //ApplicationUID "1", //1 Authorization Request //Action "", //TransactionIndex "Default", //Terminal Mode, //Mode details.ExtRef, //MerchantReference details.Amount.ToString("F2"), //Amount details.CurrencyCode, //Currency "", //CashBackAmount cardtypeval, //CardType "", //AccountType details.CardNumber, //CardNumber details.CustomerFirstName + " " + details.CustomerLastName, //CardHolder details.CardCCV, //CCVNumber details.CardExpiryMonth.ToString(), //ExpiryMonth details.CardExpiryYear.ToString(), //ExpiryYear "0", //Budget - 0 Straight, 1 budget "", //BudgetPeriod "", //AuthorizationNumber "", //PIN "", //DebugMode "", //eCommerceIndicator "", //verifiedByVisaXID "", //verifiedByVisaCAFF "", //secureCodeUCAF "", //UCI details.IPAddress, //IP Address details.CustomerCountryCodeTwoLetter, //Shipping Country Code, "" //Purchase Items ID ); var results = formatResult(arrResults); string cardnumber = details.CardNumber; Regex rgx = new Regex(@"[^\d]"); cardnumber = rgx.Replace(cardnumber, String.Empty); //removes dashes spaces, etc string last4digits = cardnumber.Substring(cardnumber.Length - 4); var stringwriter = new System.IO.StringWriter(); var xmlwriter = XmlWriter.Create(stringwriter, new XmlWriterSettings { NewLineHandling = NewLineHandling.None }); var serializer = new XmlSerializer(details.GetType()); serializer.Serialize(xmlwriter, details); var fullrequest = stringwriter.ToString(); if (cardnumber.Length > 0) //added if statement because crashes if string length 0 { fullrequest = fullrequest.Replace(cardnumber, last4digits); } if (details.CardCCV.Length > 0) //added if statement because crashes if string length 0 { fullrequest = fullrequest.Replace(details.CardCCV, "***"); } results.FullRequest = fullrequest; return(results); } catch (Exception ex) { return(new Transaction_Result { isApproved = false, hasServerError = true, ErrorText = ex.Message }); } }
public Transaction_Result Sale(Sale_Details details) { try { var Payment = PayPalDirect.Sale(ClientId, ClientSecret, new Sale_DetailsModel { accountID = details.accountID, transactionID = details.transactionID, appID = details.appID, Amount = details.Amount, CurrencyCode = details.CurrencyCode, CardNumber = details.CardNumber, CardType = details.CardType.ToString().ToLower(), CardCCV = details.CardCCV, CardExpiryMonth = details.CardExpiryMonth, CardExpiryYear = details.CardExpiryYear, CardHolderLastName = details.CardHolderLastName, CardHolderName = details.CardHolderName, CustomerCity = details.CustomerCity, CustomerCountry = details.CustomerCountry, CustomerCountryCodeThreeLetter = details.CustomerCountryCodeThreeLetter, CustomerCountryCodeTwoLetter = details.CustomerCountryCodeTwoLetter, CustomerCountryNumeric = details.CustomerCountryNumeric, CustomerEmail = details.CustomerEmail, CustomerFirstName = details.CustomerFirstName, CustomerIdentifier = details.CustomerIdentifier, CustomerLastName = details.CustomerLastName, CustomerPhone = details.CustomerPhone, CustomerZip = details.CustomerZip, CustomerState = details.CustomerState, CustomerAddress = details.CustomerAddress, ExtRef = details.ExtRef, ProductDescription = details.ProductDescription, ProviderPIN = details.ProviderPIN, ProviderToken = details.ProviderToken, IPAddress = details.IPAddress }); if (Payment.state == "approved") { return(new Transaction_Result { isApproved = true, ApprovalCode = "200", FullRequest = Payment.FullRequest, FullResponse = Payment.FullResponse, hasServerError = false, ErrorCode = "", ErrorText = "", ProviderToken = details.ProviderToken }); } else { return(new Transaction_Result { isApproved = false, FullRequest = Payment.FullRequest, FullResponse = Payment.FullResponse, hasServerError = true, ErrorCode = "", ErrorText = "" }); } } catch (WebException e) { return(new Transaction_Result { isApproved = false, FullRequest = "", FullResponse = e.ToString(), hasServerError = true, ErrorText = "An unknown error has occurred, return object not in correct format" }); } throw new NotImplementedException(); }
public void runTests() { var ran = new Random(); // classes var sale_details_visa_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4111 1111 1111 1111", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4242424242424242", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_visa_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "4111 1111 1111 1111", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.VISA, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5100080000000000", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5404000000000001", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_master_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "5100080000000000", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.MASTERCARD, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "370000200000000", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_fail = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "374200000000004", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_amex_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "370000200000000", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.AMERICAN_EXPRESS, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_diners_success = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "362135898197781", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; //mygate diners decline card does not work i.e. it approves //var sale_details_diners_fail = new Sale_Details { accountID = -1, customerID = -1, transactionID = -1, InvoiceNumber = "test1", CardNumber = "360569309025904", CardExpiryMonth = 11, CardExpiryYear = 2016, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", CurrencyCodeNumeric = "840", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; var sale_details_diners_fail_expiry = new Sale_Details { accountID = -1, appID = -1, transactionID = -1, ExtRef = "myref" + ran.Next(), CardNumber = "362135898197781", CardExpiryMonth = 11, CardExpiryYear = 2011, CardCCV = "123", CardType = CardTypeEnum.DINERS_CLUB, Amount = 1, CurrencyCode = "ZAR", IPAddress = "192.168.1.150", CustomerFirstName = "John", CustomerLastName = "Doe", CustomerAddress = "50 Pickering", CustomerCity = "Port Elizabeth", CustomerCountry = "South Africa", CustomerCountryCodeTwoLetter = "ZA", CustomerEmail = "*****@*****.**", CustomerPhone = "+27413655888", CustomerState = "EC", CustomerZip = "6045", }; LoginTest(); // Store Payment Method // Revoke Payment Method // 3D Secure // Verify Card // AUTH var auth_tr = Auth(sale_details_visa_success).testApproved("Auth"); Auth(sale_details_visa_fail).testNotApproved("Auth"); Auth(sale_details_visa_fail_expiry).testNotApproved("Auth"); Auth(sale_details_master_success).testApproved("Auth"); Auth(sale_details_master_fail).testNotApproved("Auth"); Auth(sale_details_master_fail_expiry).testNotApproved("Auth"); Auth(sale_details_amex_success).testApproved("Auth"); Auth(sale_details_amex_fail).testNotApproved("Auth"); Auth(sale_details_amex_fail_expiry).testNotApproved("Auth"); Auth(sale_details_diners_success).testApproved("Auth"); //Auth(sale_details_diners_fail).testNotApproved("Auth"); //-mygate diners decline card does not work i.e. it approves Auth(sale_details_diners_fail_expiry).testNotApproved("Auth"); //CAPTURE var capture_tr = Capture(new AuthCapture_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = auth_tr.TransactionIndex }).testApproved("Capture"); //SALE var sale_tr = Sale(sale_details_visa_success).testApproved("Sale"); //REFUND Transaction_Result refund_tr = Refund(new Refund_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = sale_tr.TransactionIndex }).testApproved("Refund"); //VOID var auth_tr_2 = Auth(sale_details_visa_success).testApproved("Auth Void"); var void_tr = Void(new Void_Details { Amount = 500, CurrencyCode = "ZAR", TransactionIndex = auth_tr_2.TransactionIndex }).testApproved("Void"); // Credit // NOT IMPLEMENTED }
public Transaction_Result Sale(Sale_Details details) { Result <Customer> resCustomer = null; Customer customer = null; try { if (details.ProviderToken == null || details.ProviderToken.Length <= 1) { resCustomer = createOnceOffCustomer(new Sale_Details() { CustomerFirstName = details.CustomerFirstName, CustomerLastName = details.CustomerLastName, CardCCV = details.CardCCV, CardNumber = details.CardNumber, CardExpiryYear = details.CardExpiryYear, CardExpiryMonth = details.CardExpiryMonth }); if (resCustomer.Target == null) { return(new Transaction_Result() { isApproved = false, ErrorText = resCustomer.Message, FullResponse = new JavaScriptSerializer().Serialize(resCustomer), }); } else { customer = resCustomer.Target; } } else { customer = gateway.Customer.Find(details.ProviderToken); } } catch (NotFoundException e) { return(new Transaction_Result() { isApproved = false, ErrorText = e.Message, ErrorCode = e.HResult + "" }); } try { Result <PaymentMethodNonce> resultPMN = gateway.PaymentMethodNonce.Create("A_PAYMENT_METHOD_TOKEN"); String nonce = resultPMN.Target.Nonce; var requestPMethod = new PaymentMethodRequest { CustomerId = customer.Id, PaymentMethodNonce = nonce }; Result <PaymentMethod> resultPM = gateway.PaymentMethod.Create(requestPMethod); var request = new TransactionRequest { Amount = details.Amount, CustomerId = customer.Id, PaymentMethodToken = customer.PaymentMethods[0].Token, Options = new TransactionOptionsRequest { SubmitForSettlement = true, } }; Result <Transaction> result = gateway.Transaction.Sale(request); return(new Transaction_Result() { isApproved = result.IsSuccess(), TransactionIndex = result.Transaction.Id, ResultText = result.Message, FullResponse = new JavaScriptSerializer().Serialize(result) }); } catch (NotFoundException e) { return(new Transaction_Result() { ErrorText = e.Message, isApproved = false, FullResponse = new JavaScriptSerializer().Serialize(e) }); } }