Probleem
Een ongeldige consumentensleutel en/of de authenticatieheader zorgen ervoor dat je de onderstaande foutmelding krijgt en dat je problemen ondervindt bij het maken van de verbinding tussen Retail POS en WooCommerce.
Af en toe kan het voorkomen dat sommige servers de authenticatieheader niet goed verwerken. Als je een foutmelding "Consumer key is invalid/missing" (consumentensleutel is ongeldig/ontbreekt) ziet bij het verifiëren via SSL, betekent dit dat er een probleem is met je server.
Configuratie
- Retail POS voor pc of Mac
- WooCommerce integratie
Oorzaak
De http-authenticatieheader die je webserver (bijv. Apache) ontvangt in het verzoek, wordt uiteindelijk niet ingevuld als de variabele PHP $_SERVER['HTTP_AUTHORIZATION']
die PHP gebruikt om de variabelen $_SERVER['PHP_AUTH_USER'
] en $_SERVER['PHP_AUTH_PW']
vast te leggen. WooCommerce gebruikt deze variabelen voor de authenticatie.
Als de variabelen ontbreken, resulteert dit in een 401-foutmelding "Consumer secret is invalid" (Consumentencode is ongeldig) of "Unauthorized" (Niet-geautoriseerd), ook al zijn de verzonden gegevens correct.
Je kunt overwegen hiervoor OAuth 1.0a te gebruiken, maar zoals hierboven beschreven kan het erg lastig zijn om dit in te stellen. De meest voor de hand liggende manier om dit te omzeilen is om de basisauthenticatie uit te voeren door de gegevens in de URL op te nemen met het commando query/get parameters, maar dat is niet erg veilig, zelfs niet via https. We raden deze variant dan ook niet aan.
Oplossing
In de meeste gevallen volstaat het om een eenvoudige WordPress .htaccess-modificatie te gebruiken.
Neem in het bijzonder E=HTTP_AUTHORIZATION:%{HTTP:Authorization}
op in de eerste [L]
. De standaard WordPress .htaccess-bestanden kun je hier vinden.
Aanvullende informatie
Je kunt het beste contact opnemen met een ontwikkelaar of het webhostingbedrijf om je te helpen met dit probleem.
Zie de onderstaande Engelse artikelen voor meer informatie: