S10 (стандарт ВПС)
Стандарт ВПС S10 определяет систему присвоения 13-значных идентификаторов международным почтовым отправлениям с целью их отслеживания и отслеживания во время доставки .
В условиях растущей либерализации и возможности существования нескольких почтовых служб в одной стране использование кодов стран для обозначения почтовых служб становится проблемой. Чтобы решить эту проблему, в каждой стране есть назначенная почтовая служба, которая контролирует все идентификаторы S10 из этой страны; любые конкурирующие почтовые службы должны будут сотрудничать с назначенным владельцем. Организация, назначенная страной-членом ВПС, должна управлять выдачей и использованием идентификаторов S10 среди всех операторов, находящихся под контролем этой страны-члена ВПС, таким образом, чтобы гарантировать, что ни один идентификатор S10 не будет повторно использован в течение 12 календарных дней. месяцев. Рекомендуемый период составляет 24 календарных месяца или более.
Формат
[ редактировать ]Идентификаторы состоят из двухбуквенного кода индикатора службы, восьмизначного серийного номера (в диапазоне от 00000000 до 99999999), одной контрольной цифры и двухбуквенного кода страны ISO, - эмитента идентифицирующего страну почтовой администрации . [1]
Формат S10 | |||
---|---|---|---|
1 | 2 | 3 | 4 |
АА | 00000000 | 9 | ББ |
|
Коды сервисных индикаторов
[ редактировать ]Коды услуг обычно назначаются и администрируются в каждой стране-эмитенте, но определенные типы услуг и диапазоны кодов используются для всех стран, перечисленных здесь.
Код | Интерпретация [1] |
---|---|
АА – АС | Неназначенный [а] |
АВ–АЗ | Только для внутреннего, двустороннего и многостороннего использования. [б] |
БА–БЗ | Только для внутреннего, двустороннего и многостороннего использования. |
Калифорния – Чехия | Бандероль
|
ДА–ДЗ | Только для внутреннего, двустороннего и многостороннего использования. |
EA–EZ | EMS
|
ФА–ФЗ | Неназначенный [а] |
Джорджия | Только для внутреннего, двустороннего и многостороннего использования. |
ГБ – GC | Неназначенный [а] |
ГД | Только для внутреннего, двустороннего и многостороннего использования. |
ГЭ–ГЗ | Неназначенный [а] |
ХА – ХЗ | Посылки электронной коммерции
|
IA–IZ | Неназначенный [а] |
ЮВ–ЮЗ | Сдержанный [д] |
КА–КЗ | Сдержанный [д] |
ЛА – ЛЗ | Письмо отслеживается
|
МА–МЗ | для письменной корреспонденции М Мешки |
Северная Америка – Новая Зеландия | Только для внутреннего, двустороннего и многостороннего использования. |
ОА – ОЗ | Неназначенный [а] |
ПА–ПЗ | Только для внутреннего, двустороннего и многостороннего использования. |
ОК–УК | Международная служба деловых ответов |
QN – QZ | Неназначенный [а] |
РА-РЗ | Письмо зарегистрировано
|
Сб.-Вс. | Сдержанный [д] |
ТА–ТЗ | Сдержанный [д] |
УА-УЗ | Отправления письменной корреспонденции (когда коды L, M, Q, R и V не применяются) [и]
|
ВА–ВЗ | Письменная корреспонденция застрахована
|
WA – WZ | Сдержанный [д] |
XA-XZ | Неназначенный [а] |
YA–YZ | Неназначенный [а] |
ЗА-ЗЗ | Только для внутреннего, двустороннего и многостороннего использования. |
Расчет контрольной цифры
[ редактировать ]- Не обращайте внимания на код индикатора обслуживания и код страны.
- Присвойте веса 8, 6, 4, 2, 3, 5, 9, 7 восьми цифрам слева направо.
- Вычислите S , сумму каждой цифры, умноженную на ее вес.
- Например, для числа 47312482: S = 4×8 + 7×6 + 3×4 + 1×2 + 2×3 + 4×5 + 8×9 + 2×7 = 200.
- Вычислите контрольную цифру C = 11 − ( S mod 11).
- Если C = 10, измените на C = 0.
- Если C = 11, измените на C = 5.
- Для примера 47312482 C = 11 – (200 по модулю 11) = 11 – 2 = 9.
Код Python для расчета контрольных цифр
[ редактировать ]Для Python 3.6 или новее:
def get_check_digit(num: int) -> int:
"""Get S10 check digit."""
weights = [8, 6, 4, 2, 3, 5, 9, 7]
sum = 0
for i, digit in enumerate(f"{num:08}"):
sum += weights[i] * int(digit)
sum = 11 - (sum % 11)
if sum == 10:
sum = 0
elif sum == 11:
sum = 5
return sum
Код JavaScript для расчета контрольной цифры
[ редактировать ]function getCheckDigit(num) {
const weights = [8, 6, 4, 2, 3, 5, 9, 7];
const numArr = Array.from(String(num), Number);
let sum = 0;
numArr.forEach((n, i) => sum = sum + (n * weights[i]));
sum = 11 - (sum % 11);
if (sum == 10) sum = 0;
else if (sum == 11) sum = 5;
return sum;
}
Код Haskell для расчета контрольных цифр
[ редактировать ]checkDigit :: [Int] -> Int
checkDigit ns
| c == 11 = 5
| c == 10 = 0
| otherwise = c
where weights = [8, 6, 4, 2, 3, 5, 9, 7]
s = sum $ zipWith (*) weights ns
c = 11 - (s `mod` 11)
См. также
[ редактировать ]- Серийный код транспортного контейнера , родственный стандарт.
Примечания
[ редактировать ]- ^ Jump up to: а б с д и ж г час я «Любые комбинации двух буквенных символов, которые еще не предназначены для универсального использования или не предназначены исключительно для внутреннего/двустороннего/многостороннего использования, могут быть назначены с разрешения Совета по стандартам ВПС» (стр. 2). [1]
- ^ «В принципе, использование диапазона кодов AV – AZ предназначено для идентификации предметов, отслеживаемых с помощью RFID». (стр. 4) [1]
- ^ «Таким образом: а) посылки с объявленной ценностью могут иметь индикатор обслуживания, отличный от CV; и б) индикатор обслуживания CV не обязательно означает, что посылка является посылкой с объявленной ценностью». (стр. 4) [1]
- ^ Jump up to: а б с д и «Чтобы снизить риск путаницы между штрих-кодами идентификаторов S10 и штрих-кодами, в которых используются идентификаторы данных ISO/IEC 15418, комбинации символов JA–JZ; KA–KZ; SA–SZ; TA–TZ и WA–WZ зарезервированы и не могут быть изменены. назначены как действительные значения индикатора обслуживания». (стр.2) [1]
- ^ «Использование диапазона кодов UA – UZ предназначено для отправлений письменной корреспонденции, содержащих товары, требующие идентификатора S10 и без ориентированного на клиента отслеживания. Идентификатор используется для видимости в цепочке поставок, например, в сообщении ITMATT для электронных предварительных данных. ." (стр. 4) [1]
Ссылки
[ редактировать ]- ^ Jump up to: а б с д и ж г «S10 Идентификация почтовых отправлений – 13-значный идентификатор» (PDF) . ВПС . 17.10.2017 . Проверено 5 марта 2024 г.
Внешние ссылки
[ редактировать ]- Проект S10:
- Список кодов индикаторов обслуживания ВПС, список 124
- Онлайн-валидатор номеров отслеживания S10