Jump to content
  • Checkout
  • Login
  • Get in touch

osCommerce

The e-commerce.

FedEx - Web Services v9


greasemonkey

Recommended Posts

How can this be happening? And, more importantly, can anyone suggest a fix? I would encourage everyone to try a similar test to make certain that the prices you are displaying have some basis in reality. Thanks.

 

Start with a call to Fedex Webservices support. It could just be the way your account is setup at their end.

 

Anyone else with this issue?

-Dave

Link to comment
Share on other sites

Many thanks JOELphp, I don't have a file called purchase_ship_fedex.php... This doesn't seem to be part of the orginal mod.

 

 

 

Any thoughts?

 

Scrub your entire site for any MODULE_SHIPPING_FEDEX1_ references

any files with the old references should be updated... then apply the fixes PHPjoel suggests and test

 

 

let us know

-Dave

Link to comment
Share on other sites

Seems like the only option to get this module working in Godaddy is to get a dedicated or managed server that can cost up to $270 per month. This is because they do not allow shared servers to enable the SOAP extension.

 

Any suggestions? Is there another module?

 

Erik

Link to comment
Share on other sites

Something weird happened after almost giving up on this module and SOAP extension not supported by Godaddy. I finally decided to disable it and enable the old Fedex Module I had and surprise! everything works perfectly with the Old extension using the new information I got from Fedex.

 

(w00t) :sweating: :blink:

Link to comment
Share on other sites

http://www.oscommerce.com/forums/topic/375063-fedex-web-services-v9/page__view__findpost__p__1638528

 

Hi All,

 

Regarding Automated FedEX labels:

 

1. I Installed FedEx - Web Services v9 for real time quotes. Now I'm back with quotes. So far so good.

 

2. Change production server reference in fedexdc.php, and the above replacement suggestions by Joel.

 

But all I get is a broken "Astra Barcode."

 

Hope this motivates someone.

Link to comment
Share on other sites

Anyone familiar with this error and can point me toward solution:

 

</pre> --><!-- <pre>stdClass Object

(

[HighestSeverity] => ERROR

[Notifications] => stdClass Object

(

[severity] => ERROR

[source] => crs

 => 517

[Message] => A rate request requires at least one requested package line item or one freight shipment line item.

[LocalizedMessage] => A rate request requires at least one requested package line item or one freight shipment line item.

)

 

[TransactionDetail] => stdClass Object

(

[CustomerTransactionId] => *** Rate Request v9 using PHP ***

)

 

[Version] => stdClass Object

(

[serviceId] => crs

[Major] => 9

[intermediate] => 0

[Minor] => 0

)

 

)

</pre> --

Link to comment
Share on other sites

Bryant, it seems like you're missing a <ns1:RequestedPackageLineItems> section in your request.

 

Posting below is a PHP CURL implementation of a getRates request. Just replace along the tags with your corresponding info.

 

$rq = '<?xml version="1.0" encoding="UTF-8"?>
<SOAP-ENV:Envelope xmlns:SOAP-ENV="http://schemas.xmlsoap.org/soap/envelope/" xmlns:ns1="http://fedex.com/ws/rate/v9"><SOAP-ENV:Body>';

