using System.Security.Cryptography;
public static void Main()
string publicKey = "PUB";
string privateKey = "PRV";
var customerAccountNumber = "R4Svb43ER132";
var msisdn = "21692012791";
var operatorCode = "60502";
var subscriptionPlanId = "76";
var initialPaymentproductId = "1";
var initialPaymentDate = "2019-06-20T20:00:56.730Z";
var executeInitialPaymentNow = "true";
var recurringPaymentproductId = "1";
var productCatalogName = "Shofha";
var executeRecurringPaymentNow = "false";
var contractStartDate = "2019-06-20T20:00:56.730Z";
var contractEndDate = "2021-06-20T20:00:56.735Z";
var autoRenewContract = "true";
var redirectUrl = "http://localhost:8080/VOD/confirmLandingOorredo.do";
var headerEnrichmentSessionId = string.Empty;
var signature = string.Empty;
var plainMessage = customerAccountNumber + msisdn + operatorCode + subscriptionPlanId + initialPaymentproductId +
initialPaymentDate + executeInitialPaymentNow.ToString().ToLower() + recurringPaymentproductId +
productCatalogName + executeRecurringPaymentNow.ToString().ToLower() + contractStartDate +
autoRenewContract.ToString().ToLower()
using (var hash = new HMACSHA256(Encoding.UTF8.GetBytes(privateKey)))
var hashed = string.Join("", hash.ComputeHash(Encoding.UTF8.GetBytes(plainMessage)).Select(b => b.ToString("x2")));
signature = string.Join(":", publicKey, hashed);
Console.WriteLine(signature);