private void LoadCurrentUser()
 {
     UserIdField.Value        = CurrentOrder.UserID;
     EmailAddressTextBox.Text = CurrentOrder.UserEmail;
     BillToAddress.LoadFromAddress(CurrentOrder.BillingAddress);
     ShipToAddress.LoadFromAddress(CurrentOrder.ShippingAddress);
 }
Beispiel #2
0
        private Dictionary <string, string> Validate()
        {
            Dictionary <string, string> ValErrors = new Dictionary <string, string>();

            if (VendorID <= 0)
            {
                ValErrors.Add("Vendor", "Vendor selection is required.");
            }
            if (OrganizationID <= 0)
            {
                ValErrors.Add("Organization ID", "Organization ID is required.");
            }
            if (StatusLUID <= 0 || GetPurchaseOrderStatuses(true).Where(x => x.Id == StatusLUID) == null)
            {
                ValErrors.Add("Status", "Status is not vaild.");
            }
            if (PurchaseOrderTypeLUID <= 0 || GetPurchaseOrderTypes(true).Where(x => x.Id == PurchaseOrderTypeLUID) == null)
            {
                ValErrors.Add("Purchase Order Type", "Purchase Order Type is required.");
            }

            if (ShipToAddress != null && !ShipToAddress.IsValid())
            {
                ValErrors.Add("Ship To Address", "Ship To Address is not valid.");
            }

            if (DefaultPaymentMethodID > 0 && DefaultPaymentMethod.PaymentMethodID <= 0)
            {
                ValErrors.Add("Payment Method", "Default Payment Method is invalid.");
            }

            return(ValErrors);
        }
        private void SaveInfoToOrder(bool savePaymentData)
        {
            if (chkBillToSame.Checked)
            {
                BillToAddress.LoadFromAddress(ShipToAddress.GetAsAddress());
            }

            // Save Information to Cart in Case Save as Order Fails
            CurrentOrder.BillingAddress  = BillToAddress.GetAsAddress();
            CurrentOrder.ShippingAddress = ShipToAddress.GetAsAddress();
            TagOrderWithUser();

            CurrentOrder.UserEmail    = EmailAddressTextBox.Text;
            CurrentOrder.Instructions = txtInstructions.Text.Trim();

            // Save Shipping Selection
            var r = FindSelectedRate(ShippingRatesList.SelectedValue, CurrentOrder);

            if (r != null)
            {
                HccApp.OrderServices.OrdersRequestShippingMethodByUniqueKey(r.UniqueKey, CurrentOrder);
            }

            if (savePaymentData)
            {
                // Save Payment Information
                SavePaymentInfo();
            }

            HccApp.CalculateOrderAndSave(CurrentOrder);
        }