$rq .= '<ns1:RateRequest>';
$rq .= '<ns1:WebAuthenticationDetail>';
$rq .= '<ns1:UserCredential>';
$rq .= '<ns1:Key>'.$this->fedex_key.'</ns1:Key>';
$rq .= '<ns1:Password>'.$this->fedex_pwd.'</ns1:Password>';
$rq .= '</ns1:UserCredential>';
$rq .= '</ns1:WebAuthenticationDetail>';
$rq .= '<ns1:ClientDetail>';
$rq .= '<ns1:AccountNumber>'.$this->fedex_act_num.'</ns1:AccountNumber>';
$rq .= '<ns1:MeterNumber>'.$this->fedex_meter_num.'</ns1:MeterNumber>';
$rq .= '</ns1:ClientDetail>';
$rq .= '<ns1:TransactionDetail>';
$rq .= '<ns1:CustomerTransactionId> *** Rate Request v9 using PHP ***</ns1:CustomerTransactionId>';
$rq .= '</ns1:TransactionDetail>';
$rq .= '<ns1:Version>';
$rq .= '<ns1:ServiceId>crs</ns1:ServiceId>';
$rq .= '<ns1:Major>9</ns1:Major>';
$rq .= '<ns1:Intermediate>0</ns1:Intermediate>';
$rq .= '<ns1:Minor>0</ns1:Minor>';
$rq .= '</ns1:Version>';
$rq .= '<ns1:ReturnTransitAndCommit>true</ns1:ReturnTransitAndCommit>';
$rq .= '<ns1:RequestedShipment>';
$rq .= '<ns1:ShipTimestamp>'.date('Y-m-d\TH:i:s'.substr(date('O'), 0, 3).':'.substr(date('O'), 3)).'</ns1:ShipTimestamp>';
$rq .= '<ns1:DropoffType>'.$this->_setDropOff().'</ns1:DropoffType>';
$rq .= '<ns1:PackagingType>YOUR_PACKAGING</ns1:PackagingType>';
$rq .= '<ns1:TotalInsuredValue>';
$rq .= '<ns1:Currency>USD</ns1:Currency>';
$rq .= '</ns1:TotalInsuredValue>';
$rq .= '<ns1:Shipper>';
$rq .= '<ns1:Address>';
$rq .= '<ns1:StreetLines>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_ADDRESS_1.'</ns1:StreetLines>';
$rq .= '<ns1:StreetLines>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_ADDRESS_2.'</ns1:StreetLines>';
$rq .= '<ns1:City>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_CITY.'</ns1:City>';
$rq .= '<ns1:StateOrProvinceCode>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_STATE.'</ns1:StateOrProvinceCode>';
$rq .= '<ns1:PostalCode>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_POSTAL.'</ns1:PostalCode>';
$rq .= '<ns1:CountryCode>'.$this->country.'</ns1:CountryCode>';
$rq .= '</ns1:Address>';
$rq .= '</ns1:Shipper>';
$rq .= '<ns1:Recipient>';
$rq .= '<ns1:Address>';
$rq .= '<ns1:StreetLines/>';
$rq .= '<ns1:StreetLines/>';
$rq .= '<ns1:PostalCode>'.$pc.'</ns1:PostalCode>';
$rq .= '<ns1:CountryCode>US</ns1:CountryCode>';
$rq .= '<ns1:Residential>true</ns1:Residential>';
$rq .= '</ns1:Address>';
$rq .= '</ns1:Recipient>';
$rq .= '<ns1:ShippingChargesPayment>';
$rq .= '<ns1:PaymentType>SENDER</ns1:PaymentType>';
$rq .= '<ns1:Payor>';
$rq .= '<ns1:AccountNumber>'.$this->fedex_act_num.'</ns1:AccountNumber>';
$rq .= '<ns1:CountryCode>'.$this->country.'</ns1:CountryCode>';
$rq .= '</ns1:Payor>';
$rq .= '</ns1:ShippingChargesPayment>';
$rq .= '<ns1:RateRequestTypes>LIST</ns1:RateRequestTypes>';
$rq .= '<ns1:PackageCount>'.$shipping_num_boxes.'</ns1:PackageCount>';
$rq .= '<ns1:PackageDetail>INDIVIDUAL_PACKAGES</ns1:PackageDetail>';
for ($i=0; $i<$shipping_num_boxes; $i++) {
$rq .= '<ns1:RequestedPackageLineItems>';
$rq .= '<ns1:Weight>';
$rq .= '<ns1:Units>'.MODULE_SHIPPING_FEDEX_WEB_SERVICES_WEIGHT.'</ns1:Units>';
$rq .= '<ns1:Value>'.$shipping_weight.'</ns1:Value>';
$rq .= '</ns1:Weight>';
$rq .= '</ns1:RequestedPackageLineItems>';
}
$rq .= '</ns1:RequestedShipment>';
$rq .= '</ns1:RateRequest>';
$rq .= '</SOAP-ENV:Body></SOAP-ENV:Envelope>';

$curl = curl_init();
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_POST, true);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, true);
curl_setopt($curl, CURLOPT_USERAGENT, "PHP-SOAP/5.3.9");
curl_setopt($curl, CURLOPT_HTTPHEADER, array('Connection: Keep-Alive', 'Content-Type: text/xml; charset=utf-8', 'SOAPAction: "getRates"', 'Content-Length: '.strlen($rq) ));
curl_setopt($curl, CURLOPT_POSTFIELDS, $rq);
curl_setopt($curl, CURLOPT_URL, "https://gateway.fedex.com/web-services/");
$response = curl_exec($curl);
curl_close($curl);
$response = str_replace('<v9:', '<', $response);
$response = str_replace('</v9:', '</', $response);
$response = str_replace('<env:', '<', $response);
$response = str_replace('</env:', '</', $response);
$response = str_replace('<soapenv:', '<', $response);
$response = str_replace('</soapenv:', '</', $response);

