Pull to refresh

Comments 11

Система QIWI не имеет тестового режима или тестовой площадки


Это не так. Свяжитесь с саппортом.
Когда я их прикручивал, надо было специально просить, что бы включили в боевом режиме.
Хотя, возможно, что-то и поменялось.
Страница FAQ
Раздел: Настройка подключения
Вопрос: Есть ли у QIWI Кошелька тестовый сервер?
Ответ: Нет, тестового сервера нет.
А так же читайте там же ответы ниже: «Как такового тестового режима не существует.»
Про отсутствие тестового подтверждаю.
Мне пришлось лепить свой эмулятор сервиса для тестов.
Не понял насчёт п2. Смысл проверять статус по крону если уведомление о смене статуса счёта всё равное прийдёт? Насчёт адресов для сообщений от сервиса — почему их два? Я использовал один, на него приходят все уведомления? И ещё одно уточнение — в настройках нигде нет пункта для указания адреса для уведомлений для REST протокола. В данный момент указание адреса для уведомлений задаётся написанием соответствующего письма менеджеру, о чём и гласит надпись на странице ishop.qiwi.ru/protocolRest.action
Не понял насчёт п2. Смысл проверять статус по крону если уведомление о смене статуса счёта всё равное прийдёт?
Уведомление приходит через определённый интервал. Об этом написано в руководстве. Использование крона добровольная операция. Допустим если вам нужно завершить операцию быстрее, чем система пришлёт вам уведомление.

Насчёт адресов для сообщений от сервиса — почему их два? Я использовал один, на него приходят все уведомления?
Вы можете использовать и один адрес. Два для простоты. Один для успешного уведомления, другой для не успешного.

И ещё одно уточнение
Да, в данный момент указание адреса для уведомлений нужно задавать через менеджера.
А пункт «4.2. Авторизация при уведомлениях на сервер провайдера» не реализовывали?
Интересует алгоритм проверки X-Api-Signature
Нет, данный способ не реализовывался.
Пробовал, умаялся с проверкой зашифрованой подписи. Так не смог :(
начал с такого :)
$Sig = base64_encode(hash_hmac('sha1', $keys, $password));
и перепробовал разные комбинации подставлял shop_id, api_id, password для api, password для магазина, к сожалению ничего не вышло.
Буквально недавно озадачился этим же, ну и решение ниже
    public function notify() {
        if (!empty($_SERVER['HTTP_X_API_SIGNATURE'])) {
            ksort($_POST);
            $Invoice_parameters_byte = implode('|', $_POST);
            $Notification_password_byte = $this->getNotifyKey(); // секретная подпись получения от киви
            $sign = hash_hmac('sha1', $Invoice_parameters_byte, $Notification_password_byte, true);
            if (strcmp($_SERVER['HTTP_X_API_SIGNATURE'], base64_encode($sign))===0) {
                return true;
            }
        }
        return false;
    }
Работает, но в этом году станет значительно удобнее. :)
Sign up to leave a comment.

Articles