public Card(string chName, RealExCardType type, string number, string expDate, Cvn cvn, string issueNo = null) { ChName = chName; Type = type; Number = number; IssueNo = issueNo; Cvn = cvn; ExpDate = expDate; }
public void ThreeDSecureSigRequestXmlWithSettersTest() { Card card = new Card(); card.ExpiryDate = sx.CARD_EXPIRY_DATE; card.Number = sx.CARD_NUMBER; card.Type = CardType.VISA; card.CardHolderName = sx.CARD_HOLDER_NAME; card.IssueNumber = sx.CARD_ISSUE_NUMBER; Cvn cvn = new Cvn(); cvn.Number = sx.CARD_CVN_NUMBER; cvn.PresenceIndicator = sx.CARD_CVN_PRESENCE; card.Cvn = cvn; ThreeDSecureRequest request = new ThreeDSecureRequest(); request.Account = sx.ACCOUNT; request.MerchantId = sx.MERCHANT_ID; RxpAmount amount = new RxpAmount(); amount.Amount = sx.AMOUNT; amount.Currency = sx.CURRENCY; request.Amount = amount; request.Card = card; request.Timestamp = sx.TIMESTAMP; request.OrderId = sx.ORDER_ID; request.Pares = sx.THREE_D_SECURE_PARES; request.Hash = sx.THREE_D_SECURE_VERIFY_SIG_REQUEST_HASH; request.Type = ThreeDSecureType.VERIFY_SIG; //convert to XML string xml = request.ToXml(); //Convert from XML back to PaymentRequest ThreeDSecureRequest fromXmlRequest = new ThreeDSecureRequest().FromXml(xml); sx.checkUnmarshalledVerifySigRequest(fromXmlRequest); }
public void PaymentRequestXmlHelpersTest() { var cvn = new Cvn() .AddNumber(sx.CARD_CVN_NUMBER) .AddPresenceIndicator(sx.CARD_CVN_PRESENCE); var card = new Card() .AddExpiryDate(sx.CARD_EXPIRY_DATE) .AddNumber(sx.CARD_NUMBER) .AddType(CardType.VISA) .AddCardHolderName(sx.CARD_HOLDER_NAME) .AddIssueNumber(sx.CARD_ISSUE_NUMBER); card.Cvn = cvn; var tssInfo = new TssInfo() .AddCustomerNumber(sx.CUSTOMER_NUMBER) .AddProductId(sx.PRODUCT_ID) .AddVariableReference(sx.VARIABLE_REFERENCE) .AddCustomerIpAddress(sx.CUSTOMER_IP) .AddAddress(new Address() .AddType(sx.ADDRESS_TYPE_BUSINESS) .AddCode(sx.ADDRESS_CODE_BUSINESS) .AddCountry(sx.ADDRESS_COUNTRY_BUSINESS)) .AddAddress(new Address() .AddType(sx.ADDRESS_TYPE_SHIPPING) .AddCode(sx.ADDRESS_CODE_SHIPPING) .AddCountry(sx.ADDRESS_COUNTRY_SHIPPING)); var request = new PaymentRequest() .AddAccount(sx.ACCOUNT) .AddMerchantId(sx.MERCHANT_ID) .AddType(PaymentType.AUTH) .AddAmount(sx.AMOUNT) .AddCurrency(sx.CURRENCY) .AddCard(card) .AddAutoSettle(sx.AUTO_SETTLE_FLAG) .AddTimestamp(sx.TIMESTAMP) .AddChannel(sx.CHANNEL) .AddOrderId(sx.ORDER_ID) .AddHash(sx.REQUEST_HASH) .AddComment(sx.COMMENT1) .AddComment(sx.COMMENT2) .AddPaymentsReference(sx.PASREF) .AddAuthCode(sx.AUTH_CODE) .AddRefundHash(sx.REFUND_HASH) .AddFraudFilter(sx.FRAUD_FILTER) .AddRecurring(new Recurring() .AddFlag(sx.RECURRING_FLAG) .AddSequence(sx.RECURRING_SEQUENCE) .AddType(sx.RECURRING_TYPE)) .AddTssInfo(tssInfo) .AddMpi(new Mpi() .AddCavv(sx.THREE_D_SECURE_CAVV) .AddXid(sx.THREE_D_SECURE_XID) .AddEci(sx.THREE_D_SECURE_ECI)); string xml = request.ToXml(); PaymentRequest fromXmlRequest = new PaymentRequest().FromXml(xml); sx.checkUnmarshalledPaymentRequest(fromXmlRequest); }
public void PaymentRequestXmlSettersTest() { Card card = new Card(); card.ExpiryDate = sx.CARD_EXPIRY_DATE; card.Number = sx.CARD_NUMBER; card.Type = CardType.VISA; card.CardHolderName = sx.CARD_HOLDER_NAME; card.IssueNumber = sx.CARD_ISSUE_NUMBER; Cvn cvn = new Cvn(); cvn.Number = sx.CARD_CVN_NUMBER; cvn.PresenceIndicator = sx.CARD_CVN_PRESENCE; card.Cvn = cvn; PaymentRequest request = new PaymentRequest(); request.Account = sx.ACCOUNT; request.MerchantId = sx.MERCHANT_ID; request.Type = PaymentType.AUTH; RxpAmount amount = new RxpAmount(); amount.Amount = sx.AMOUNT; amount.Currency = sx.CURRENCY; request.Amount = amount; AutoSettle autoSettle = new AutoSettle(); autoSettle.Flag = sx.AUTO_SETTLE_FLAG; request.AutoSettle = autoSettle; request.Card = card; request.Timestamp = sx.TIMESTAMP; request.Channel = sx.CHANNEL; request.OrderId = sx.ORDER_ID; request.Hash = sx.REQUEST_HASH; List <RxpComment> comments = new List <RxpComment>(); RxpComment comment = new RxpComment(); comment.Id = 1; comment.Comment = sx.COMMENT1; comments.Add(comment); comment = new RxpComment(); comment.Id = 2; comment.Comment = sx.COMMENT2; comments.Add(comment); request.Comments = comments; request.PaymentsReference = sx.PASREF; request.AuthCode = sx.AUTH_CODE; request.RefundHash = sx.REFUND_HASH; request.FraudFilter = sx.FRAUD_FILTER; Recurring recurring = new Recurring(); recurring.Flag = sx.RECURRING_FLAG; recurring.Sequence = sx.RECURRING_SEQUENCE; recurring.Type = sx.RECURRING_TYPE; request.Recurring = recurring; TssInfo tssInfo = new TssInfo(); tssInfo.CustomerNumber = sx.CUSTOMER_NUMBER; tssInfo.ProductId = sx.PRODUCT_ID; tssInfo.VariableReference = sx.VARIABLE_REFERENCE; tssInfo.CustomerIpAddress = sx.CUSTOMER_IP; List <Address> addresses = new List <Address>(); Address address = new Address(); address.Type = sx.ADDRESS_TYPE_BUSINESS; address.Code = sx.ADDRESS_CODE_BUSINESS; address.Country = sx.ADDRESS_COUNTRY_BUSINESS; addresses.Add(address); address = new Address(); address.Type = sx.ADDRESS_TYPE_SHIPPING; address.Code = sx.ADDRESS_CODE_SHIPPING; address.Country = sx.ADDRESS_COUNTRY_SHIPPING; addresses.Add(address); tssInfo.Addresses = addresses; request.TssInfo = tssInfo; Mpi mpi = new Mpi(); mpi.Cavv = sx.THREE_D_SECURE_CAVV; mpi.Xid = sx.THREE_D_SECURE_XID; mpi.Eci = sx.THREE_D_SECURE_ECI; request.Mpi = mpi; //convert to XML string xml = request.ToXml(); //Convert from XML back to PaymentRequest PaymentRequest fromXmlRequest = new PaymentRequest().FromXml(xml); sx.checkUnmarshalledPaymentRequest(fromXmlRequest); }
public async Task <object> addcardAsync(Payvisa visa) { if (!ModelState.IsValid) { return(BadRequest(ModelState)); } try { string Card = visa.CARD_NUMBER; string Expire = visa.EXPIRES; string cvv = visa.CVV_NUM; string Name = visa.CH_NAME; string MerchantID = "globaltmstest"; string Secret = "secret"; string OrderRef = visa.ORDER_REF_NO; long Userid = visa.USER_ID; //await Task.Delay(10000); //TB_ECOMM_ORDER order = await entity.TB_ECOMM_ORDER.FindAsync(OrderID); string Amount = Convert.ToInt32(visa.AMOUNT).ToString(); string Cur = "EUR"; DateTime DateTime = Convert.ToDateTime(visa.DATE_TIME); string TimeStamp = CreateTimeStamp(DateTime).Result.Remove(14); string hashFormat = TimeStamp + "." + MerchantID + "." + OrderRef + "." + Amount + "." + Cur + "." + Card; string sha1hash = await GenerateSHA1HASH(hashFormat, Secret); //Generating XML Payment payment = new Payment(); payment.Type = "auth"; payment.Timestamp = TimeStamp; payment.Merchantid = MerchantID; payment.Orderid = OrderRef; Amount amount = new Amount(); amount.Currency = Cur; amount.Text = Amount; payment.Amount = amount; Card card = new Card(); card.Number = Card; card.Expdate = Expire; card.Chname = Name; card.Type = "VISA"; payment.Card = card; Cvn cvn = new Cvn(); cvn.CNumber = cvv; cvn.Presind = "1"; payment.Card.Cvn = cvn; Autosettle autosettle = new Autosettle(); autosettle.Flag = "1"; payment.Autosettle = autosettle; payment.Sha1hash = sha1hash; string xml = await GetXMLFromObject(payment); XmlDocument doc = new XmlDocument(); doc.LoadXml(xml); //Api call for request payment var uri = new Uri(string.Format("https://remote.sandbox.addonpayments.com/remote", string.Empty)); var content = new StringContent(xml, Encoding.UTF8, "application/xml"); var client = new HttpClient(); HttpResponseMessage response = null; response = await client.PostAsync(uri, content); var contents = await response.Content.ReadAsStringAsync(); XmlSerializer serializer = new XmlSerializer(typeof(Response), new XmlRootAttribute("response")); StringReader stringReader = new StringReader(contents); Response re = (Response)serializer.Deserialize(stringReader); TB_ECOMM_PAYMENT_STATUS_DETAILS PS = new TB_ECOMM_PAYMENT_STATUS_DETAILS(); if (re.Result == "00") { PS.ACCOUNT = re.Account; PS.AUTH_CODE = re.Authcode; PS.AVS_ADDRESS_RESPONSE = re.Avsaddressresponse; PS.BANK_COUNTRY = re.Cardissuer.Country; PS.BANK_NAME = re.Cardissuer.Bank; PS.BATCH_ID = re.Batchid; PS.COUNTRY_CODE = re.Cardissuer.Countrycode; PS.CREATED_DATE = DateTime.Now; PS.CVN_RESULT = re.Cvnresult; PS.MERCHANT_ID = re.Merchantid; PS.MESSAGE = re.Message; PS.MODIFIED_DATE = DateTime.Now; PS.ORDER_ID = re.Orderid; PS.PAYMENT_REF_NUMBER = re.Pasref; PS.REGION = re.Cardissuer.Region; PS.RESULT = re.Result; PS.SHA_HASH = re.Sha1hash; PS.TIMESTAMP = re.Timestamp; PS.USER_ID = Userid; entity.TB_ECOMM_PAYMENT_STATUS_DETAILS.Add(PS); await entity.SaveChangesAsync(); TB_ECOMM_ORDER TO = (from o in entity.TB_ECOMM_ORDER where o.ORDER_REF_NO == re.Orderid select o).FirstOrDefault(); //TB_ECOMM_ORDER TO = entity.TB_ECOMM_ORDER.Find(Convert.ToInt64(visa.ORDER_REF_NO)); TO.ORDER_STATUS = "Paid"; await this.entity.SaveChangesAsync(); return(new PaymentResponse { Message = "Transaction Success", ORDER_REF_NO = OrderRef.ToString(), STATUS = re.Result }); } else if (re.Result == "101") { PS.ACCOUNT = re.Account; PS.AUTH_CODE = re.Authcode; PS.AVS_ADDRESS_RESPONSE = re.Avsaddressresponse; PS.BANK_COUNTRY = re.Cardissuer.Country; PS.BANK_NAME = re.Cardissuer.Bank; PS.BATCH_ID = re.Batchid; PS.COUNTRY_CODE = re.Cardissuer.Countrycode; PS.CREATED_DATE = DateTime.Now; PS.CVN_RESULT = re.Cvnresult; PS.MERCHANT_ID = re.Merchantid; PS.MESSAGE = re.Message; PS.MODIFIED_DATE = DateTime.Now; PS.ORDER_ID = re.Orderid; PS.PAYMENT_REF_NUMBER = re.Pasref; PS.REGION = re.Cardissuer.Region; PS.RESULT = re.Result; PS.SHA_HASH = re.Sha1hash; PS.TIMESTAMP = re.Timestamp; PS.USER_ID = Userid; entity.TB_ECOMM_PAYMENT_STATUS_DETAILS.Add(PS); await entity.SaveChangesAsync(); TB_ECOMM_ORDER TO = (from o in entity.TB_ECOMM_ORDER where o.ORDER_REF_NO == re.Orderid select o).FirstOrDefault(); TO.ORDER_STATUS = "Pay Declined"; await this.entity.SaveChangesAsync(); return(new PaymentResponse { Message = "Transaction Declined", ORDER_REF_NO = OrderRef.ToString(), STATUS = re.Result }); } else { TB_ECOMM_ORDER TO = (from o in entity.TB_ECOMM_ORDER where o.ORDER_REF_NO == re.Orderid select o).FirstOrDefault(); TO.ORDER_STATUS = "Pay Failed"; await this.entity.SaveChangesAsync(); return(new PaymentResponse { Message = "Transaction Failed", ORDER_REF_NO = OrderRef.ToString(), STATUS = re.Result }); //return contents; } } catch (DbEntityValidationException ex) { foreach (var entityValidationErrors in ex.EntityValidationErrors) { foreach (var validationError in entityValidationErrors.ValidationErrors) { throw new Exception("Error" + validationError.ErrorMessage); //return new ApiResponse { Status = "Error", Message = validationError.ErrorMessage }; } throw new Exception("Error" + entityValidationErrors.ValidationErrors); } throw new Exception("Error" + ex.Message); } }