Vendor systems returned INVALID or ERROR in response to notification POST - Sagepay Server - opayo

Ive built 2 websites using opencart 2 (many more on Opencart 1) and both are setup to take Sagepay Server payments, But its now come to light that both sites Sagepay payments are failing when Sagepay tries to talk back to opencart to give the green light. This means no failure email notification is sent to the store owner, and the sale is cancelled at Sagepay? as you can imagine both store owners are not happy. I contacted Sagepay to see what was happening and they told me the payments were failing with the below Error, but as far as Sagepay was concerned the payments had passed all tests, but because the calling website could not send the correct response back to Sagepay, they had to cancel the transactions!
Looking at how Sagepay works, it seams sagepay returns autorisation to Opencart and then opencart has to say whether its going to accept the payment based upon what is being sent, and it seams this is where opencart 2 is failing to respond correctly?
Is this yet another OC2 bug?
Has anyone come across this and how do I put this right
One site is on OC 2.0.2.0 and the other one is 2.0.3.1
Everything is setup correctly in payment module and IP Address logged with sagepay etc.., its just a problem after payment authorisation.
Transaction completed but Vendor systems returned INVALID or ERROR in
response to notification POST. Transaction CANCELLED by the Vendor.
This is a really big problem, and not sure how to go about fixing this, as Opencart 2 is meant to be able to take sagepay payments out of the box, once a few settings are added in the admin section, but it seams its not setup correctly to do so.. I cant believe no one else has come across this?

