Я потратил много дней, пытаясь выяснить это, и кажется ли это общей проблемой. Я прочитал много других сообщений на ту же тему. Я перепробовал все решения, которые смог найти, и все же получаю те же результаты - не могу успешно подключить VendHQ (POS) моего клиента к моему магазину WooCommerce (WordPress 5.2.4, PHP 7.2). Я связался с VendHQ за помощью, но их решение, как и другие, не сработало.
Что я пробовал:
Следовал инструкциям VendHQ, создал мои ключи REST API WooCommerce и поместил их в настройку соединения VendHQ. Это дало первоначальную ошибку «woocommerce_rest_cannot_view, извините, вы не можете перечислить ресурсы, 401»
Я добавил следующий код в мой файл .htaccess, как было предложено несколько раз, но, к сожалению, не исправилвыпуск:
# BEGIN WordPress
SetEnvIf Authorization "(.)" HTTP_AUTHORIZATION=$1
RewriteEngine On
RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}]
RewriteBase /
RewriteRule ^index.php$ - [L]
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule . /index.php [L]
# END WordPress
Я изменяю файл apache httpd.conf, как было предложено пару раз, на AllowOverride All вместо значения по умолчанию None, и снова безуспешно. Я добавил приведенный ниже код в свой файл apache: "/etc/apache2/conf.d/includes/pre_main_global.conf"
<Directory "/var/www/">
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
Я не очень хорошо знаком с Apache и управляю директивами, потому что язнаю, насколько это опасно. Тем не менее, этот подход подходил несколько раз и казался прямым. После того как я обновил файл .conf и перезапустил сервер Apache, я все равно не смог установить соединение.
Наконец, я добавил больше кода в мой файл .htaccess:
Header always set Access-Control-Max-Age 1728000
Header always set Access-Control-Allow-Origin: "*"
Header always set Access-Control-Allow-Methods: "GET,POST,OPTIONS,DELETE,PUT"
Header always set Access-Control-Allow-Headers: "DNT,X-CustomHeader,Keep-Alive,User-Agent,X-Requested-With,If-Modified-Since,Cache-Control,C$"
Header always set Access-Control-Allow-Credentials true
Header always set Access-Control-Allow-Origin: "https://my_client_shop.com/"
Несмотря на все это, я все еще не могу соединить две системы, НО теперь я получил новую ошибку:
"We are unable to connect your WooCommerce store. Your website does not allow connections with Authorization Headers in the Vend API."
Я думал, что последнее изменение исправило бы это. Кто-нибудь видел эту проблему с ошибкой «Заголовки авторизации»?
Я тестировал ключи API WC в своем браузере Chrome:
https://my_client_shop.com/wp-json/wc/v2/system_status?consumer_key=ck_389f08cda9f8a802b366b1de8cb562cba95e462c&consumer_secret=cs_65fcd907905f9d8c64b38a7dd60de4f034526ff2
И он отображал детали файла json. Без ключей я снова получаю ошибку «Список не может быть 401». Таким образом, я предполагаю, что ключи на самом деле действительны.
Так что, кажется, мы приближаемся, но у меня нет идей.
Наконец, сайт магазина моего клиента находится на мультисайте, еслиэто имеет значение.
Так что я надеюсь, что кто-то еще прошел через все это и смог найти решение, которое работает, и может поделиться им :) Или указать, что я, возможно, пропустил или по ошибке,Большое спасибо за любые предложения.