public static void Main()
Console.WriteLine(ParseCardRequestToXml());
private static string ParseCardRequestToXml()
XNamespace soapEnv = "SOAP-ENV";
XNamespace spReq = "http://www.paygate.co.za/PayHOST";
XElement xmlEnvlelope = new XElement(soapEnv + "Envelope", new XAttribute(XNamespace.Xmlns + "SOAP-ENV", "http://schemas.xmlsoap.org/soap/envelope/"));
XElement xmlHeader = new XElement(soapEnv + "Header");
XElement xmlBody = new XElement(soapEnv + "Body");
XElement xmlSinglePaymentRequest = new XElement(spReq + "SinglePaymentRequest");
XElement xmlCardPaymentRequest = new XElement(spReq + "CardPaymentRequest");
XElement xmlAccount = new XElement(spReq + "Account");
xmlAccount.Add(new XElement(spReq + "PayGateId", "10011072130"));
xmlAccount.Add(new XElement(spReq + "Password", "test"));
xmlCardPaymentRequest.Add(xmlAccount);
XElement xmlCustomer = new XElement(spReq + "Customer");
xmlCustomer.Add(new XElement(spReq + "Title", "Mr"));
xmlCustomer.Add(new XElement(spReq + "FirstName", "Joe"));
xmlCustomer.Add(new XElement(spReq + "LastName", "Soap"));
xmlCustomer.Add(new XElement(spReq + "Telephone", "0861234567"));
xmlCustomer.Add(new XElement(spReq + "Mobile", "0735552233"));
xmlCustomer.Add(new XElement(spReq + "Email", "joe@soap.com"));
xmlCardPaymentRequest.Add(xmlCustomer);
xmlCardPaymentRequest.Add(new XElement(spReq + "CardNumber", "4000000000000002"));
xmlCardPaymentRequest.Add(new XElement(spReq + "CardExpiryDate", "122020"));
xmlCardPaymentRequest.Add(new XElement(spReq + "CVV", 999));
xmlCardPaymentRequest.Add(new XElement(spReq + "BudgetPeriod", 0));
XElement xmlRedirect = new XElement(spReq + "Redirect");
xmlRedirect.Add(new XElement(spReq + "NotifyUrl", "https://www.mytestsite.com/notify"));
xmlRedirect.Add(new XElement(spReq + "ReturnUrl", "https://www.mytestsite.com/return"));
xmlCardPaymentRequest.Add(xmlRedirect);
XElement xmlOrder = new XElement(spReq + "Order");
xmlOrder.Add(new XElement(spReq + "MerchantOrderId", "INV101"));
xmlOrder.Add(new XElement(spReq + "Currency", "ZAR"));
xmlOrder.Add(new XElement(spReq + "Amount", 100));
xmlCardPaymentRequest.Add(xmlOrder);
xmlSinglePaymentRequest.Add(xmlCardPaymentRequest);
xmlBody.Add(xmlSinglePaymentRequest);
xmlEnvlelope.Add(xmlHeader);
xmlEnvlelope.Add(xmlBody);
return xmlEnvlelope.ToString();