Exemplo n.º 1
0
        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);
        }
Exemplo n.º 2
0
        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);
        }