$sxml = new simplexml;
$resp1 = $sxml->xml_load_string($response);
$response = $resp1->Body->RateReply;

 

 

As you've probably already noticed the lack of support for soap will pose a couple of problems - providing alternative request mechanism and a lack of soap response parser. My solution to the second problem is a couple of str_replace calls on the response and a simplexml implementation for php4 (which by default lacks an xml_load_string function which I added to have the class looking like so:

 

if(!class_exists('simplexml')) {
class simplexml {
 var $result = array();
 var $ignore_level = 0;
 var $skip_empty_values = false;
 var $php_errormsg;
 var $evalCode="";

 function curl_get_file_contents($URL)
 {
  if(ini_get('allow_url_fopen') != 1) {
   @ini_set('allow_url_fopen', '1');
  }
  if(ini_get('allow_url_fopen') != 1) {
   $c = curl_init();
   curl_setopt($c, CURLOPT_RETURNTRANSFER, 1);
   curl_setopt($c, CURLOPT_URL, $URL);
   $contents = curl_exec($c);
   curl_close($c);
  }else{
   $contents = file_get_contents($URL);
  }
  if ($contents) return $contents;
  else return FALSE;
 }


 /**
 * Adds Items to Array
 *
 * @[member='param'] int $level
 * @[member='param'] array $tags
 * @[member='param'] $value
 * @[member='param'] string $type
 */
 function array_insert($level, $tags, $value, $type)
 {
  $temp = '';
  for ($c = $this->ignore_level + 1; $c < $level + 1; $c++) {
   if (isset($tags[$c]) && (is_numeric(trim($tags[$c])) || trim($tags[$c]))) {
	if (is_numeric($tags[$c])) {
	 $temp .= '[' . $tags[$c] . ']';
	} else {
	 $temp .= '["' . $tags[$c] . '"]';
	}
   }
  }
  //Fix for getting PHP variable like string in XML node values (Contributor:Saulius Okunevicius)
  $this->evalCode .= '$this->result' . $temp . "= '" . addslashes($value) . "';//(" . $type . ")\n";
  #echo $code. "\n";
 }

 /**
 * Define the repeated tags in XML file so we can set an index
 *
 * @[member='param'] array $array
 * @[member='Return'] array
 */
 function xml_tags($array)
 { $repeats_temp = array();
  $repeats_count = array();
  $repeats = array();

  if (is_array($array)) {
   $n = count($array) - 1;
   for ($i = 0; $i < $n; $i++) {
	$idn = $array[$i]['tag'].$array[$i]['level'];
	if(in_array($idn,$repeats_temp)){
	 $repeats_count[array_search($idn,$repeats_temp)]+=1;
	}else{
	 array_push($repeats_temp,$idn);
	 $repeats_count[array_search($idn,$repeats_temp)]=1;
	}
   }
  }
  $n = count($repeats_count);
  for($i=0;$i<$n;$i++){
   if($repeats_count[$i]>1){
	array_push($repeats,$repeats_temp[$i]);
   }
  }
  unset($repeats_temp);
  unset($repeats_count);
  return array_unique($repeats);
 }


 /**
 * Converts Array Variable to Object Variable
 *
 * @[member='param'] array $arg_array
 * @[member='Return'] $tmp
 */
 function array2object ($arg_array)
 {

  if (is_array($arg_array)) {
   $keys = array_keys($arg_array);
   if(!is_numeric($keys[0])) $tmp = new SimpleXMLObject;
   foreach ($keys as $key) {
	if (is_numeric($key)) $has_number = true;
	if (is_string($key)) $has_string = true;
   }
   if (isset($has_number) and !isset($has_string)) {
	foreach ($arg_array as $key => $value) {
	 $tmp[] = $this->array2object($value);
	}
   } elseif (isset($has_string)) {
	foreach ($arg_array as $key => $value) {
	 if (is_string($key))
	 $tmp->$key = $this->array2object($value);
	}
   }
  } elseif (is_object($arg_array)) {
   foreach ($arg_array as $key => $value) {
	if (is_array($value) or is_object($value))
	$tmp->$key = $this->array2object($value);
	else
	$tmp->$key = $value;
   }
  } else {
   $tmp = $arg_array;
  }
  return $tmp; //return the object
 }

 /**
 * Reindexes the whole array with ascending numbers
 *
 * @[member='param'] array $array
 * @[member='Return'] array
 */
 function array_reindex($array)
 {
  if (is_array($array)) {
   if(count($array) == 1 && array_key_exists(0, $array)){
	return $this->array_reindex($array[0]);
   }else{
	foreach($array as $keys => $items) {
	 if (is_array($items)) {
	  if (is_numeric($keys)) {
	   $array[$keys] = $this->array_reindex($items);
	  } else {
	   $array[$keys] = $this->array_reindex(array_merge(array(), $items));
	  }
	 }
	}
   }
  }

  return $array;
 }


 /**
 * Parse the XML generation to array object
 *
 * @[member='param'] array $array
 * @[member='Return'] array
 */
 function xml_reorganize($array)
 {
  $count = count($array);
  $repeat = $this->xml_tags($array);
  $repeatedone = false;
  $tags = array();
  $k = 0;
  for ($i = 0; $i < $count; $i++) {
   switch ($array[$i]['type']) {
   case 'open':
	array_push($tags, $array[$i]['tag']);
	if ($i > 0 && ($array[$i]['tag'] == $array[$i-1]['tag']) && ($array[$i-1]['type'] == 'close'))
	$k++;
	if (isset($array[$i]['value']) && ($array[$i]['value'] || !$this->skip_empty_values)) {
	 array_push($tags, '@content');
	 $this->array_insert(count($tags), $tags, $array[$i]['value'], "open");
	 array_pop($tags);
	}

	if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) {
	 if (($repeatedone == $array[$i]['tag'] . $array[$i]['level']) && ($repeatedone)) {
	  array_push($tags, strval($k++));
	 } else {
	  $repeatedone = $array[$i]['tag'] . $array[$i]['level'];
	  array_push($tags, strval($k));
	 }
	}

	if (isset($array[$i]['attributes']) && $array[$i]['attributes'] && $array[$i]['level'] != $this->ignore_level) {
	 array_push($tags, '@attributes');
	 foreach ($array[$i]['attributes'] as $attrkey => $attr) {
	  array_push($tags, $attrkey);
	  $this->array_insert(count($tags), $tags, $attr, "open");
	  array_pop($tags);
	 }
	 array_pop($tags);
	}
	break;

   case 'close':
	array_pop($tags);
	if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) {
	 if ($repeatedone == $array[$i]['tag'] . $array[$i]['level']) {
	  array_pop($tags);
	 } else {
	  $repeatedone = $array[$i + 1]['tag'] . $array[$i + 1]['level'];
	  array_pop($tags);
	 }
	}
	break;

   case 'complete':
	array_push($tags, $array[$i]['tag']);
	if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) {
	 if ($repeatedone == $array[$i]['tag'] . $array[$i]['level'] && $repeatedone) {
	  array_push($tags, strval($k));
	 } else {
	  $repeatedone = $array[$i]['tag'] . $array[$i]['level'];
	  array_push($tags, strval($k));
	 }
	}

	if (isset($array[$i]['value']) && ($array[$i]['value'] || !$this->skip_empty_values)) {
	 if (isset($array[$i]['attributes']) && $array[$i]['attributes']) {
	  array_push($tags, '@content');
	  $this->array_insert(count($tags), $tags, $array[$i]['value'], "complete");
	  array_pop($tags);
	 } else {
	  $this->array_insert(count($tags), $tags, $array[$i]['value'], "complete");
	 }
	}

	if (isset($array[$i]['attributes']) && $array[$i]['attributes']) {
	 array_push($tags, '@attributes');
	 foreach ($array[$i]['attributes'] as $attrkey => $attr) {
	  array_push($tags, $attrkey);
	  $this->array_insert(count($tags), $tags, $attr, "complete");
	  array_pop($tags);
	 }
	 array_pop($tags);
	}

	if (in_array($array[$i]['tag'] . $array[$i]['level'], $repeat)) {
	 array_pop($tags);
	 $k++;
	}

	array_pop($tags);
	break;
   }
  }
  eval($this->evalCode);
  $last = $this->array_reindex($this->result);
  return $last;
 }

 /**
 * Get the XML contents and parse like SimpleXML
 *
 * @[member='param'] string $file
 * @[member='param'] string $resulttype
 * @[member='param'] string $encoding
 * @[member='Return'] array/object
 */
 function xml_load_file($file, $resulttype = 'object', $encoding = 'UTF-8')
 {

  $php_errormsg="";
  $this->result="";
  $this->evalCode="";
  $values="";

  $data = $this->curl_get_file_contents($file);

  if (!$data){
   return 'Cannot open xml document: ' . (isset($php_errormsg) ? $php_errormsg : $file);
  }

  $parser = xml_parser_create($encoding);
  xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
  xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
  $ok = xml_parse_into_struct($parser, $data, $values);
  if (!$ok) {
   $errmsg = sprintf("XML parse error %d '%s' at line %d, column %d (byte index %d)",
   xml_get_error_code($parser),
   xml_error_string(xml_get_error_code($parser)),
   xml_get_current_line_number($parser),
   xml_get_current_column_number($parser),
   xml_get_current_byte_index($parser));
  }
  xml_parser_free($parser);
  if (!$ok)
  return $errmsg;
  if ($resulttype == 'array')
  return $this->xml_reorganize($values);
  // default $resulttype is 'object'
  return $this->array2object($this->xml_reorganize($values));
 }

 function xml_load_string($string, $resulttype = 'object', $encoding = 'UTF-8')
 {

  $php_errormsg="";
  $this->result="";
  $this->evalCode="";
  $values="";

  $data = $string;

  if (!$data){
   return 'Cannot open xml document: ' . (isset($php_errormsg) ? $php_errormsg : $file);
  }

  $parser = xml_parser_create($encoding);
  xml_parser_set_option($parser, XML_OPTION_CASE_FOLDING, 0);
  xml_parser_set_option($parser, XML_OPTION_SKIP_WHITE, 1);
  $ok = xml_parse_into_struct($parser, $data, $values);
  if (!$ok) {
   $errmsg = sprintf("XML parse error %d '%s' at line %d, column %d (byte index %d)",
   xml_get_error_code($parser),
   xml_error_string(xml_get_error_code($parser)),
   xml_get_current_line_number($parser),
   xml_get_current_column_number($parser),
   xml_get_current_byte_index($parser));
  }
  xml_parser_free($parser);
  if (!$ok)
  return $errmsg;
  if ($resulttype == 'array')
  return $this->xml_reorganize($values);
  // default $resulttype is 'object'
  return $this->array2object($this->xml_reorganize($values));
 }
}
}

