Post by Cue4cheap » Thu Dec 05, 2019 9:10 am

Hello,
As seems to be the case my webhost seems to want to force an update when it is the bigger selling season. They updated to PHP version 7.2 and now UPS is dead. Or a better way to put it, I get "internal server error" pop-up when I attempt to go to the shipping selection step.
This is what I end up with in the error log:
2019-12-04 23:23:26 - PHP Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: P line 6 and BODY in Entity, line: 8 in /public_html/store/catalog/model/shipping/ups.php on line 231
2019-12-04 23:23:26 - PHP Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: BODY line 3 and HTML in Entity, line: 9 in /public_html/store/catalog/model/shipping/ups.php on line 231
2019-12-04 23:23:26 - PHP Warning: DOMDocument::loadXML(): Premature end of data in tag HTML line 1 in Entity, line: 10 in /public_html/store/catalog/model/shipping/ups.php on line 231
2019-12-04 23:23:51 - PHP Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: P line 6 and BODY in Entity, line: 8 in /public_html/store/catalog/model/shipping/ups.php on line 231
2019-12-04 23:23:51 - PHP Warning: DOMDocument::loadXML(): Opening and ending tag mismatch: BODY line 3 and HTML in Entity, line: 9 in /public_html/store/catalog/model/shipping/ups.php on line 231

And a bunch more.
I did a check in the forum and can't find that someone had this same issue but I can't believe that... so if this has been covered before could someone point me to the topic or let me know what might be the issue as I continue searching?

Thank you,
Mike

cue4cheap not cheap quality


Expert Member

Posts

Joined
Fri Sep 20, 2013 4:45 am

Post by IP_CAM » Thu Dec 05, 2019 9:44 am

Already changed the system/library/encryption.php File, to make OC Versions work with PHP7 ?
They all should work, regardless of the OC Version. But Peku's Extension probably only up to PHP 7.1,
as I recall, for what reason ever.
Ernie
https://www.opencart.com/index.php?rout ... n_id=38012
https://www.opencart.com/index.php?rout ... n_id=34428
https://www.opencart.com/index.php?rout ... n_id=34060
https://www.opencart.com/index.php?rout ... n_id=35487

My Github OC Site: https://github.com/IP-CAM
5'200 + FREE OC Extensions, on the World's largest private Github OC Repository Archive Site.


User avatar
Legendary Member

Posts

Joined
Tue Mar 04, 2014 1:37 am
Location - Switzerland

Post by Cue4cheap » Thu Dec 05, 2019 10:52 am

IP_CAM wrote:
Thu Dec 05, 2019 9:44 am
Already changed the system/library/encryption.php File, to make OC Versions work with PHP7 ?
They all should work, regardless of the OC Version. But Peku's Extension probably only up to PHP 7.1,
as I recall, for what reason ever.
Ernie
Yes I did also found this in the error log:
[05-Dec-2019 01:31:00 UTC] PHP Fatal error: Uncaught Error: Call to a member function getElementsByTagName() on null in /catalog/model/shipping/ups.php:235
thrown in /catalog/model/shipping/ups.php on line 235

So looks like I am getting nothing from UPS. But why I do not know. BUT there is no way to go back to a lower version of PHP besides 7.1 and what else they changed I do not know.

Mike

cue4cheap not cheap quality


Expert Member

Posts

Joined
Fri Sep 20, 2013 4:45 am

Post by IP_CAM » Thu Dec 05, 2019 11:16 am

Would be this line, in my catalog/model/shipping/ups.php file Line 231:
$dom->loadXml($result);
Line 235:
$response = $rating_service_selection_response->getElementsByTagName('Response')->item(0);
---
I installed UPS, to make a test, without beeing registered at UPS, and then created an order.
It worked without an error in my OC v.1.5.6.5_rc Version. Except for the Access License Number at least,
but I have no such number, and just added some random Values.
---
That's, what the protocol contains:
---

Code: Select all

