Acceso denegado para CURL Post

Intento iniciar sesión en Walmart usando CURL, el código funciona perfectamente. Sin embargo, cada vez que activo el CURLOPT_POST recibo un error Acceso denegado.

Este es el código que probé:

  

No sé lo que estoy haciendo mal, por favor, ayúdenme.

Aquí hay un ejemplo de trabajo.

Primero debe solicitar la página de inicio para establecer cookies base y luego publicar las credenciales en la página de inicio de sesión. Si se devuelve un error 403, las credenciales son incorrectas.

 < ?php $base_url = 'https://www.walmart.com/'; $login_url = 'https://www.walmart.com/account/api/signin'; $user_agent = "Mozilla/5.0 (X11; Linux i686; rv:24.0) Gecko/20140319 Firefox/24.0 Iceweasel/24.4.0"; $username = 'user@example.com'; $password = 'password'; $ch = curl_init(); curl_setopt($ch, CURLOPT_URL, $base_url); curl_setopt($ch, CURLOPT_USERAGENT,$user_agent); curl_setopt($ch, CURLOPT_RETURNTRANSFER,true); curl_setopt($ch, CURLOPT_FOLLOWLOCATION,True); curl_setopt($ch, CURLOPT_AUTOREFERER, 1); curl_setopt($ch, CURLOPT_HEADER, 1); curl_setopt($ch, CURLOPT_ENCODING, 'gzip, deflate'); curl_setopt($ch, CURLOPT_COOKIEFILE, ''); curl_setopt($ch, CURLOPT_TIMEOUT,30); //curl_setopt($ch, CURLOPT_VERBOSE, 1); //curl_setopt($ch, CURLOPT_STDERR, fopen('php://output', 'r')); //curl_setopt($ch,CURLOPT_PROXY,"183.78.169.60:37899"); //curl_setopt($ch,CURLOPT_PROXYTYPE,CURLPROXY_SOCKS5); $resp = curl_exec($ch); $headers = array( 'X-Requested-With: XMLHttpRequest', ); $post = array( 'username' => $username, 'password' => $password, 'login-captcha-value' => '', 'sensor-data' => '', 'clearPCID' => '1', ); curl_setopt($ch, CURLOPT_URL, $login_url); curl_setopt($ch, CURLOPT_POST, 1); curl_setopt($ch, CURLOPT_POSTFIELDS, http_build_query($post)); curl_setopt($ch, CURLOPT_HTTPHEADER, $headers); $exec = curl_exec($ch); $info = curl_getinfo($ch); if ($info['http_code'] != 200) { echo "Login failed! HTTP code {$info['http_code']}
\n"; var_dump($exec); exit; } echo "Login successful!
\n"; // you are now logged in, use $ch to request pages as the logged in user $url = 'https://www.walmart.com/account'; curl_setopt($ch, CURLOPT_URL, $url); curl_setopt($ch, CURLOPT_POST, 0); $account = curl_exec($ch);