public string GetMerchantTranStatusXmlResponse(MerchantTransaction apiTResp) { string xml = ""; string status = apiTResp.Status.ToString(); if (!string.IsNullOrEmpty(status)) { // string TransactionID = DateTime.Now.ToString(DateTime.Now.Year + DateTime.Now.Month + DateTime.Now.Day + DateTime.Now.Hour + DateTime.Now.Minute + DateTime.Now.Second + DateTime.Now.Millisecond + DateTime.Now.Ticks + ""); xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<GetTransactionStatus>" + "<TransactionId>" + apiTResp.TranId + "</TransactionId>" + "<statusCode>" + apiTResp.Status + "</statusCode>" + "<statusDescription>" + apiTResp.StatusDescription + "</statusDescription>" + "</GetTransactionStatus>"; } else { xml = "<?xml version=\"1.0\" encoding=\"UTF-8\"?>" + "<GetTransactionStatus>" + "<TransactionId></TransactionId>" + "<statusCode>" + apiTResp.Status + "</statusCode>" + "<statusDescription>" + apiTResp.StatusDescription + "</statusDescription>" + "</GetTransactionStatus>"; } return(xml); }
public string GetMerchantTransactionDetailsApi(Request vmRequest) { ListenerResponse resp = new ListenerResponse(); MerchantChargeResponse chargeResp = new MerchantChargeResponse(); string xmlResponse = ""; resp = GetVendorCredentials(vmRequest.Username, vmRequest.Password); if (resp.StatusCode.Equals("0") && resp.StatusDescription.Equals("ValidVendor")) { if (IsValidDigitalSignature(vmRequest)) { mapiRequest.ReferenceId = vmRequest.TransactionId; mapiRequest.MerchantId = vmRequest.MerchantCode; mapiRequest.RequestAgent = "1"; mapiRequest.ApiUsername = apiUsername; mapiRequest.ApiPassword = apiPassword; mapiRequest.Channel = vmRequest.Channel; mtran = mapi.GetTransactionDetails(mapiRequest); if (!string.IsNullOrEmpty(mtran.Status.ToString())) { if (!(string.IsNullOrEmpty(mtran.Status.ToString()))) { xmlResponse = GetMerchantTranStatusXmlResponse(mtran); } else { mtran.Status = "201"; mtran.StatusDescription = "Transaction Not Found"; xmlResponse = GetMerchantTranStatusXmlResponse(mtran); } } else { mtran.Status = mtran.Status; mtran.StatusDescription = mtran.StatusDescription; xmlResponse = GetMerchantTranStatusXmlResponse(mtran); } } else { apiResp.Status = "30"; apiResp.StatusDescription = "Invalid Digital Signature"; xmlResponse = GetMerchantPaymentXmlResponse(apiResp); } } else { apiResp.Status = "100"; apiResp.StatusDescription = "Invalid Vendor Credentials"; xmlResponse = GetMerchantPaymentXmlResponse(apiResp); } return(xmlResponse); }
//public MerchantDTO MerchantTransaction(Models.Input<QRPayRequest> obj, string refer, string code) //{ // PayitMerchantsnWalletsEntities db = new PayitMerchantsnWalletsEntities(); // Merchant merchant = new Merchant(); // MerchantDTO dto = new MerchantDTO(); // MerchantOrder order = new MerchantOrder(); // MerchantTransaction merchantTran = new MerchantTransaction(); // CustomerWalletTransaction CusWL = new CustomerWalletTransaction(); // var mDetails = (from a in db.Merchants // where a.Name == obj.input.QR.name && a.Code == code // select a).FirstOrDefault(); // try // { // if (mDetails != null) // { // merchantTran.Amount = string.IsNullOrEmpty(obj.input.amount) ? 0 : Convert.ToDouble(obj.input.amount); // merchantTran.MerchantID = mDetails.ID; // merchantTran.Reference = refer; // merchantTran.Status = true; // merchantTran.TransactionDate = DateTime.Now; // db.MerchantTransactions.Add(merchantTran); // db.SaveChanges(); // order.Amount = merchantTran.Amount; // order.MerchantUserID = Convert.ToInt32(obj.input.QR.merchantuserid); // order.Description = "QRPAYMENT"; // order.isPaid = true; // //order.MerchantUserID = // order.MobileNo = mDetails.PhoneNo; // order.PaymentReference = merchantTran.Reference; // order.ProcessDate = DateTime.Now; // order.Reference = merchantTran.Reference; // order.Status = true; // order.StatusDescription = "WalletPay"; // order.TranDate = DateTime.Now; // db.MerchantOrders.Add(order); // db.SaveChanges(); // merchant.Amount = mDetails.Amount + merchantTran.Amount; // db.SaveChanges(); // dto.Amount = mDetails.Amount.ToString(); // dto.Code = mDetails.Code.ToString(); // dto.CountryCode = mDetails.CountryCode; // dto.Name = mDetails.Name; // } // } // catch // { // dto.Name = ""; // dto.Amount = ""; // dto.Code = ""; // dto.CountryCode = ""; // } // return dto; //} public MerchantDTO MerchantTransaction(Models.Input <QROrderRequest> obj, string refer, string code) { PayitMerchantsnWalletsEntities db = new PayitMerchantsnWalletsEntities(); Merchant merchant = new Merchant(); MerchantDTO dto = new MerchantDTO(); MerchantOrder order = new MerchantOrder(); //QROrderItem qrord = new QROrderItem(); QROrderRequest qrord = new QROrderRequest(); MerchantOrderItem ordItem = new MerchantOrderItem(); MerchantTransaction merchantTran = new MerchantTransaction(); CustomerWalletTransaction CusWL = new CustomerWalletTransaction(); var mDetails = (from a in db.Merchants where a.Name == obj.input.QR.name && a.Code == code select a).FirstOrDefault(); try { if (mDetails != null) { merchantTran.Amount = string.IsNullOrEmpty(obj.input.amount) ? 0 : Convert.ToDouble(obj.input.amount); merchantTran.MerchantID = mDetails.ID; merchantTran.Reference = refer; merchantTran.Status = true; merchantTran.TransactionDate = DateTime.Now; db.MerchantTransactions.Add(merchantTran); db.SaveChanges(); order.Amount = merchantTran.Amount; order.Description = "QRPAYMENT"; order.isPaid = true; order.MerchantUserID = Convert.ToInt32(obj.input.QR.merchantuserid); order.MobileNo = mDetails.PhoneNo; order.PaymentReference = merchantTran.Reference; order.ProcessDate = DateTime.Now; order.Reference = merchantTran.Reference; order.Status = true; order.StatusDescription = "WalletPay"; order.TranDate = DateTime.Now; db.MerchantOrders.Add(order); db.SaveChanges(); foreach (var row in obj.input.QR.orderitems) { double total = Convert.ToInt32(row.price) * Convert.ToInt32(row.quantity); ordItem.MerchantOrderID = order.ID; ordItem.MerchantItemID = Convert.ToInt32(row.itemid); ordItem.Quantity = Convert.ToInt32(row.quantity); ordItem.UnitPrice = Convert.ToDouble(row.price); ordItem.ItemAmount = total; ordItem.CreatedDate = DateTime.Now; ordItem.Status = true; db.MerchantOrderItems.Add(ordItem); db.SaveChanges(); } merchant.Amount = mDetails.Amount + merchantTran.Amount; db.SaveChanges(); dto.Amount = mDetails.Amount.ToString(); dto.Code = mDetails.Code.ToString(); dto.CountryCode = mDetails.CountryCode; dto.Name = mDetails.Name; } } catch { dto.Name = ""; dto.Amount = ""; dto.Code = ""; dto.CountryCode = ""; } return(dto); }