public function updateBill(S\UpdateBill $param) { // Проверки подписи if ($param->login != $this->login) { throw new E\LoginException('Wrong login: '******'utf-8', 'windows-1251', $param->txn) . strtoupper(md5(iconv('utf-8', 'windows-1251', $this->password))))); if ($param->password != $crypt) { throw new E\PasswordException('Wrong sign. Expected: ' . $crypt . ', got: ' . $param->password); } // Обновляем, как рекомендует QIWI, статус // Это нужно для дополнительной защиты $param = $this->client->checkBill($param->txn); // Вызываем обработчик, передав расшифрованный статус $callback = $this->callback; $result = $callback($param); // Выдаем ответ QIWI $ret = new S\UpdateBillResponse(); $ret->updateBillResult = $result; return $ret; }