This post is for anyone having trouble achieving Level 2 integration for Google checkout in Zen Cart v 1.3.8a.

My problem was, although everything was correctly installed, (files, SSL, Merchant ID, etc etc etc), Google checkout was still performing at Level 1 integration (customer can purchase items through google checkout button however there is no communication between Google and your admin).
No account is created for the customer, orders do not show up in admin, stock is not depreciated because the order is not recorded in the database.

I was getting Google Checkout Errors stating that my callback URL was not accessible.

After MUCH research in google code forums, i found a bit of advice that worked to fix this.

Please read, code.google.com/p/google-checkout-php-sample-code/issues/detail?id=36

as it refers to this php snippet:

PHP Code:
 function HttpAuthentication($headers=null$die=true) {
      if(!
is_null($headers)) {
        
$_SERVER $headers;
      }
      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'];
      }
  
//  IIS Note::  For HTTP Authentication to work with IIS, 
  // the PHP directive cgi.rfc2616_headers must be set to 0 (the default value). 
      
else if(isset($_SERVER['HTTP_AUTHORIZATION'])){
        list(
$compare_mer_id$compare_mer_key) = explode(':'
            
base64_decode(substr($_SERVER['HTTP_AUTHORIZATION'],
            
strpos($_SERVER['HTTP_AUTHORIZATION'], " ") + 1)));
      } else if(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;
    } 
it worked for me!