What steps will reproduce the problem?
1. Google checkout sends response to cart
What is the expected output?
The response from Google should be accepted.
What do you see instead?
Google checkout receives error "Failed to get basic authentication headers"
What version of the product are you using?
7541 2011-07-07 08:51:35Z gBrunier
On what operating system?
FreeBSD 8.2-STABLE #0 amd64, server api: CGI/FastCGI, php 5.3.6, Apache 2.2.20
Please provide any additional information below.
Using prestashop 1.4.3 and this is how I worked around this issue.
create .htaccess file in /modules/gcheckout/.htaccess
<IfModule mod_rewrite.c>
RewriteBase /modules/gcheckout/library
RewriteCond %{HTTP:Authorization} !^$
RewriteRule validation.php
validation.php?HTTP_AUTHORIZATION=%{HTTP:Authorization} [QSA,L]
</IfModule>
modify HttpAuthentication function in
/modules/gcheckout/library/googleresponse.php
function HttpAuthentication($headers=null, $die=true) {
if (!is_null($headers)) {
$_SERVER = $headers;
}
list($_SERVER['PHP_AUTH_USER'], $_SERVER['PHP_AUTH_PW']) = explode(':', base64_decode(substr($_GET['HTTP_AUTHORIZATIOIZATION'], 6)));
if (isset($_SERVER['PHP_AUTH_USER']) && isset($_SERVER['PHP_AUTH_PW'])) {
$compare_mer_id = $_SERVER['PHP_AUTH_USER'];
$compare_mer_key = $_SERVER['PHP_AUTH_PW'];
unset($_SERVER['PHP_AUTH_USER']);
unset($_SERVER['PHP_AUTH_PW']);
}
// IIS Note:: For HTTP Authentication to work with IIS,
// the PHP directive cgi.rfc2616_headers must be set to 0 (the default value).
elseif (isset($_SERVER['HTTP_AUTHORIZATION'])){
list($compare_mer_id, $compare_mer_key) = explode(':',
base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'],
strpos($_SERVER['HTTP_AUTHORIZATION'], " ") + 1)));
} elseif (isset($_SERVER['Authorization'])) {
list($compare_mer_id, $compare_mer_key) = explode(':',
base64_decode(substr($_SERVER['Authorization'],
strpos($_SERVER['Authorization'], " ") + 1)));
} else {
$this->SendFailAuthenticationStatus(
"Failed to Get Basic Authentication Headers",$die);
return false;
}
if ($compare_mer_id != $this->merchant_id
|| $compare_mer_key != $this->merchant_key) {
$this->SendFailAuthenticationStatus("Invalid Merchant Id/Key Pair",$die);
return false;
}
return true;
}
Original issue reported on code.google.com by sven.sve...@gmail.com on 12 Oct 2011 at 7:34
Original issue reported on code.google.com by
sven.sve...@gmail.com
on 12 Oct 2011 at 7:34