|
Как проконтролировать двадцатипятизначный УИП в платежке ?
|
|||
---|---|---|---|
#18+
Здравствуйте. Написал функцию, но чувствую, что неправильно понял алгоритм. Может у кого-нибудь уже есть готовое решение ? Или объясните, пожалуйста, что я делаю не так. автор*Приложение 12 к Положению Банка России от 19 июня 2012 года N 383-П "О правилах осуществления перевода денежных средств* ПОРЯДОК ФОРМИРОВАНИЯ ПОЛУЧАТЕЛЕМ СРЕДСТВ УНИКАЛЬНОГО ИДЕНТИФИКАТОРА ПЛАТЕЖА И ЕГО КОНТРОЛЯ БАНКОМ ПЛАТЕЛЬЩИКА В СЛУЧАЕ ПЕРЕВОДА ДЕНЕЖНЫХ СРЕДСТВ НА БАНКОВСКИЙ СЧЕТ ПОЛУЧАТЕЛЯ СРЕДСТВ, ОТКРЫТЫЙ В ЦЕЛЯХ ИДЕНТИФИКАЦИИ ПЛАТЕЖА Список изменяющих документов (введен Указанием Банка России от 29.04.2014 N 3248-У) 1. Получатель средств формирует уникальный идентификатор платежа с учетом следующего: 1 разряд - контрольный ключ, 2 - 25 разряды - информация о платеже (2 - 16 разряды - цифры, 17 - 25 разряды - символы). Если часть символов уникального идентификатора платежа не используется, то свободные знаки обозначаются нулями. 2. Банк плательщика контролирует наличие в распоряжении в реквизите "Код" уникального идентификатора платежа при наличии в реквизите "Сч. N" получателя средств номера банковского счета получателя средств, открытого в целях идентификации платежа. Банк плательщика контролирует уникальный идентификатор платежа посредством проверки контрольного ключа. Контрольный ключ рассчитывается с применением 1 - 5 разрядов реквизита "Сч. N" получателя средств и 1 - 16 разрядов реквизита "Код", а также следующих весовых коэффициентов, установленных для каждого разряда: Номера разрядов 1 2 3 4 5 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 Коэффициенты 3 7 1 3 7 3 7 1 3 7 3 7 1 3 7 3 7 1 3 7 3 Расчет контрольного ключа осуществляется в следующем порядке: значение контрольного ключа приравнивается нулю; рассчитываются произведения значений разрядов на соответствующие весовые коэффициенты; рассчитывается сумма значений младших разрядов полученных произведений; младший разряд вычисленной суммы умножается на три; значение контрольного ключа принимается равным младшему разряду полученного произведения. Проверка контрольного ключа осуществляется посредством расчета произведения значений разрядов на соответствующие весовые коэффициенты с учетом значения контрольного ключа. Значение контрольного ключа считается верным при получении суммы, кратной десяти. Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20. 21. 22. 23. 24. 25. 26. 27. 28. 29. 30. 31. 32. 33. 34. 35. 36. 37. 38. 39. 40. 41. 42. 43. 44. 45. 46. 47. 48. 49. 50. 51. 52.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 11:10 |
|
Как проконтролировать двадцатипятизначный УИП в платежке ?
|
|||
---|---|---|---|
#18+
Непонятно излишнее и туманное описание алгоритма проверки вычисленного ключа, т.к. на входе мы уже знаем ключ и есть с чем сравить. Проверка контрольного ключа осуществляется посредством расчета произведения значений разрядов на соответствующие весовые коэффициенты с учетом значения контрольного ключа. Значение контрольного ключа считается верным при получении суммы, кратной десяти. Ниже усовершенствованный вариант. Я правильно мыслю ? Код: sql 1. 2. 3. 4. 5. 6. 7. 8. 9. 10. 11. 12. 13. 14. 15. 16. 17. 18. 19. 20.
... |
|||
:
Нравится:
Не нравится:
|
|||
03.12.2014, 14:24 |
|
|
start [/forum/topic.php?fid=41&msg=38823680&tid=1582482]: |
0ms |
get settings: |
11ms |
get forum list: |
15ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
85ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
40ms |
get tp. blocked users: |
2ms |
others: | 327ms |
total: | 502ms |
0 / 0 |