/// <summary> /// PreparedPayment contacts the server with the payment request data, and returns a GET URL to that /// payment. This is convenient for creating an order and then sending the URL e.g. in an email. /// </summary> /// <returns>PaymentLink</returns> public Uri PreparePayment(String ipAddress) { IpAddress = ipAddress; CalculateRequestValues(); var xmlBuilder = new HostedXmlBuilder(); string xml = xmlBuilder.GetXml(this); var secretWord = CrOrderBuilder.GetConfig() .GetSecretWord(PaymentType.HOSTED, CrOrderBuilder.GetCountryCode()); var sentMerchantId = CrOrderBuilder.GetConfig() .GetMerchantId(PaymentType.HOSTED, CrOrderBuilder.GetCountryCode()); var payPageUrl = CrOrderBuilder.GetConfig() .GetEndPoint(PaymentType.HOSTED); var baseUrl = payPageUrl.Replace("/payment", ""); var hostedRequest = new HostedAdminRequest(xml, secretWord, sentMerchantId, baseUrl); var targetAddress = baseUrl + "/rest/preparepayment"; var message = HostedAdminRequest.HostedAdminCall(targetAddress, hostedRequest).Message; var messageDoc = new XmlDocument(); messageDoc.LoadXml(message); var paymentId = messageDoc.SelectSingleNode("//id").InnerText; return(new Uri(baseUrl + "/preparedpayment/" + paymentId)); }