Edited by TpEnEpETE
Link to comment
Share on other sites

Hi All,

 

Regarding Automated FedEX labels:

 

1. I Installed FedEx - Web Services v9 for real time quotes. Now I'm back with quotes. So far so good.

 

2. Change production server reference in fedexdc.php, and the above replacement suggestions by Joel.

 

But all I get is a broken "Astra Barcode."

 

Hope this motivates someone.

 

After chasing my tail all day Friday I left this over the weekend... and came back this morning to start fresh, reloaded my orginal back up's of fedexdc and ship_fedex... and guess what.... Its working??????????????? No changes from the orginal????

 

It would seem Fedex has put the old API back online. For now.... So I have the org realtime quotes installed, but deactivated, with the org meter number.

 

I'm sure this is temporary, so I'm going to still work towards a webservices solution.

Link to comment
Share on other sites

Upgraded from the API to the new Fedex webservices V9.4.2, last updated: 5/20/2012 - by Roaddoctor. Checked and double-checked everything over and over again. SOAP and openSSL both running just fine on my Apache. All files in their proper locations with proper access rights. Ensured that old module was disabled and gone. Test Vs. Production credentials.

 

Always getting the same error:

 

PHP Fatal error: Call to a member function MoveNext() on a non-object in {full path edited-out}/includes/modules/shipping/fedexwebservices.php on line 51, referer: /store/checkout_shipping_address.php

