private ProcessPaymentResult OldCreateKlarnaOrder(KlarnaLocalization localization, ProcessPaymentEvaluationContext context) { var retVal = new ProcessPaymentResult(); var cartItems = CreateKlarnaCartItems(context.Order); //Create cart var cart = new Dictionary <string, object> { { "items", cartItems } }; var data = new Dictionary <string, object> { { "cart", cart } }; //Create klarna order "http://example.com" context.Store.Url var connector = Connector.Create(AppSecret); Order order = null; var merchant = new Dictionary <string, object> { { "id", AppKey }, { "terms_uri", string.Format("{0}/{1}", context.Store.Url, TermsUrl) }, { "checkout_uri", string.Format("{0}/{1}", context.Store.Url, CheckoutUrl) }, { "confirmation_uri", string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, ConfirmationUrl, context.Order.Id) + "klarna_order={checkout.order.uri}" }, { "push_uri", string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, "admin/api/paymentcallback", context.Order.Id) + "klarna_order={checkout.order.uri}" }, { "back_to_store_uri", context.Store.Url } }; var layout = new Dictionary <string, object> { { "layout", "desktop" } }; data.Add("purchase_country", localization.CountryName); data.Add("purchase_currency", localization.Currency); data.Add("locale", localization.Locale); data.Add("merchant", merchant); data.Add("gui", layout); order = new Order(connector) { BaseUri = new Uri(GetCheckoutBaseUrl(localization.Currency)), ContentType = _contentType }; order.Create(data); order.Fetch(); //Gets snippet var gui = order.GetValue("gui") as JObject; var html = gui["snippet"].Value <string>(); retVal.IsSuccess = true; retVal.NewPaymentStatus = PaymentStatus.Pending; retVal.HtmlForm = html; retVal.OuterId = order.GetValue("id") as string; return(retVal); }
private ProcessPaymentResult NewCreateKlarnaOrder(KlarnaLocalization localization, ProcessPaymentEvaluationContext context) { var retVal = new ProcessPaymentResult(); var orderLineItems = GetOrderLineItems(context.Order); MerchantUrls merchantUrls = new MerchantUrls { Terms = new System.Uri( string.Format("{0}/{1}", context.Store.Url, TermsUrl)), Checkout = new System.Uri( string.Format("{0}/{1}", context.Store.Url, CheckoutUrl)), Confirmation = new System.Uri( string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, ConfirmationUrl, context.Order.Id) + "klarna_order={checkout.order.uri}"), Push = new System.Uri( string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, "admin/api/paymentcallback", context.Order.Id) + "klarna_order={checkout.order.uri}") }; CheckoutOrderData orderData = new CheckoutOrderData() { PurchaseCountry = localization.CountryName, PurchaseCurrency = localization.Currency, Locale = localization.Locale, OrderAmount = (int)(context.Order.Sum * 100), OrderTaxAmount = (int)(context.Order.Tax * 100), OrderLines = orderLineItems, MerchantUrls = merchantUrls }; var connector = ConnectorFactory.Create( AppKey, AppSecret, Client.TestBaseUrl); Client client = new Client(connector); var checkout = client.NewCheckoutOrder(); checkout.Create(orderData); orderData = checkout.Fetch(); retVal.IsSuccess = true; retVal.NewPaymentStatus = PaymentStatus.Pending; retVal.OuterId = orderData.OrderId; retVal.HtmlForm = string.Format("<div>{0}</div>", orderData.HtmlSnippet); return(retVal); }
private ProcessPaymentResult ProcessKlarnaOrder(KlarnaLocalization localization, ProcessPaymentEvaluationContext context) { var retVal = new ProcessPaymentResult(); var cartItems = CreateKlarnaCartItems(context.Order); //Create cart var cart = new Dictionary<string, object> { { "items", cartItems } }; var data = new Dictionary<string, object> { { "cart", cart } }; //Create klarna order "http://example.com" context.Store.Url var connector = Connector.Create(AppSecret); Order order = null; var merchant = new Dictionary<string, object> { { "id", AppKey }, { "terms_uri", string.Format("{0}/{1}", context.Store.Url, TermsUrl) }, { "checkout_uri", string.Format("{0}/{1}", context.Store.Url, CheckoutUrl) }, { "confirmation_uri", string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, ConfirmationUrl, context.Order.Id) + "klarna_order={checkout.order.uri}" }, { "push_uri", string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, "admin/api/paymentcallback", context.Order.Id) + "klarna_order={checkout.order.uri}" }, { "back_to_store_uri", context.Store.Url } }; var layout = new Dictionary<string, object> { { "layout", "desktop" } }; data.Add("purchase_country", localization.CountryName); data.Add("purchase_currency", localization.Currency); data.Add("locale", localization.Locale); data.Add("merchant", merchant); data.Add("gui", layout); order = new Order(connector) { BaseUri = new Uri(GetCheckoutBaseUrl(localization.Currency)), ContentType = _contentType }; order.Create(data); order.Fetch(); //Gets snippet var gui = order.GetValue("gui") as JObject; var html = gui["snippet"].Value<string>(); retVal.IsSuccess = true; retVal.NewPaymentStatus = context.Payment.PaymentStatus = PaymentStatus.Pending; retVal.HtmlForm = html; retVal.OuterId = context.Payment.OuterId = order.GetValue("id") as string; return retVal; }
private ProcessPaymentResult NewCreateKlarnaOrder(KlarnaLocalization localization, ProcessPaymentEvaluationContext context) { var retVal = new ProcessPaymentResult(); var orderLineItems = GetOrderLineItems(context.Order); MerchantUrls merchantUrls = new MerchantUrls { Terms = new System.Uri( string.Format("{0}/{1}", context.Store.Url, TermsUrl)), Checkout = new System.Uri( string.Format("{0}/{1}", context.Store.Url, CheckoutUrl)), Confirmation = new System.Uri( string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, ConfirmationUrl, context.Order.Id) + "klarna_order={checkout.order.uri}"), Push = new System.Uri( string.Format("{0}/{1}?sid=123&orderId={2}&", context.Store.Url, "admin/api/paymentcallback", context.Order.Id) + "klarna_order={checkout.order.uri}") }; CheckoutOrderData orderData = new CheckoutOrderData() { PurchaseCountry = localization.CountryName, PurchaseCurrency = localization.Currency, Locale = localization.Locale, OrderAmount = (int)(context.Order.Sum * 100), OrderTaxAmount = (int)(context.Order.Tax * 100), OrderLines = orderLineItems, MerchantUrls = merchantUrls }; var connector = ConnectorFactory.Create( AppKey, AppSecret, Client.TestBaseUrl); Client client = new Client(connector); var checkout = client.NewCheckoutOrder(); checkout.Create(orderData); orderData = checkout.Fetch(); retVal.IsSuccess = true; retVal.NewPaymentStatus = PaymentStatus.Pending; retVal.OuterId = orderData.OrderId; retVal.HtmlForm = string.Format("<div>{0}</div>", orderData.HtmlSnippet); return retVal; }