2019-12-05 4:07:10 - UPS DATA SENT: <?xml version="1.0"?><AccessRequest xml:lang="en-US"> <AccessLicenseNumber>wwee3355ff00s</AccessLicenseNumber> <UserId>JTI</UserId> <Password>alfons</Password></AccessRequest><?xml version="1.0"?><RatingServiceSelectionRequest xml:lang="en-US"> <Request> <TransactionReference> <CustomerContext>Bare Bones Rate Request</CustomerContext> <XpciVersion>1.0001</XpciVersion> </TransactionReference> <RequestAction>Rate</RequestAction> <RequestOption>shop</RequestOption> </Request> <PickupType> <Code>03</Code> </PickupType> <Shipment> <Shipper> <Address> <City>Moeriken</City> <StateProvinceCode>AG</StateProvinceCode> <CountryCode>CH</CountryCode> <PostalCode>5103</PostalCode> </Address> </Shipper> <ShipTo> <Address> <City>Meierswil</City> <StateProvinceCode>AG</StateProvinceCode> <CountryCode>CH</CountryCode> <PostalCode>1225</PostalCode> </Address> </ShipTo> <ShipFrom> <Address> <City>Moeriken</City> <StateProvinceCode>AG</StateProvinceCode> <CountryCode>CH</CountryCode> <PostalCode>5103</PostalCode> </Address> </ShipFrom> <Package> <PackagingType> <Code>01</Code> </PackagingType> <Dimensions> <UnitOfMeasurement> <Code>CM</Code> </UnitOfMeasurement> <Length>5x5x2</Length> <Width>5x5x5</Width> <Height>10x10x5</Height> </Dimensions> <PackageWeight> <UnitOfMeasurement> <Code>KGS</Code> </UnitOfMeasurement> <Weight>783.16153540852</Weight> </PackageWeight> </Package> </Shipment></RatingServiceSelectionRequest>
2019-12-05 4:07:10 - UPS DATA RECV: <?xml version="1.0"?><RatingServiceSelectionResponse><Response><TransactionReference><CustomerContext>Bare Bones Rate Request</CustomerContext><XpciVersion>1.0001</XpciVersion></TransactionReference><ResponseStatusCode>0</ResponseStatusCode><ResponseStatusDescription>Failure</ResponseStatusDescription><Error><ErrorSeverity>Hard</ErrorSeverity><ErrorCode>250003</ErrorCode><ErrorDescription>Invalid Access License number</ErrorDescription></Error></Response></RatingServiceSelectionResponse>

My Github OC Site: https://github.com/IP-CAM
5'200 + FREE OC Extensions, on the World's largest private Github OC Repository Archive Site.


User avatar
Legendary Member

Posts

Joined
Tue Mar 04, 2014 1:37 am
Location - Switzerland

Post by Cue4cheap » Thu Dec 05, 2019 11:53 am

I turned on debugging and I get this in the log and still and "error" pop-up on the website:
<TITLE>Access Denied</TITLE>
</HEAD><BODY>
<H1>Access Denied</H1>

You don't have permission to access "http://www.ups.com/ups.app/xml/Rate" on this server.<P>
Reference #18.57b4117.1575517662.3373d34b
</BODY>
</HTML>

So that is interesting that yours worked without an account.
Let me see some more testing by removing my real info.

Be back soon.
Mike

cue4cheap not cheap quality


Expert Member

Posts

Joined
Fri Sep 20, 2013 4:45 am

Post by Cue4cheap » Thu Dec 05, 2019 12:09 pm

Ok weird!
That http://www.ups.com/ups.app/xml/Rate was under the URL for the *TEST* section and test mode IS TURNED OFF in the module configs!!!!!
So I put $url = 'https://onlinetools.ups.com/ups.app/xml/Rate'; for BOTH the test and the non-test line and BOOM it now works!

WTF?
Sorry but all I can say is I hope this helps someone out as the URL is inaccurate anyway, the correct one to use these days is the one that has "onlinetools" in it (as listed above).


Thank you IP_CAM that was a stinker of a problem that seemed to have happened at the same time as the PHP version upgrade but was it caused by the webhost updates? I may never know!
Mike

cue4cheap not cheap quality


Expert Member

Posts

Joined
Fri Sep 20, 2013 4:45 am

Post by ADD Creative » Thu Dec 05, 2019 7:45 pm

There's a ! in front of the shipping_ups_test so the first URL is for production and the second one for test. I believe only the first URL needs to change the test one can stay the same. See https://github.com/opencart/opencart/pull/6869

The old server probably supported an old protocol, that your new one doesn't, that for some reason the old UPS URL was still accepting.

www.add-creative.co.uk


Expert Member

Posts

Joined
Sat Jan 14, 2012 1:02 am
Location - United Kingdom
Who is online

Users browsing this forum: No registered users and 16 guests