Uses the iOS Vision text recognizer framework to visually read credit card numbers and expiration dates. Then uses the Luhn algorithm to make sure the CC number is valid. Also checks against a list of prefix numbers to determine card type (Mastercard, Visa, Discover, Amex, etc).