/// <summary> /// Determines if the specified tracking number is a USPS /// tracking number by using a standard MOD 10 algorithm /// to check the check digit. /// </summary> /// <param name="trackingNumber"> /// The tracking number to check the check digit of. /// </param> /// <returns> /// True if the tracking number is the correct length and contains /// a valid check digit, otherwise false. /// </returns> public static bool IsUspsTrackingNumber(string trackingNumber) { if (trackingNumber.Length != 22 && trackingNumber.Length != 20) { return(false); } return(CheckDigits.CheckMod10CheckDigit(trackingNumber)); }
/// <summary> /// Runs the FedEx checksum algorithm and length check on the ground tracking number. /// </summary> /// <param name="trackingNumber"> /// The tracking number to verify the check digit on. /// </param> /// <returns> /// True if the tracking number appears to be a valid FedEx ground tracking number, /// otherwise false is returned. /// </returns> public static bool IsFedExGround(string trackingNumber) { if (trackingNumber.Length != 15) { return(false); } return(CheckDigits.CheckMod10CheckDigit(trackingNumber)); }
/// <summary> /// Determines if the string is a valid UPS tracking number /// according to the UPS checksum algorithms. /// </summary> /// <param name="trackingNumber"> /// The tracking number to classify as valid or invalid. /// </param> /// <returns> /// A boolean indicating if the tracking number passes the /// check digit calculations. /// </returns> public static bool IsValidTrackingNumber(string trackingNumber) { //Handle 1Z tracking numbers a special way if (trackingNumber.StartsWith("1z", true, CultureInfo.InvariantCulture)) { //Trim off the 1Z trackingNumber = trackingNumber.Substring(2); //Encode the letters into numbers based on the cross-reference trackingNumber = ConvertToNumeric(trackingNumber); return(Check1ZMod10CheckDigit(trackingNumber)); } if (trackingNumber.Length != 11) { return(false); } //Encode the letters into numbers based on the cross-reference trackingNumber = ConvertToNumeric(trackingNumber); return(CheckDigits.CheckMod10CheckDigit(trackingNumber)); }