Перейти к содержанию

Рекомендуемые сообщения

Прошу помощи. Знаю, что тема не нова и есть похожие темы в которых описывают проблему работы внутреннего API, но я не нашел для себя ответа и честно говоря уже не знаю КАК эту проблему решить.

 

Началось все с того, что в админке начала появляться ошибка "нет доступа к API" или что-то похожее. Нужно было добавить свой IP для того, чтобы можно было вносить изменения в статус заказа и редактировать/удалять заказы.

Сейчас у меня проблема, что нельзя ни удалить, не отредактировать заказ, ни изменить статус.

Я проверил наличие своих IP-адресов в списке доступных для API, в настройках магазина во вкладке Опции выставлено API Пользователя, а также проверил, что ID созданного API совпадает с ID указанного в settings в базе данных, но тем не менее прав на редактирование заказов у меня нет. Есть подозрение, что поломан механизм создания сессий в API, если так можно вообще выразиться, потому что я слабо понимаю как это API работает.

 

При попытке изменить статут заказа, вываливается ошибка:

Внимание: У Вас нет разрешения на доступ к API! 

Если с изменением статуса можно применить костыль в виде отключения проверки в файле controller/api/order.php

if (!isset($this->session->data['api_id'])) {

но что делать с редактированием заказа и удалением?

 

При попытке удалить заказ, я получаю ошибку во всплывающем окне: Internal Server Error, а в логах веб-сервера:

PHP Fatal error:  Call to a member function getId() on a non-object in /var/www/shop/system/library
/cart.php on line 35, referer: http://мой-домен/admin/index.php?route=sale/order&token=24JTAZDlN8I7gTdC91zYLdSfJnh1rAp3&filter_order_status=2,1,12

Установлен модуль simple для формирования заказов

Прошу помощи. Возможно уже с таким кто-то сталкивался и есть решение?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Попробовал полностью пересоздать запись API в Система-Пользователи-API. Сейчас даже не сообщает о том, что надо добавить IP для работы с API.

В настройках магазина само собой выставил "API Пользователя" новосозданный API

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

есть подозрение, что проблема с моим хостингом. Из виртуалхоста убрал правило rewrite

#       RewriteCond %{HTTP_HOST} ^www.мой-домен.com
#       RewriteRule (.*) http://мой-домен.com/$1 [R=301,L]

после этого в админке стала появляться ошибка

ВНИМАНИЕ: Ваш IP адрес 10.11.3.22 не имеет доступа к API! 

Но этот IP уже добавлен. Так или иначе я сдвинулся с мертвой точки. Буду думать дальше.

Изменено пользователем tambu34

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Проблема вроде бы как решилась. Честно говоря не понимая механизма работы этого API мне сложно делать выводы. Заработало в такой конфигурации:

Apache 2.4.6 + mpm-itk:

<VirtualHost IP-сервера>
    ServerAdmin admin@example.com
    DocumentRoot /var/www/shop
    ServerName example.com
    ServerAlias www.example.com
    AddDefaultCharset UTF-8
    DirectoryIndex index.html index.php
    RewriteEngine on
    AssignUserId shop shop
    <IfModule mod_gzip.c>
	mod_gzip_on Yes
	mod_gzip_dechunk Yes
	mod_gzip_item_include file \.(html?|txt|css|js|php|pl)$ 
	mod_gzip_item_include handler ^cgi-script$
	mod_gzip_item_include mime ^text\.*
	mod_gzip_item_include mime ^application/x-javascript.*
	mod_gzip_item_exclude mime ^image\.*
	mod_gzip_item_exclude rspheader ^Content-Encoding:.*gzip.* 
    </IfModule>
    <FilesMatch "(?i)((\.tpl|\.ini|\.log|(?<!robots)\.txt))">
      Order deny,allow
      Deny from all
    </FilesMatch>
    <Directory "/var/www/shop">
        AllowOverride none
	Options +FollowSymlinks
	Options -Indexes
	RewriteBase /
	RewriteRule ^sitemap.xml$ index.php?route=feed/google_sitemap [L]
	RewriteRule ^googlebase.xml$ index.php?route=feed/google_base [L]
	RewriteRule ^system/download/(.*) index.php?route=error/not_found [L]
	RewriteCond %{REQUEST_FILENAME} !-f
	RewriteCond %{REQUEST_FILENAME} !-d
	RewriteCond %{REQUEST_URI} !.*\.(ico|gif|jpg|jpeg|png|js|css)
	RewriteRule ^([^?]*) index.php?_route_=$1 [L,QSA]
	Require all granted
	php_value session.save_path /var/www/shop/tmp
    </Directory>
    <Directory "/var/www/shop/admin">
	AuthUserFile /etc/httpd/.htpasswd
	AuthType Basic
	AuthName "Password-protected Area"
	Require valid-user
    </Directory>
</VirtualHost>

файл admin/config.php

ВАЖНО!

// HTTP
define('HTTP_SERVER', 'http://example.com/admin/');
define('HTTP_CATALOG', 'http://example.com/');

// HTTPS
define('HTTPS_SERVER', 'http://example.com/admin/');
define('HTTPS_CATALOG', 'http://example.com/');

 

В других вариациях у меня начинались проблемы с API. Всё равно у меня есть ощущение, что где-то что-то криво сделано, т.к. не со всех IP-адресов у меня это гребаное API работает в адмике. Может есть еще какие-то нюансы работы домашних роутеров? NAT?

Вобщем вопросы остались, но вроде работает. Покрайней мере заказы я снова могу редактировать.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

рано порадовался. Снова вылазят ошибки связанные с управлением заказами. Заказы нельзя отредактировать/удалить или изменить статус. Нет доступа к API.

На этом форуме все выглядит просто как монолог с моей стороны, но я всё же надеюсь, что найдутся сочувствующие и помогут с решением проблемы

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

думаю проблема решена:

На виртуальной машине поднял сервер, влил чистый opencart, установил все свои модули, после влил БД с рабочего сайта и поменял файлы, где я вносил изменения.

Теперь у меня всё корректно заработало.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты
В 17.10.2016 в 21:23, tambu34 сказал:

думаю проблема решена:

На виртуальной машине поднял сервер, влил чистый opencart, установил все свои модули, после влил БД с рабочего сайта и поменял файлы, где я вносил изменения.

Теперь у меня всё корректно заработало.

 

 

Добрый день!

 

как в итоге решили проблему???

 

Система-пользователи-группы пользователей- выставляете права на группу(проставляем все галочки) - Админу все галки стоят!

Заходите в система-пользователи-апи - добавляете учетку с разрешенными ip - Создал, ключ апи сгенерировал, включил, IP записываются
Далее заходите в система-настройки-опции-api пользователей- выбираете созданный профиль - API пользователя выбран, кот был создан выше

 

Когда меняешь статус заказа, появляется это сообщение:    Внимание: У вас нет разрешения на доступ к API!

В чем проблема?

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Я вроде бы написал, как у меня решилась проблема :) Могу сказать одно - где-то у меня был косяк в коде.

Поделиться сообщением


Ссылка на сообщение
Поделиться на другие сайты

Для публикации сообщений создайте учётную запись или авторизуйтесь

Вы должны быть пользователем, чтобы оставить комментарий

Создать учетную запись

Зарегистрируйте новую учётную запись в нашем сообществе. Это очень просто!

Регистрация нового пользователя

Войти

Уже есть аккаунт? Войти в систему.

Войти

  • Последние посетители   0 пользователей онлайн

    Ни одного зарегистрированного пользователя не просматривает данную страницу

×

Важная информация

На нашем сайте используются файлы cookie и происходит обработка некоторых персональных данных пользователей, чтобы улучшить пользовательский интерфейс. Чтобы узнать для чего и какие персональные данные мы обрабатываем перейдите по ссылке. Если Вы нажмете «Я даю согласие», это означает, что Вы понимаете и принимаете все условия, указанные в этом Уведомлении о Конфиденциальности.