• Как создать Токен для Tinkoff?

    https://www.tinkoff.ru/kassa/dev/payments/#tag/Sta...
    Видимо таки какие-то параметры не те указываешь.

    Вот, как на самом деле формируется токен:
    https://www.tinkoff.ru/kassa/dev/payments/#section...
    Перед выполнением запроса MAPI проверяет, можно ли доверять его инициатору. Для этого сервер проверяет подпись запроса. В MAPI используется механизм подписи с помощью токена. Мерчант должен добавлять токен с каждому запросу, где это требуется.

    Токен - это не просто конкатенация. Это конкатенация + хэширование


    Она направила на документацию и на этот сайт https://tokentcs.web.app/

    Этот сайт как раз демонстрирует, как происходит генерация токена исходя из пароля и параметров запроса

    Вот прям пошаговый алгоритм:
    1. Собрать массив передаваемых данных в виде пар Ключ-Значения. В массив нужно добавить только параметры корневого объекта. Вложенные объекты и массивы не участвуют в расчете токена.

    В нашем случае это TerminalKey и PaymentId

    2. Добавить в массив пару {Password, Значение пароля}. Пароль можно найти в личном кабинете Мерчанта
    3. Отсортировать массив по алфавиту по ключу
    У нас получается Password, PaymentId, TerminalKey
    4. Конкатенировать только значения пар в одну строку
    У нас получается Password + PaymentID + TerminalKey
    ВАЖНО! payment_id нужно брать именно такой, какой тебе пришёл из API. Лишние или недостающие нули - всё сразу пойдёт по сам-знаешь-какому месту.

    5. Применить к строке хеш-функцию SHA-256
    В питоне для этого можно использовать hashlib
    Я хз каким образом без этого у belkinark заработало. Мб он что-то напутал.
    6. Добавить получившийся результат в значение параметра Token в тело запроса и отправить запрос
    Ответ написан
    8 комментариев
  • Кто-нибудь использует очки для компьютера?

    PretorDH
    @PretorDH
    HTML5, CSS3, PHP, JS - люблю в чистом виде.
    Значит так комрады:
    Сижу за компом с 1989 года... по 8-16 часов в день. 2 месяца назад первый раз за 20 лет проверял зрение, проходил коммисию для водительских прав. Окулист был в шоке, зрение практически 100%.

    Не курю - очень важный фактор (муравьиная кислота разедает роговицу, сужение сосудов причина ндостаточного питания глазных мязов и т.д...). Так, что если курите будет только хуже, обмен свежего воздуха между глазом и очками снижается, и значит увеличивается концентрация муравьиной кислоты на роговице. В очках снижается общая подвижность глаза, а значит еще более снижается очистка и питание глазных мязов. Все болезни глаз в первую очередь от нарушения лимфатического и кровеносного обмена - это первопричина.

    Все другие факторы: освещеннось, тип монитора, длительность работы за компом - влияют на утомляемость, но никак на здоровье глаз. С возрастом просто критическая усталость у человека начинается раньше. Глаз это не слух, где идет механическая выработка. Это как механика и электроника - механика изнашивается, а электроника подвержена только радиационному воздействию. Сетчатку можно только сжечь ультрафиолетом или лазерным излучением например электро сваркой. А вот мышцы можно просто забить их же продуктами жизнедеятельности например молочной кислотой. И если лимфатическая система не чистит мышцы, будет спазм, а с очками он может стать хроническим и развиться косоглазие, дальнозоркость, близорукость или астигматизм. А если с кристалика будет плохой отток продуктов жизнедеятельности, то он потускнеет и будет катаракта.

    Для того что бы описанных выше являений не было, решение есть:
    • бросьте курить;
    • делайте зарядку для глаз, хотябы раз в день и при усталости (но лучше отдохнуть);
    • поставьте два монитора, тогда двигать глазами будете больше и будет лучше кровообращение и отвод лимфы (в очках ви будете двигать головой, а не глазами);
    • два раза в день по 1-му часу выходите на свежий воздух, например к турнику;
    Ответ написан
    2 комментария
  • Кто-нибудь использует очки для компьютера?

    xztau
    @xztau
    Я
    Заделяюсь опытом.
    Иногда пользую на работе заказанные в оптике компьютерные очки с линзами zeiss sola чтототам. Прозрачные антибликовые (слегка зеленоватые на отблеск).
    По опыту, в очках немного комфортнее сидеть, если долго. Но всё равно не то.
    Вообще, задача очков сейчас, срезать синий цвет убрать ультрафиолет и блики уменьшить. + Убрать мерцание от ламп дневного света (самое противное).
    Слышал совет от окулиста насчёт жёлтой линзы - защищает макулу, срезая тот самый синий цвет с ультрафиолетом, вредные для неё.
    В путешествии купил Jins PC Фильтр коричневатый, если совсем ярко - немного помогает. В остальном не удобно.
    Попались 3M 2822. Прикольно. По началу всё жёлтое - не привычно. Потом легче - увеличивают контраст, если пялить в темную тему редактора текста. Минус - небольшие загрязнения на линзе значительно ухудшают видимость + бликуют зверски. Но это так - эксперимент.
    Хочу себе gunnar попробовать с жёлтым светофильтром, но они, похоже, немного приближают (да и дорогие, заразы). Жду гиковых отзывов:) О гуннарах, вроде бы на гиктаймс что то писали.

    А вообще, присоединюсь к Avarskiy - регулируйте освещённость делайте перерывы каждый час и выполняйте зарядку для глаз (палминг (потереть ладони, чтобы тёплыми были, и накрыть ими глаза. Глаза открыть и расслабить, пытаясь глядеть далеко в темноту или представляя кошечек), зарядка). Обязательно отходите от монитора и смотрите вдаль, расслабляя мышцы. И чтобы монитор не мерцал - это важно!

    Извиняюсь за сумбурный ответ.
    Я очками заинтересовался, когда у меня появились точечки перед глазами. Сказали, что это сосудики и с этим придётся всю жизнь. Стало поздно очковать, ищу панацею:)
    Ответ написан
    5 комментариев
  • Как получить все данные о товаре по его id?

    @VarIzo
    "select" => [
                "*",
                "SECTION_NAME" => "SECTION.NAME",
                "PRICE" => "PRICE_LIST.PRICE",
                "QUANTITY" => "PRODUCT.QUANTITY",
            ],
    'runtime' => [
                'PRICE_LIST' => [
                    'data_type' => \Bitrix\Catalog\PriceTable::class,
                    'reference' => [
                        '=this.ID' => 'ref.PRODUCT_ID',
                    ],
                    'join_type' => 'left'
                ],
                'PRODUCT' => [
                    'data_type' => \Bitrix\Catalog\ProductTable::class,
                    'reference' => [
                        '=this.ID' => 'ref.ID',
                    ],
                    'join_type' => 'left'
                ],
                'SECTION' => [
                    'data_type' => \Bitrix\Iblock\SectionTable::class,
                    'reference' => [
                        '=this.IBLOCK_SECTION_ID' => 'ref.ID',
                    ],
                    'join_type' => 'left'
                ],
            ],


    Потом при обходе

    $img = CFile::GetPath($product['PREVIEW_PICTURE']);
    Ответ написан
    2 комментария