I was getting a blank screen on some browsers (i.e. Safari) and a server 500 on others (i.e. Chrome).

 

Clearly, script wasn't even going out to FedEx.

 

Then I compared the new /includes/modules/shipping/fedexwebservices.php with the previous version's /includes/modules/shipping/fedex1.php and quickly realized that the offending line 51, namely $check->MoveNext(); was missing from the fedexwebservices.php.

 

I commented out that line and peace is back into the jungle :)

 

Just curious at this point: Anyone knows what that line does and why it was added in this rendition? What possibly, do you think, force a crash on my server as a result of that line?

 

Thank you all for your contributions and great work!

Link to comment
Share on other sites

Upgraded from the API to the new Fedex webservices V9.4.2, last updated: 5/20/2012 - by Roaddoctor. Checked and double-checked everything over and over again. SOAP and openSSL both running just fine on my Apache. All files in their proper locations with proper access rights. Ensured that old module was disabled and gone. Test Vs. Production credentials.

 

Always getting the same error:

 

PHP Fatal error: Call to a member function MoveNext() on a non-object in {full path edited-out}/includes/modules/shipping/fedexwebservices.php on line 51, referer: /store/checkout_shipping_address.php

I was getting a blank screen on some browsers (i.e. Safari) and a server 500 on others (i.e. Chrome).

 

