public ActionResult StartTransaction(Order order)
        {
            var ACCOUNT = "375917";
            var SECRET  = "SAIPPUAKAUPPIAS";
            var API_URL = "https://api.checkout.fi/payments";

            // New payment transaction
            var transaction = new PaymentTransaction();
            var client      = new HttpClient();

            try
            {
                var json    = JsonConvert.SerializeObject(order);
                var buffer  = Encoding.UTF8.GetBytes(json);
                var content = new ByteArrayContent(buffer);

                // Headers without signature
                content.Headers.ContentType = new MediaTypeHeaderValue("application/json");
                var headers = new Dictionary <string, string>();
                headers.Add("checkout-account", ACCOUNT);
                headers.Add("checkout-algorithm", "sha256");
                headers.Add("checkout-method", "POST");
                headers.Add("checkout-nonce", "564635208570151");
                headers.Add("checkout-timestamp", "2018-03-08T10:02:31.904Z");

                var headersStr = string.Empty;
                foreach (var headeKvp in headers)
                {
                    headersStr = string.Format("{0}{1}:{2}\n", headersStr, headeKvp.Key, headeKvp.Value);
                    content.Headers.Add(headeKvp.Key, headeKvp.Value);
                }

                var hmacPayload = string.Format("{0}{1}", headersStr, json);
                var hmac        = Cryptographer.CalculateHMAC(SECRET, hmacPayload);

                //add signature to headers
                content.Headers.Add("signature", hmac);

                var response     = client.PostAsync(API_URL, content);
                var responseText = response.Result.Content.ReadAsStringAsync();
                transaction = JsonConvert.DeserializeObject <PaymentTransaction>(responseText.Result);
            }
            catch (Exception ex)
            {
            }
            return(View(transaction));
        }