using System.Security.Cryptography;
using System.Text.RegularExpressions;
public static void Main()
var customerAccountNumber = "Checkout-3";
var msisdn = "971525944760";
var operatorCode = "42403";
var subscriptionPlanId = "3";
var initialPaymentproductId = "2021-10-05 12:56:52Z";
var executeInitialPaymentNow = "false";
var executeRecurringPaymentNow = "false";
var recurringPaymentproductId = "T1";
var productCatalogName = "HETest";
var autoRenewContract = "true";
var contractStartDate = "2021-09-29 12:56:52Z";
var contractEndDate = "2031-09-29 12:56:52Z";
var allowMultipleFreeStartPeriods = "";
const string PublicKey = "0oa70WuefiddqLjqlTlp";
const string PrivateKey = "m2vQxqNixqrEDcQ2heVr";
var message = customerAccountNumber
+ initialPaymentproductId
+ executeInitialPaymentNow.ToString().ToLower()
+ recurringPaymentproductId
+ executeRecurringPaymentNow.ToString().ToLower()
+ autoRenewContract.ToString().ToLower()
+ allowMultipleFreeStartPeriods;
var theDigest = CalculateDigest(PublicKey, PrivateKey, message);
Console.WriteLine(theDigest);
public static string CalculateDigest(string publicKey, string privateKey, string message)
var hash = new System.Security.Cryptography.HMACSHA256(System.Text.Encoding.UTF8.GetBytes(privateKey));
var correctHash = string.Join(string.Empty, hash.ComputeHash(System.Text.Encoding.UTF8.GetBytes(message)).Select(b => b.ToString("x2")));
digest = publicKey + ":" + correctHash;