Clearly, script wasn't even going out to FedEx.

 

Then I compared the new /includes/modules/shipping/fedexwebservices.php with the previous version's /includes/modules/shipping/fedex1.php and quickly realized that the offending line 51, namely $check->MoveNext(); was missing from the fedexwebservices.php.

 

I commented out that line and peace is back into the jungle :)

 

Just curious at this point: Anyone knows what that line does and why it was added in this rendition? What possibly, do you think, force a crash on my server as a result of that line?

 

Thank you all for your contributions and great work!

 

 

It's a Zen Cart function. You can comment that line out. If it works without it, then you can leave as is.

In Zen, the $check->MoveNext(); function is something that will cause the while loop to move to the next iteration of the MYSQL object. I'm not sure how we do that with osCommerce, but I don't think that line is needed in oscommerce... someone smarter than me provided this answer. :) - Thanks jeff lew

-Dave

Link to comment
Share on other sites

Can someone here please point me in the right direction to get this contribution working?

We fould out through a customer that our site was no longer working, and discovered that FedEx had cut off api support -shame on me for not keeping up to date.

So here I am trying to get my site up and running using this WebServices add on.

I am running this on php 5.2.17, have run the soap test with a positive result. I have uploaded all of the files, set up a new production key with FedEx, read this tread about 6 times, and eight hours later i am still getting an "error in processing transaction" message when trying to check out.

Any advice as to where to head from here?

Link to comment
Share on other sites

Does anyone dealing with this problem using ColdFusion? I am using ColdFusion MX7 which using legacy code with CF tags. I am new to using webservices with ColFusion. Any hints greatly appreciated. I really need to understand how I start this rebuilding process. Thanks!

Edited by rada
Link to comment
Share on other sites

Can someone here please point me in the right direction to get this contribution working?

We fould out through a customer that our site was no longer working, and discovered that FedEx had cut off api support -shame on me for not keeping up to date.

So here I am trying to get my site up and running using this WebServices add on.

I am running this on php 5.2.17, have run the soap test with a positive result. I have uploaded all of the files, set up a new production key with FedEx, read this tread about 6 times, and eight hours later i am still getting an "error in processing transaction" message when trying to check out.

Any advice as to where to head from here?

 

assuming your installing 9.4.2, then you would only need to review this forum thread for posts Posted 20 May 2012, 12:54 or later. It's working well for most. Is your account with fedex enabled for online quotes? There is debug code within fedexwebservices.php that may help.... any errors?

What version of osCommerce?

-Dave

Link to comment
Share on other sites

Does anyone dealing with this problem using ColdFusion? I am using ColdFusion MX7 which using legacy code with CF tags. I am new to using webservices with ColFusion. Any hints greatly appreciated. I really need to understand how I start this rebuilding process. Thanks!

- I think I am in the wrong forum...
Link to comment
Share on other sites

Thanks for replying, David.

I am running OsC 2.2 RC2 and trying to install ver. 9.4.2.

We have been working with FedEx for years and never had a problem with online quotes with FedEx1.

I have called fedEx and confirmed that everything is set up correctly on their end.

 

I do see that this is working well for many people, which if what is really frustrating. I just don't understand what I have done wrong. I have looked in the error log, but there do not seem to be any updated errors as I try to checkout.

Not sure about the debug code -can't seem to find that.

Thanks again for your help

Link to comment
Share on other sites

I did find the following errors listed in the error log. Am I missing something here? To me it seems that I am missing some files that were not included in the contribution download.

 

Thanks again. Ray

 

