UPS returns 403 Not Found Error


https://forum.kartris.com/Topic6967.aspx
Print Topic | Close Window

By SAbow - Mon 11 Dec 2017
A couple of my sites that use UPS as their shipping gateway have begun to get complaints from customers that they cannot check out.When we looked in the error logs, we found

>> DESCRIPTION:
UPS - Error: The remote server returned an error: (403) Forbidden.


After searching online, we found this post https://www.nopcommerce.com/boards/t/49695/ups-shipping-plugin-error-403-forbidden.aspx
which explains that UPS is transitioning to use only TLS 1.2

I suppose that the UPS dll needs to be updated to match the new standard.



Thank you for your assistance
By Paul - Wed 13 Dec 2017
Have recompiled the DLL as .NET 4.5.2, with TLS1.2 specified for secure connections. Can you see if this works.
By SAbow - Wed 13 Dec 2017
We're still getting 403 from UPS sporadically...
By Paul - Thu 14 Dec 2017
I was a bit skeptical the issue was TLS related, because if that were the case, everything should fail. It doesn't seem likely that they'd role out this requirement partially even if they have multiple servers dealing with requests.

The TLS issue was addressed in the new plugin, we've seen this code work with paypal and others, so fairly certain that code is ok.

Sporadic errors suggests it's probably not an issue with the code itself, but some kind of intermittent error with the server or connection.
By SAbow - Thu 14 Dec 2017
Actually I have 3 customers using kartris on 3 separate servers, and all three complaining of UPS shipping issues lately, and their logs are full of intermittent 403 errors... even though 9/10 times I do get rates on the screen at checkout. After doing some searching, I found this on UPS's own site: https://www.ups.com/us/en/help-center/technology-support/data-security.page and they actually mention intermittent errors... what else can be the issue?
By SAbow - Mon 1 Jan 2018
Were you able to come up with anything yet?
By mparker - Fri 5 Jan 2018
I fixed this by adding the following code within the Application_Start() sub of the Global.asax

Try
System.Net.ServicePointManager.SecurityProtocol = System.Net.SecurityProtocolType.Tls12
Catch
End Try