/// <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)); }
/// <summary> /// GetPaymentForm /// </summary> /// <returns>PaymentForm</returns> public PaymentForm GetPaymentForm(string htmlFormId = "paymentForm", string htmlFormName = "paymentForm") { CalculateRequestValues(); var xmlBuilder = new HostedXmlBuilder(); string xml = xmlBuilder.GetXml(this); var form = new PaymentForm(htmlFormId, htmlFormName); form.SetXmlMessage(xml); form.SetMerchantId(CrOrderBuilder.GetConfig() .GetMerchantId(PaymentType.HOSTED, CrOrderBuilder.GetCountryCode())); form.SetSecretWord(CrOrderBuilder.GetConfig().GetSecretWord(PaymentType.HOSTED, CrOrderBuilder.GetCountryCode())); form.SetSubmitMessage(CrOrderBuilder.GetCountryCode() != CountryCode.NONE ? CrOrderBuilder.GetCountryCode() : CountryCode.SE); form.SetPayPageUrl(CrOrderBuilder.GetConfig().GetEndPoint(PaymentType.HOSTED)); form.SetForm(); form.SetHtmlFields(); return(form); }
public void TestBasicXml() { _order = WebpayConnection.CreateOrder(SveaConfig.GetDefaultConfig()) .SetClientOrderNumber(TestingTool.DefaultTestClientOrderNumber) .SetCountryCode(TestingTool.DefaultTestCountryCode) .SetCurrency(TestingTool.DefaultTestCurrency) .AddCustomerDetails(Item.IndividualCustomer() .SetNationalIdNumber(TestingTool.DefaultTestIndividualNationalIdNumber)) .AddOrderRow(Item.OrderRow() .SetAmountExVat(4) .SetVatPercent(25) .SetQuantity(1)); var payment = new FakeHostedPayment(_order); payment.SetReturnUrl("http://myurl.se") .CalculateRequestValues(); _xml = _xmlBuilder.GetXml(payment); const string expectedXml = "<?xml version=\"1.0\" encoding=\"utf-8\"?><!--Message generated by Integration package C#-->" + "<payment><customerrefno>33</customerrefno><currency>SEK</currency><amount>500</amount>" + "<vat>100</vat><lang>en</lang><returnurl>http://myurl.se</returnurl><iscompany>false</iscompany>" + "<customer><ssn>194605092222</ssn><country>SE</country></customer><orderrows><row><sku /><name />" + "<description /><amount>500</amount><vat>100</vat><quantity>1</quantity></row></orderrows>" + "<excludepaymentMethods /><addinvoicefee>false</addinvoicefee></payment>"; Assert.That(_xml, Is.EqualTo(expectedXml)); }