Beispiel #4
0
            public override XElement GenerateAddRq()
            {
                XElement Add = new XElement("CustomerAdd");

                Add.Add(Name?.ToQBXML(nameof(Name)));
                Add.Add(IsActive.ToQBXML(nameof(IsActive)));
                Add.Add(ClassRef?.ToQBXML(nameof(ClassRef)));
                Add.Add(ParentRef?.ToQBXML(nameof(ParentRef)));
                Add.Add(CompanyName?.ToQBXML(nameof(CompanyName)));
                Add.Add(Salutation?.ToQBXML(nameof(Salutation)));
                Add.Add(FirstName?.ToQBXML(nameof(FirstName)));
                Add.Add(MiddleName?.ToQBXML(nameof(MiddleName)));
                Add.Add(LastName?.ToQBXML(nameof(LastName)));
                Add.Add(JobTitle?.ToQBXML(nameof(JobTitle)));
                Add.Add(BillAddress?.ToQBXML(nameof(BillAddress)));
                Add.Add(ShipAddress?.ToQBXML(nameof(ShipAddress)));
                Add.Add(ShipToAddress?.ToQBXML(nameof(ShipToAddress)));
                Add.Add(Phone?.ToQBXML(nameof(Phone)));
                Add.Add(AltPhone?.ToQBXML(nameof(AltPhone)));
                Add.Add(Fax?.ToQBXML(nameof(Fax)));
                Add.Add(Email?.ToQBXML(nameof(Email)));
                Add.Add(Cc?.ToQBXML(nameof(Cc)));
                Add.Add(Contact?.ToQBXML(nameof(Contact)));
                Add.Add(AltContact?.ToQBXML(nameof(AltContact)));
                Add.Add(AdditionalContactRef?.ToQBXML(nameof(AdditionalContactRef)));
                Add.Add(Contacts?.ToQBXML <Contacts>(nameof(Contacts)));
                Add.Add(CustomerTypeRef?.ToQBXML(nameof(CustomerTypeRef)));
                Add.Add(TermsRef?.ToQBXML(nameof(TermsRef)));
                Add.Add(SalesRepRef?.ToQBXML(nameof(SalesRepRef)));
                Add.Add(OpenBalance?.ToQBXML(nameof(OpenBalance)));
                Add.Add(OpenBalanceDate?.ToQBXML(nameof(OpenBalanceDate)));
                Add.Add(SalesTaxCodeRef?.ToQBXML(nameof(SalesTaxCodeRef)));
                Add.Add(ItemSalesTaxRef?.ToQBXML(nameof(ItemSalesTaxRef)));
                Add.Add(ResaleNumber?.ToQBXML(nameof(ResaleNumber)));
                Add.Add(AccountNumber?.ToQBXML(nameof(AccountNumber)));
                Add.Add(CreditLimit?.ToQBXML(nameof(CreditLimit)));
                Add.Add(PreferredPaymentMethodRef?.ToQBXML(nameof(PreferredPaymentMethodRef)));
                Add.Add(CreditCardInfo?.ToQBXML(nameof(CreditCardInfo)));
                Add.Add(JobStatus.ToQBXML(nameof(JobStatus)));
                Add.Add(JobStartDate?.ToQBXML(nameof(JobStartDate)));
                Add.Add(JobProjectedEndDate?.ToQBXML(nameof(JobProjectedEndDate)));
                Add.Add(JobEndDate?.ToQBXML(nameof(JobEndDate)));
                Add.Add(JobDesc?.ToQBXML(nameof(JobDesc)));
                Add.Add(JobTypeRef?.ToQBXML(nameof(JobTypeRef)));
                Add.Add(Notes?.ToQBXML(nameof(Notes)));
                Add.Add(AdditionalNotes?.ToQBXML(nameof(AdditionalNotes)));
                Add.Add(PreferredDeliveryMethod.ToQBXML(nameof(PreferredDeliveryMethod)));
                Add.Add(PriceLevelRef?.ToQBXML(nameof(PriceLevelRef)));
                Add.Add(ExternalGUID?.ToQBXML(nameof(ExternalGUID)));
                Add.Add(CurrencyRef?.ToQBXML(nameof(CurrencyRef)));

                XElement AddRq = new XElement("CustomerAddRq");

                AddRq.Add(Add);
                AddRq.Add(IncludeRetElement?.ToQBXML(nameof(IncludeRetElement)));

                return(AddRq);
            }
 protected void chkBillToSame_CheckedChanged(object sender, EventArgs e)
 {
     if (chkBillToSame.Checked)
     {
         BillToAddress.LoadFromAddress(ShipToAddress.GetAsAddress());
         pnlBillTo.Visible = false;
     }
     else
     {
         pnlBillTo.Visible = true;
     }
     LoadShippingMethods();
 }
        private void TagOrderWithUser(CustomerAccount account)
        {
            var u = account;

            if (u != null)
            {
                if (u.Bvin != string.Empty)
                {
                    UserIdField.Value   = u.Bvin;
                    CurrentOrder.UserID = u.Bvin;
                    u.CheckIfNewAddressAndAddNoUpdate(BillToAddress.GetAsAddress());
                    u.CheckIfNewAddressAndAddNoUpdate(ShipToAddress.GetAsAddress());
                    HccApp.MembershipServices.Customers.Update(u);
                }
            }
        }
        protected void UserSelected(UserSelectedEventArgs args)
        {
            if (args.UserAccount == null)
            {
                return;
            }

            UserIdField.Value = args.UserAccount.Bvin;

            CurrentOrder.UserID = args.UserAccount.Bvin;

            HccApp.OrderServices.Orders.Update(CurrentOrder);

            BillToAddress.LoadFromAddress(args.UserAccount.BillingAddress);
            ShipToAddress.LoadFromAddress(args.UserAccount.ShippingAddress);
            if (BillToAddress.FirstName == string.Empty)
            {
                BillToAddress.FirstName = args.UserAccount.FirstName;
            }
            if (BillToAddress.LastName == string.Empty)
            {
                BillToAddress.LastName = args.UserAccount.LastName;
            }
            if (ShipToAddress.FirstName == string.Empty)
            {
                ShipToAddress.FirstName = args.UserAccount.FirstName;
            }
            if (ShipToAddress.LastName == string.Empty)
            {
                ShipToAddress.LastName = args.UserAccount.LastName;
            }

            EmailAddressTextBox.Text = args.UserAccount.Email;


            LoadShippingMethods();

            CurrentOrder.UserEmail       = EmailAddressTextBox.Text;
            CurrentOrder.BillingAddress  = BillToAddress.GetAsAddress();
            CurrentOrder.ShippingAddress = ShipToAddress.GetAsAddress();
            HccApp.OrderServices.Orders.Update(CurrentOrder);
        }
