Transparent Redirect

Hashing

Fields at risk of user manipulation can be setup as Hash Required. When this requirement exists, a second field is validated for a hash value. The hash can only be generated using the clear text value and a secret "salt" value known only by your organization and Paperless Transactions. If the hash value passed does not match the hash created, the entire post will fail.

Below is a sample of the hashing algorithm in C#. Hashes can also be produced by calling the GenerateHash method available on the Back Office API.

    ///  
    /// This method will generate hash value for use with
    /// Paperless Transactions' Transparent Redirect Service 
    ///  
    ///  
    ///  
    string GenerateHash(string clearText, string saltValue)
    {
        if (string.IsNullOrEmpty(clearText)) throw new ArgumentNullException("clearText");
        if (string.IsNullOrEmpty(saltValue)) throw new ArgumentNullException("saltValue");

        byte[] plainTextBytes = Encoding.UTF8.GetBytes(clearText + saltValue);
        byte[] hashBytes = new Sha1managed().ComputeHash(plainTextBytes);

        return Convert.ToBase64String(hashBytes);
    }