I used the built in sage pay debug option which told me it was a MD5 Hash mismatch, after further digging and reading the official Sage pay Server docs, there was a notice in Bold Red, stating to ensure the Vendor name was supplied all in lower case, mine was in title case in the admin section. It looks like the creator of Opencart 2 has over looked this, I simply used php`s strtolower function before the MD5 comparison in the sagepay_server.php controller file to convert the vendor name to lowercase. Of course this could be avoided by entering the vendor name in the sage pay server admin section as lower case. But seeing as there is no note when entering this, opencart should convert the vendor name to lowercase as I have done to ensure no possibility of this error.

Related

Your request failed. Use a different payment method, or contact us. Learn more [OR-CCSEH-21]

I was trying to pay for google developer account but I am getting this error
Your request failed. Use a different payment method, or contact us.
Learn more [OR-CCSEH-21]
I tried searching a lot but most of them have answers for [OR-CCSEH-05] but not for [OR-CCSEH-21]
What can I do?
For my Turkish colleague;
QNB didn't worked
Kuveytturk didn't worked
Yapıkredi worked.
This solved the problem for me:
Sign in to Google Pay [https://pay.google.com/]. I noticed that this page is the "parent" to Google Development Account payment, e.g., you can have different payment methods for your personal gmail extra storage and your business google development account. They show up under the "Subscriptions and services" tab. Also, errors seem easier to handle here.
At the top-right corner, select Alerts. This is the "Bell/notification" icon.
If you have a red alert, take care of that. In my case, I have not chosen a Backup payment method in addition to the Primary method.
Refresh the page to make sure there is no critical Alert left.
Go to "Payment methods" tab and "Add payment method". In my case when I entered the card numbers, an old address of me populated in the address and zip code fields. I simply changed that to my legal address and that worked! However, when I did the same action in the google development account payment page, I was getting the [OR-CCSEH-21] (on Safari) or [OR-CCSEH-24] (on Chrome) errors. I could not find where Google is reading the old address from (probably a bug)
I tried Union Bank of India, it didn't worked
I tried State Bank of India, it didn't worked
I tried Andhra Bank, it didn't worked
I tried Axis Bank, it didn't worked
I tried HDFC Bank, it didn't worked
I tried Kotak Bank, "finally that worked".
So my only advice is first keep the details correct and iterate each
and every card you can try, hopefully one card will be accepted
From my experience this is happening because the bank card doesn't support Automatic payment option which is required for auto renewal. If a card with Automatic payment option is provided, the payment will go through.
When I got a card from my bank with Auto payment enabled, it worked for me. The issue started with RBI's (Reserve Bank of India) restriction on Merchants storing customer card details.

Laravel & complete Paypal/payment solution

So I'm trying to implement a payment solution for my website and after quite a bit of research, I'm still lacking a complete solution. I'm running Laravel 5.0 and need general shopping cart payment functionality. I thought I would post this to try to create a reference to help others that may be having this issue. I got as far as getting test transactions into the Paypal sandbox and that's where the brick wall has seemed to come in, but a complete overview would be helpful. I’ll list my issues that I need to overcome in order to issues some run into.
Issues needing to be resolved to complete the payment solution implementation
My biggest issue with what I've seen has been receiving the
notification of successful payment processing back, but I'll walk
through what I've seen thus far. I'm not sure how to set up a listener or other methods of detecting a correct payment processing
Dealing with Credit Card information when I’m trying to avoid it
for the time being – I’d like that to be done on the gateway website
Potentially kicking off some of the calls to these APIs in Laravel
when the user checks out
I’m trying to move items to my server, but the development is being
done locally which creates an added issue
The options
There’s simply Paypal
I’ve taken the basic form implementation as far as getting payments into Paypal, but I can’t seem to get payments out. I’ve tried the returnURL and that doesn’t seem to work
I do not necessarily like this option because it seems to be leaving a lot of information in the form that would seem to be better kept private on the server
I’d like to use something complete on git but I seem to find the documentation incomplete
https://github.com/thephpleague/omnipay-paypal
--Not sure how to implement this in laravel
https://github.com/ignited/laravel-omnipay
--doesn’t appear to be being used
https://github.com/net-shell/laravel-paypal
https://github.com/anouarabdsslm/laravel-paypalpayment
--The card information is not intuitive here as that’s what going to
paypal’s supposed to manage
It would be nice to use Paypal express but I don’t see a ton of resources specifically for that.
There's Aimeos.
I don't necessarily feel safe with manually implementing the vsrf
protection and it doesn't seem to offer that much more on the payment
front than
I’m open to others that are complete and charge similar fees to Paypal
Stripe doesn’t work for me. I’m not doing a basic subscription
Any complete thoughts would be greatly appreciated as documentation left short has caused issues in this case. Thanks!
This PayPal PHP SDK will make all of the PayPal classic API calls very quick and easy for you. It's available on Packagist/Composer and can be applied to Laravel very easily.
It supports Express Checkout, Payments Pro, Invoicing, Transaction Search, Transaction Details, Refunds, etc.
This is done in Laravel 4, but I had begun this "PayPal Glass" project a while back to show how the class library / sdk can essentially replicate everything you can do within a PayPal account. Here it is running on my local test server.
So yeah, that SDK should be able to handle everything you need to do with PayPal inside a Laravel project.

Invoices no longer being automatically generated after switch from http:// to https:// (magento site)

Since switching from HTTP to HTTPS our customers e-commerce site's orders are not automatically generating an invoice anymore, the confirmation e-mails are also not being sent. We originally thought this must be to do with Barclaycard as they are the payment gateway providers but they claim this is nothing to do with them after further inspection and said something else must have changed. I've checked through all of the config and can't see anything on the magento backend that would be causing this issue, has anyone experienced anything like this before or could help with this? Thanks.

PayPal Pro doesn't valid data - almost always Success

I'm trying to implement Paypal Pro Gateway to my e-commerce. I created appropriate account for developers and sandbox.
My problem is that I almost always get the "Success" or "SuccessWithWarning" respond. It's wrong in my opinion because e.g. I use wrong "expires on" (for card) or information for buyer (I created one).
My seller gets new payments but the balance for my buyer is still the same.
Should not sandbox validate data like that? I don't know in other way how to test my form.
The sandbox is left pretty open for testing purposes. Unless you use an expiration year prior to the current year it'll pretty much accept anything as far as that goes.
If you want to test specific error conditions you can do that with "Negative Testing".

Google Ecommerce Tracking for Magento

I am having some difficulty in getting google's eCommerce tracking working consistently for Magento. I have set the UA code in the google api section of the admin and eCommerce tracking is switched on. When I go to the success page the code is there. Some orders are being sent but not all. I have installed google chromes analytics tester and the beacon is being sent. Take yesterdays orders for example, 1 from sagepay is in analytics however another sagepay order is not which rules out payment gateway. I have re-set the permissions on the success page and tidied up a couple of warnings in the console but nothing is working i'm pretty stumped.
I have also installed Jiraffe real-time analytics and am having the same problem with that tracking orders, it didn't track a single order yesterday but is tracking cart data fine.
Does anyone have any suggestions?
Thanks
First of all not every user who uses payment gateway is comming back to your success page as some of them are just leaving the transaction at thank you page on third party services - then you won't see such transaction in GA. Second of all not every user let you to track him (adblock is preventing its users to be tracked).As for now please just reply if you are sure that users got back to Magento's success page.To get a much better overview of yours customer behaviour I would recommend you to install this extension Fooman Google Analytics Plus and set up proper funnels (you'll find brief instruction at extensions page)
I would suggest that you check the formating of data passed to GA :
prices should be formated as "1200000.00" : no separator for thousands, dot as decimal separator, no currency
text values should be escaped properly quotes contained in them: 'That\s it'
The Fooman extension is a good start since the basic GA implementation in Magento is a shame of non sense, while not perfect.
Google tracking in Magento :
Open the Magento Admin area and navigate to System->Configuration->Sales->Google API.
Expand the Google Analytics section.
Pick the Yes option from the Enable drop-down menu. Enter the Google Analytics account number in the Account number field. Click on the Save Config button.
Thanks..!!

Resources