Beispiel #8
0
 /// <summary>
 /// Validate the object.
 /// </summary>
 /// <exception cref="ValidationException">
 /// Thrown if validation fails
 /// </exception>
 public virtual void Validate()
 {
     if (ShipmentId == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "ShipmentId");
     }
     if (DestinationFulfillmentCenterId == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "DestinationFulfillmentCenterId");
     }
     if (ShipToAddress == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "ShipToAddress");
     }
     if (LabelPrepType == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "LabelPrepType");
     }
     if (Items == null)
     {
         throw new ValidationException(ValidationRules.CannotBeNull, "Items");
     }
     if (ShipToAddress != null)
     {
         ShipToAddress.Validate();
     }
     if (Items != null)
     {
         foreach (var element in Items)
         {
             if (element != null)
             {
                 element.Validate();
             }
         }
     }
     if (EstimatedBoxContentsFee != null)
     {
         EstimatedBoxContentsFee.Validate();
     }
 }
Beispiel #9
0
        public void Save(string uid)
        {
            try
            {
                if (string.IsNullOrEmpty(uid))
                {
                    throw new ArgumentNullException("UID", "User Name is required.");
                }
                Dictionary <string, string> ValErrors = Validate();
                if (ValErrors.Count > 0)
                {
                    throw new RequisitionNotValidException("Purchase Order is not valid.", ValErrors);
                }

                using (PurchasingContext Context = ContextHelper.GetDBContext())
                {
                    Enums.HistoryType ChangeType;
                    PurchaseOrder     Original = null;

                    PurchaseOrderData data = null;
                    if (PurchaseOrderID > 0)
                    {
                        ChangeType = Enums.HistoryType.UPDATE;
                        data       = Context.PurchaseOrderDatas.FirstOrDefault(x => x.purchase_order_id == PurchaseOrderID);
                        Original   = new PurchaseOrder(data);
                    }
                    else
                    {
                        ChangeType        = Enums.HistoryType.ADD;
                        data              = new PurchaseOrderData();
                        data.created_by   = uid;
                        data.date_created = DateTime.Now;
                    }

                    data.vendor_id = VendorID;
                    data.purchase_order_type_luid = PurchaseOrderTypeLUID;
                    data.organization_id          = OrganizationID;

                    if (DateOrdered > DateTime.MinValue)
                    {
                        data.date_ordered = DateOrdered;
                    }
                    else
                    {
                        data.date_ordered = null;
                    }

                    if (OrderedByID > 0)
                    {
                        data.ordered_by = OrderedByID;
                    }
                    else
                    {
                        data.ordered_by = null;
                    }

                    data.status_luid = StatusLUID;

                    if (DateReceived > DateTime.MinValue)
                    {
                        data.date_received = DateReceived;
                    }
                    else
                    {
                        data.date_received = null;
                    }

                    if (DateClosed > DateTime.MinValue)
                    {
                        data.date_closed = DateClosed;
                    }
                    else
                    {
                        data.date_closed = null;
                    }

                    if (!String.IsNullOrEmpty(ShipToName))
                    {
                        data.ship_to_name = ShipToName;
                    }
                    else
                    {
                        data.ship_to_name = null;
                    }

                    if (!String.IsNullOrEmpty(ShipToAttn))
                    {
                        data.ship_to_attention = ShipToAttn;
                    }
                    else
                    {
                        data.ship_to_attention = null;
                    }

                    if (ShipToAddress != null && ShipToAddress.IsValid())
                    {
                        data.ship_to_address = ShipToAddress.ToArenaFormat();
                    }
                    else
                    {
                        data.ship_to_address = null;
                    }

                    if (ShippingCharge != 0)
                    {
                        data.shipping_charge = ShippingCharge;
                    }
                    else
                    {
                        data.shipping_charge = null;
                    }

                    if (OtherCharge != 0)
                    {
                        data.other_charge = OtherCharge;
                    }
                    else
                    {
                        data.other_charge = null;
                    }

                    if (DefaultPaymentMethodID > 0)
                    {
                        data.default_payment_method_id = DefaultPaymentMethodID;
                    }
                    else
                    {
                        data.default_payment_method_id = null;
                    }

                    data.modified_by   = uid;
                    data.date_modified = DateTime.Now;
                    data.active        = Active;

                    if (!String.IsNullOrEmpty(Terms))
                    {
                        data.terms = Terms.Trim();
                    }
                    else
                    {
                        data.terms = null;
                    }

                    data.has_been_billed = HasBeenBilled;

                    if (PurchaseOrderID <= 0)
                    {
                        Context.PurchaseOrderDatas.InsertOnSubmit(data);
                    }

                    Context.SubmitChanges();

                    Load(data);
                    SaveHistory(ChangeType, Original, uid);
                }
            }
            catch (Exception ex)
            {
                throw new RequisitionException("An error has occurred while saving purchase order.", ex);
            }
        }
            /// <summary>
            /// Post process payment (used by payment gateways that require redirecting to a third-party URL)
            /// </summary>
            /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
            public void PostProcessPaymentDistributedOrder(PostProcessTransactionPaymentRequest postProcessPaymentRequest)
            {

                PGResponse objPGResponse = new PGResponse();
                CustomerDetails oCustomer = new CustomerDetails();
                SessionDetail oSession = new SessionDetail();
                AirLineTransaction oAirLine = new AirLineTransaction();
                MerchanDise oMerchanDise = new MerchanDise();

                SFA.CardInfo objCardInfo = new SFA.CardInfo();

                SFA.Merchant objMerchant = new SFA.Merchant();

                ShipToAddress objShipToAddress = new ShipToAddress();
                BillToAddress oBillToAddress = new BillToAddress();
                ShipToAddress oShipToAddress = new ShipToAddress();
                MPIData objMPI = new MPIData();
                PGReserveData oPGreservData = new PGReserveData();
                Address oHomeAddress = new Address();
                Address oOfficeAddress = new Address();
                // For getting unique MerchantTxnID 
                // Only for testing purpose. 
                // In actual scenario the merchant has to pass his transactionID
                DateTime oldTime = new DateTime(1970, 01, 01, 00, 00, 00);
                DateTime currentTime = DateTime.Now;
                TimeSpan structTimespan = currentTime - oldTime;
                string lMrtTxnID = ((long)structTimespan.TotalMilliseconds).ToString();
                var merchantId = _EmiPaymentSettings.MerchantId.ToString();
                var orderId = postProcessPaymentRequest.CurrentOrderTransaction.TransactionId;
                var Id = orderId.ToString();
                var amount = postProcessPaymentRequest.CurrentOrderTransaction.TransactionAmount.ToString(new CultureInfo("en-US", false).NumberFormat);


                //Setting Merchant Details
                objMerchant.setMerchantDetails(merchantId, merchantId, merchantId, "", lMrtTxnID, Id, "https://www.laorigin.com/PaymentEmi/ReturnDistributedOrder?orderId=" + Id, "POST", "INR", "INV123", "req.Sale", amount, "GMT+05:30", "ASP.NET64", "true", "ASP.NET64", "ASP.NET64", "ASP.NET64");

                // Setting BillToAddress Details
                oBillToAddress.setAddressDetails(postProcessPaymentRequest.Order.CustomerId.ToString(),
                                                   postProcessPaymentRequest.Order.Customer.SystemName,
                                                postProcessPaymentRequest.Order.BillingAddress.Address1,
                                                 postProcessPaymentRequest.Order.BillingAddress.Address2,
                                                 "",
                                                  postProcessPaymentRequest.Order.BillingAddress.City,
                                                 postProcessPaymentRequest.Order.BillingAddress.StateProvince.Name
                                                 , postProcessPaymentRequest.Order.BillingAddress.ZipPostalCode,
                                                 postProcessPaymentRequest.Order.BillingAddress.Country.Name,
                                                  postProcessPaymentRequest.Order.Customer.Email);

                // Setting ShipToAddress Details
                oShipToAddress.setAddressDetails(postProcessPaymentRequest.Order.BillingAddress.Address1,
                                                postProcessPaymentRequest.Order.BillingAddress.Address2,
                                                "",
                                                postProcessPaymentRequest.Order.BillingAddress.City,
                                                postProcessPaymentRequest.Order.BillingAddress.StateProvince.Name,

                                                postProcessPaymentRequest.Order.BillingAddress.ZipPostalCode,
                                                postProcessPaymentRequest.Order.BillingAddress.Country.Name,
                                                postProcessPaymentRequest.Order.Customer.Email);

                //Setting MPI datails.
                //objMPI.setMPIRequestDetails ("1000","INR10.00","356","2","2 shirts","","","","0","","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*","Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)");

                // Setting Name home/office Address Details 
                // Order of Parameters =>        AddLine1, AddLine2,      AddLine3,   City,   State ,  Zip,          Country, Email id
                oHomeAddress.setAddressDetails("2Sandeep", "Uttam Corner", "Chinchwad", "Pune", "state", "4385435873", "IND", "*****@*****.**");

                // Order of Parameters =>        AddLine1, AddLine2,      AddLine3,   City,   State ,  Zip,          Country, Email id
                oOfficeAddress.setAddressDetails("2Opus", "MayFairTowers", "Wakdewadi", "Pune", "state", "4385435873", "IND", "*****@*****.**");

                // Stting  Customer Details 
                // Order of Parameters =>  First Name,LastName ,Office Address Object,Home Address Object,Mobile No,RegistrationDate, flag for matching bill to address and ship to address 
                oCustomer.setCustomerDetails(postProcessPaymentRequest.Order.Customer.SystemName, "", oOfficeAddress, oHomeAddress, "", "13-06-2007", "Y");

                //Setting Merchant Dise Details 
                // Order of Parameters =>       Item Purchased,Quantity,Brand,ModelNumber,Buyers Name,flag value for matching CardName and BuyerName
                oMerchanDise.setMerchanDiseDetails("Computer", "2", "Intel", "P4", "Sandeep Patil", "Y");

                //Setting  Session Details        
                // Order of Parameters =>     Remote Address, Cookies Value            Browser Country,Browser Local Language,Browser Local Lang Variant,Browser User Agent'
                oSession.setSessionDetails(getRemoteAddr(), getSecureCookie(HttpContext.Current.Request), "", HttpContext.Current.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"], "", HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"]);

                //Settingr AirLine Transaction Details  
                //Order of Parameters =>               Booking Date,FlightDate,Flight   Time,Flight Number,Passenger Name,Number Of Tickets,flag for matching card name and customer name,PNR,sector from,sector to'
                oAirLine.setAirLineTransactionDetails("10-06-2007", "22-06-2007", "13:20", "119", "Sandeep", "1", "Y", "25c", "Pune", "Mumbai");

                SFAClient objSFAClient = new SFAClient("c:\\inetpub\\wwwroot\\SFAClient\\Config\\");
                objPGResponse = objSFAClient.postSSL(objMPI, objMerchant, oBillToAddress, oShipToAddress, oPGreservData, oCustomer, oSession, oAirLine, oMerchanDise);

                if (objPGResponse.RedirectionUrl != "" & objPGResponse.RedirectionUrl != null)
                {
                    string strResponseURL = objPGResponse.RedirectionUrl;
                    HttpContext.Current.Response.Redirect(strResponseURL);
                }
                else
                {
                    HttpContext.Current.Response.Write("Response Code:" + objPGResponse.RespCode);
                    HttpContext.Current.Response.Write("Response message:" + objPGResponse.RespMessage);
                }
            }
