private string CalculateChecksumFromPostback(PostbackTransaction postback)
 {
     using (var sha1 = SHA1.Create()) {
         var checksumBytes = sha1.ComputeHash(Encoding.UTF8.GetBytes(
                                                  $"{postback.Id}||{(int)postback.Status}|{settings.SharedSecret}"));
         return(BitConverter.ToString(checksumBytes)
                .Replace("-", string.Empty)
                .ToLower());
     }
 }
 private string GetChecksumFromHeadersOrPostback(
     IDictionary <string, string[]> headers,
     PostbackTransaction postback)
 {
     string[] postbackChecksumArray;
     if (headers.TryGetValue("Checksum", out postbackChecksumArray))
     {
         return(postbackChecksumArray.First());
     }
     else
     {
         return(postback.Checksum);
     }
 }
 private bool HasValidChecksumProperties(string postbackChecksum, PostbackTransaction postback)
 {
     return(!string.IsNullOrWhiteSpace(postbackChecksum) && !string.IsNullOrWhiteSpace(postback.Id));
 }