[Wed Jun 13 15:46:23 2012] [error] [client 71.181.127.154] FastCGI: server "/web/squaredealfarm.org/fcgi/php-fcgi" stderr: PHP Warning: include(includes/languages/english/modules/shipping/fedexwebservices.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /web/squaredealfarm.org/www/osCommerce/catalog/includes/classes/shipping.php on line 36, referer: https://squaredealfarm.org/osCommerce/catalog/checkout_shipping.php?osCsid=omt3a25oger684tsnp1bqf3lb4

[Wed Jun 13 15:46:23 2012] [error] [client 71.181.127.154] FastCGI: server "/web/squaredealfarm.org/fcgi/php-fcgi" stderr: PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'includes/languages/english/modules/shipping/fedexwebservices.php' for inclusion (include_path='.:/usr/local/share/pear') in /web/squaredealfarm.org/www/osCommerce/catalog/includes/classes/shipping.php on line 36, referer: https://squaredealfarm.org/osCommerce/catalog/checkout_shipping.php?osCsid=omt3a25oger684tsnp1bqf3lb4

[Wed Jun 13 15:46:23 2012] [error] [client 71.181.127.154] FastCGI: server "/web/squaredealfarm.org/fcgi/php-fcgi" stderr: PHP Warning: include(includes/modules/shipping/fedexwebservices.php) [<a href='function.include'>function.include</a>]: failed to open stream: No such file or directory in /web/squaredealfarm.org/www/osCommerce/catalog/includes/classes/shipping.php on line 37, referer: https://squaredealfarm.org/osCommerce/catalog/checkout_shipping.php?osCsid=omt3a25oger684tsnp1bqf3lb4

[Wed Jun 13 15:46:23 2012] [error] [client 71.181.127.154] FastCGI: server "/web/squaredealfarm.org/fcgi/php-fcgi" stderr: PHP Warning: include() [<a href='function.include'>function.include</a>]: Failed opening 'includes/modules/shipping/fedexwebservices.php' for inclusion (include_path='.:/usr/local/share/pear') in /web/squaredealfarm.org/www/osCommerce/catalog/includes/classes/shipping.php on line 37, referer: https://squaredealfarm.org/osCommerce/catalog/checkout_shipping.php?osCsid=omt3a25oger684tsnp1bqf3lb4

[Wed Jun 13 15:46:23 2012] [error] [client 71.181.127.154] FastCGI: server "/web/squaredealfarm.org/fcgi/php-fcgi" stderr: PHP Fatal error: Class 'fedexwebservices' not found in /web/squaredealfarm.org/www/osCommerce/catalog/includes/classes/shipping.php on line 39, referer: https://squaredealfarm.org/osCommerce/catalog/checkout_shipping.php?osCsid=omt3a25oger684tsnp1bqf3lb4

Link to comment
Share on other sites

post to the contributions!, or if its simple mods, post it here. Thanks for the efforts!

 

Yes, please post to the contribution: http://www.oscommerce.com/community/contributions,2244

 

You would be helping a lot of people. I'm surprised I haven;lt yet found a fix. It would save me some money, too, since I have it our for bid at: http://www.freelancer.com/projects/PHP-Javascript/Fedex-Automated-Label-for-oscommerce.1685280.html

 

I'd post it for free.

 

Thx.

 

Martin

Link to comment
Share on other sites

Hi - I installed the latest version of the FedEx Web Services module today on my OSC 2.2 store and am getting a WSOD at the checkout_shipping.php page with the module enabled. Here is what the logs say:

 

[Thu Jun 14 08:24:03 2012] [error] [client 168.215.110.202] PHP Warning: PHP Startup: Unable to load dynamic library '/usr/lib/php5/20060613/uploadprogress.so' - /usr/lib/php5/20060613/uploadprogress.so: cannot open shared object file: No such file or directory in Unknown on line 0, referer: https://mysite.com/checkout_shipping.php

 

It seems that the page is attempting to call to a PHP module that is not installed on the server, but why on earth is the FedEx module calling the uploadprogress module? We have APC installed for upload progress status.

 

Any ideas?

Link to comment
Share on other sites

This in regard to the contribution: http://www.oscommerce.com/community/contributions,2244

 

What first option? Where ? Am I missing something here that everyone else sees as obvious?

 

He means re-install the old real time quotes API module that uses FEDEX1.... install it, but then set enable to false..

-Dave

Link to comment
Share on other sites

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Unfortunately, your content contains terms that we do not allow. Please edit your content to remove the highlighted words below.
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...