Beispiel #11
0
        /// <summary>
        /// Post process payment (used by payment gateways that require redirecting to a third-party URL)
        /// </summary>
        /// <param name="postProcessPaymentRequest">Payment info required for an order processing</param>
        public void PostProcessPaymentDistributedOrder(PostProcessTransactionPaymentRequest postProcessPaymentRequest)
        {
            PGResponse         objPGResponse = new PGResponse();
            CustomerDetails    oCustomer     = new CustomerDetails();
            SessionDetail      oSession      = new SessionDetail();
            AirLineTransaction oAirLine      = new AirLineTransaction();
            MerchanDise        oMerchanDise  = new MerchanDise();

            SFA.CardInfo objCardInfo = new SFA.CardInfo();

            SFA.Merchant objMerchant = new SFA.Merchant();

            ShipToAddress objShipToAddress = new ShipToAddress();
            BillToAddress oBillToAddress   = new BillToAddress();
            ShipToAddress oShipToAddress   = new ShipToAddress();
            MPIData       objMPI           = new MPIData();
            PGReserveData oPGreservData    = new PGReserveData();
            Address       oHomeAddress     = new Address();
            Address       oOfficeAddress   = new Address();
            // For getting unique MerchantTxnID
            // Only for testing purpose.
            // In actual scenario the merchant has to pass his transactionID
            DateTime oldTime        = new DateTime(1970, 01, 01, 00, 00, 00);
            DateTime currentTime    = DateTime.Now;
            TimeSpan structTimespan = currentTime - oldTime;
            string   lMrtTxnID      = ((long)structTimespan.TotalMilliseconds).ToString();
            var      merchantId     = _EmiPaymentSettings.MerchantId.ToString();
            var      orderId        = postProcessPaymentRequest.CurrentOrderTransaction.TransactionId;
            var      Id             = orderId.ToString();
            var      amount         = postProcessPaymentRequest.CurrentOrderTransaction.TransactionAmount.ToString(new CultureInfo("en-US", false).NumberFormat);


            //Setting Merchant Details
            objMerchant.setMerchantDetails(merchantId, merchantId, merchantId, "", lMrtTxnID, Id, "https://www.laorigin.com/PaymentEmi/ReturnDistributedOrder?orderId=" + Id, "POST", "INR", "INV123", "req.Sale", amount, "GMT+05:30", "ASP.NET64", "true", "ASP.NET64", "ASP.NET64", "ASP.NET64");

            // Setting BillToAddress Details
            oBillToAddress.setAddressDetails(postProcessPaymentRequest.Order.CustomerId.ToString(),
                                             postProcessPaymentRequest.Order.Customer.SystemName,
                                             postProcessPaymentRequest.Order.BillingAddress.Address1,
                                             postProcessPaymentRequest.Order.BillingAddress.Address2,
                                             "",
                                             postProcessPaymentRequest.Order.BillingAddress.City,
                                             postProcessPaymentRequest.Order.BillingAddress.StateProvince.Name
                                             , postProcessPaymentRequest.Order.BillingAddress.ZipPostalCode,
                                             postProcessPaymentRequest.Order.BillingAddress.Country.Name,
                                             postProcessPaymentRequest.Order.Customer.Email);

            // Setting ShipToAddress Details
            oShipToAddress.setAddressDetails(postProcessPaymentRequest.Order.BillingAddress.Address1,
                                             postProcessPaymentRequest.Order.BillingAddress.Address2,
                                             "",
                                             postProcessPaymentRequest.Order.BillingAddress.City,
                                             postProcessPaymentRequest.Order.BillingAddress.StateProvince.Name,

                                             postProcessPaymentRequest.Order.BillingAddress.ZipPostalCode,
                                             postProcessPaymentRequest.Order.BillingAddress.Country.Name,
                                             postProcessPaymentRequest.Order.Customer.Email);

            //Setting MPI datails.
            //objMPI.setMPIRequestDetails ("1000","INR10.00","356","2","2 shirts","","","","0","","image/gif, image/x-xbitmap, image/jpeg, image/pjpeg, application/vnd.ms-powerpoint, application/vnd.ms-excel, application/msword, application/x-shockwave-flash, */*","Mozilla/4.0 (compatible; MSIE 5.5; Windows NT 5.0)");

            // Setting Name home/office Address Details
            // Order of Parameters =>        AddLine1, AddLine2,      AddLine3,   City,   State ,  Zip,          Country, Email id
            oHomeAddress.setAddressDetails("2Sandeep", "Uttam Corner", "Chinchwad", "Pune", "state", "4385435873", "IND", "*****@*****.**");

            // Order of Parameters =>        AddLine1, AddLine2,      AddLine3,   City,   State ,  Zip,          Country, Email id
            oOfficeAddress.setAddressDetails("2Opus", "MayFairTowers", "Wakdewadi", "Pune", "state", "4385435873", "IND", "*****@*****.**");

            // Stting  Customer Details
            // Order of Parameters =>  First Name,LastName ,Office Address Object,Home Address Object,Mobile No,RegistrationDate, flag for matching bill to address and ship to address
            oCustomer.setCustomerDetails(postProcessPaymentRequest.Order.Customer.SystemName, "", oOfficeAddress, oHomeAddress, "", "13-06-2007", "Y");

            //Setting Merchant Dise Details
            // Order of Parameters =>       Item Purchased,Quantity,Brand,ModelNumber,Buyers Name,flag value for matching CardName and BuyerName
            oMerchanDise.setMerchanDiseDetails("Computer", "2", "Intel", "P4", "Sandeep Patil", "Y");

            //Setting  Session Details
            // Order of Parameters =>     Remote Address, Cookies Value            Browser Country,Browser Local Language,Browser Local Lang Variant,Browser User Agent'
            oSession.setSessionDetails(getRemoteAddr(), getSecureCookie(HttpContext.Current.Request), "", HttpContext.Current.Request.ServerVariables["HTTP_ACCEPT_LANGUAGE"], "", HttpContext.Current.Request.ServerVariables["HTTP_USER_AGENT"]);

            //Settingr AirLine Transaction Details
            //Order of Parameters =>               Booking Date,FlightDate,Flight   Time,Flight Number,Passenger Name,Number Of Tickets,flag for matching card name and customer name,PNR,sector from,sector to'
            oAirLine.setAirLineTransactionDetails("10-06-2007", "22-06-2007", "13:20", "119", "Sandeep", "1", "Y", "25c", "Pune", "Mumbai");

            SFAClient objSFAClient = new SFAClient("c:\\inetpub\\wwwroot\\SFAClient\\Config\\");

            objPGResponse = objSFAClient.postSSL(objMPI, objMerchant, oBillToAddress, oShipToAddress, oPGreservData, oCustomer, oSession, oAirLine, oMerchanDise);

            if (objPGResponse.RedirectionUrl != "" & objPGResponse.RedirectionUrl != null)
            {
                string strResponseURL = objPGResponse.RedirectionUrl;
                HttpContext.Current.Response.Redirect(strResponseURL);
            }
            else
            {
                HttpContext.Current.Response.Write("Response Code:" + objPGResponse.RespCode);
                HttpContext.Current.Response.Write("Response message:" + objPGResponse.RespMessage);
            }
        }