We've set a Tea Commerce site live, the client is saying that some customers are getting timeouts from Sage Pay.
Sage Pay has said this is due to the VPSProtocol being 2.23 and that they should upgrade to 3.00
Are we able to upgrade to VPSProtocol 3.00? if so can this be done via a setting in the back office of Tea Commerce or do we have to grab the payment provider code and, change manually and compile into a DLL and add to the project?
Anyone else done this? Are there extra settings needed or is it a straight swap?
Hmm, this sounds like it's a slightly bigger upgrade of the Payment Provider vs just changing a setting to be 3.0.0 as it looks like some fields have changed / added.
If you are up for the challenge, and if it is just some fields that have changed, it shouldn't be too big a task if you wanted to try and update the provider yourself. A PR would be fantastic.
If not, that's no problem. I'll try to jump onto it as soon as I can.
I've had a quick look through that site and the Server Integration guide and I think it might be possible that changing the VPSProtocol from 2.23 to 3.00 might be all that is needed. The upgrade page you linked to does mention some other field, but this is mostly to do with their From Protocol, but we use their Server Protocol which those don't apply to.
Looking at the list of fields they need, they do all seem to line up. To investigate fully I will need to look through all the documents and setup a test environment, but if you wanted to try it yourself, you could pull the payment providers repository down, modify the SagePay provider replacing all instances of 2.23 to 3.00, compile and replace the payment providers DLL in your bin folder and then run some test transactions + refunds + cancels + authorize requests and see if things work.
When compiling the payment providers dll, they do all get compiled individually, so you can either copy over just the ones you are using, or if you use the build script (run the build batch file in the root) it should merge them all together for you.
Finally got some time to have a play around with this.
Ive downloaded the PaymentProviders as a zip, opened up the .sln
Changed the instances for 2.23 to 3.00 where ever its mentioned.
Rebuilt the solution.
Grabbed the DLL TeaCommerce.PaymentProviders.SagePay.dll
from > \Tea-Commerce-Payment-Providers-master\Tea-Commerce-Payment-Providers-master\Source\TeaCommerce.PaymentProviders.SagePay\bin\Debug
and then added it to my Bin folder.
I've checked out on the site using the SagePay Sandbox and ngrok and it sends me to the 2.23 version of Sage Pay still. That's if what I've done above is correct?
Do you still have a TeaCommerce.PaymentProviders.dll in your bin folder? If so, I’m guessing it’s using the old one in there instead.
If you change the name of the replacement provider class and in the PaymentProviderAttribute, compile, deploy, then switch the payment method in the back office to use this new one, that should work.
Sage Pay VPS Protocol version 2.23 > 3.00
Hi
We've set a Tea Commerce site live, the client is saying that some customers are getting timeouts from Sage Pay.
Sage Pay has said this is due to the VPSProtocol being 2.23 and that they should upgrade to 3.00
Are we able to upgrade to VPSProtocol 3.00? if so can this be done via a setting in the back office of Tea Commerce or do we have to grab the payment provider code and, change manually and compile into a DLL and add to the project?
Anyone else done this? Are there extra settings needed or is it a straight swap?
This link seems to suggest some extra info needs to be sent for version 3.00 - https://www.sagepay.co.uk/support/12/36/upgrading-from-2-23-to-3-00-a-brief-overview
Hi Neil,
Hmm, this sounds like it's a slightly bigger upgrade of the Payment Provider vs just changing a setting to be 3.0.0 as it looks like some fields have changed / added.
It'll be within here that needs updating https://github.com/TeaCommerce/Tea-Commerce-Payment-Providers/blob/master/Source/TeaCommerce.PaymentProviders.SagePay/SagePay.cs#L56 The protocol version will need updating, and then going through the fields that are setup and make sure these match with the 3.0.0 protocol base on that link.
If you are up for the challenge, and if it is just some fields that have changed, it shouldn't be too big a task if you wanted to try and update the provider yourself. A PR would be fantastic.
If not, that's no problem. I'll try to jump onto it as soon as I can.
Matt
PS I've posted this on Twitter to see if anyone has already done the upgrade themselves and whether they have any code they can share.
Hi Neil
I've had a quick look through that site and the Server Integration guide and I think it might be possible that changing the VPSProtocol from 2.23 to 3.00 might be all that is needed. The upgrade page you linked to does mention some other field, but this is mostly to do with their From Protocol, but we use their Server Protocol which those don't apply to.
Looking at the list of fields they need, they do all seem to line up. To investigate fully I will need to look through all the documents and setup a test environment, but if you wanted to try it yourself, you could pull the payment providers repository down, modify the SagePay provider replacing all instances of 2.23 to 3.00, compile and replace the payment providers DLL in your bin folder and then run some test transactions + refunds + cancels + authorize requests and see if things work.
When compiling the payment providers dll, they do all get compiled individually, so you can either copy over just the ones you are using, or if you use the build script (run the build batch file in the root) it should merge them all together for you.
Let me know how you get on.
Matt
HI Matt
Sorry, I've not got back to you sooner.
I'll give it a go and come back to you. Literally swimming in it up to eyelids at the minute with project work.
Soon as I get a free half-hour I'll test this and let you know the results.
HI Matt
Finally got some time to have a play around with this.
Ive downloaded the PaymentProviders as a zip, opened up the .sln
Changed the instances for 2.23 to 3.00 where ever its mentioned.
Rebuilt the solution.
Grabbed the DLL TeaCommerce.PaymentProviders.SagePay.dll from >
\Tea-Commerce-Payment-Providers-master\Tea-Commerce-Payment-Providers-master\Source\TeaCommerce.PaymentProviders.SagePay\bin\Debug
and then added it to my Bin folder.
I've checked out on the site using the SagePay Sandbox and ngrok and it sends me to the 2.23 version of Sage Pay still. That's if what I've done above is correct?
Do you still have a TeaCommerce.PaymentProviders.dll in your bin folder? If so, I’m guessing it’s using the old one in there instead.
If you change the name of the replacement provider class and in the PaymentProviderAttribute, compile, deploy, then switch the payment method in the back office to use this new one, that should work.
Ah yep that got it, Removed the TeaCommerce.PaymentProviders.dll
I made sure the new SagePay DLL was in my Bin folder.
And yep the new Sage Pay checkout 3.00 now showing :)
I'll run a few test transactions and test it all works, and report back here.
Ok, tested with 3.00 changes and it resulted in the dreaded 5006 error
Changed back to 2.23 to double-check it's not ngrok or something silly, but alas I can checkout fine with 2.23 version.
So changed back to 3.00 to double-check, and again 5006 error.
Logfile below:
Ok, according to the inetgration guide here
The VPSSignature is made up from the following:
So it looks like the md5CheckValue that is created here:
https://github.com/TeaCommerce/Tea-Commerce-Payment-Providers/blob/master/Source/TeaCommerce.PaymentProviders.SagePay/SagePay.cs#L221
needs to have DeclineCode + ExpiryDate + FraudResponse + BankAuthCode appended to the end.
I think you should be able to access those from the Request, so you may just need to add the following onto the md5CheckValue
Give that a try and see how you get on
Matt
Yep, that got it Matt, works perfectly.
Thanks once again!!
Awesome!
If you want to submit that as a PR, or just send over the changed files, I'll look to get that updated in the core provider.
Glad we were able to get it working though 👍
Matt
is working on a reply...