The actual FedEx script is rather large. It was written for Zen Cart. The fuction for setting the curl statements is;
Code: Select all
function _AccessFedex($data)
{
if (MODULE_SHIPPING_FEDEX_GROUND_SERVER == 'production') {
$this->server = 'gateway.fedex.com/GatewayDC';
} else {
$this->server = 'gatewaybeta.fedex.com/GatewayDC';
}
if (MODULE_SHIPPING_FEDEX_GROUND_CURL == "NONE") {
$ch = curl_init();
// added for proxy
if (MODULE_SHIPPING_FEDEX_GROUND_CURL_PROXY != 'NONE') {
curl_setopt ($ch, CURLOPT_HTTPPROXYTUNNEL, true);
curl_setopt ($ch, CURLOPT_PROXYTYPE, CURLPROXY_HTTP);
curl_setopt ($ch, CURLOPT_PROXY, MODULE_SHIPPING_FEDEX_GROUND_CURL_PROXY);
}
// end proxy settings
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_URL, 'https://' . $this->server);
if (MODULE_SHIPPING_FEDEX_GROUND_TIMEOUT != 'NONE') curl_setopt($ch, CURLOPT_TIMEOUT, MODULE_SHIPPING_FEDEX_GROUND_TIMEOUT);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
curl_setopt($ch, CURLOPT_SSL_VERIFYHOST, 0);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("Referer: " . STORE_NAME,
"Host: " . $this->server,
"Accept: image/gif,image/jpeg,image/pjpeg,text/plain,text/html,*/*",
"Pragma:",
"Content-Type:image/gif"));
curl_setopt($ch, CURLOPT_POSTFIELDS, $data);
$reply = curl_exec($ch);
curl_close ($ch);
} else {
$this->command_line = MODULE_SHIPPING_FEDEX_GROUND_CURL . " " . (MODULE_SHIPPING_FEDEX_GROUND_TIMEOUT == 'NONE' ? '' : '-m ' . MODULE_SHIPPING_FEDEX_GROUND_TIMEOUT) . " -s -e '" . STORE_NAME . "' --url https://" . $this->server . " -H 'Host: " . $this->server . "' -H 'Accept: image/gif,image/jpeg,image/pjpeg,text/plain,text/html,*/*' -H 'Pragma:' -H 'Content-Type:image/gif' -d '" . $data . "' 'https://" . $this->server . "'";
exec($this->command_line, $this->reply);
$reply = $this->reply[0];
}
return $reply;
}