FIX: different UPC validation

Uses both is_int and ctype_digit. An actual integer or a string containing all digits are both valid but neither function handles both cases.