When you are getting this error is it just the regular error message that is displayed by default on the checkout failure page? If so the reason for the failure may be something different. In order to determine why it is failing we will need to be sure of the specific error you are getting.
If you do not have the debug code on your checkout failure page you should add it in then do a test and let us know what it comes back with. Add the following code to your checkout failure page:
<?php
if(!session_id()) session_start();
echo("Direct Pay Full Request :<br />");
echo("<code>".isset($_SESSION["PP_DirectPayment_postedValues"])?$_SESSION["PP_DirectPayment_postedValues"]:""."</code><br /><br />");
echo("Direct Pay Full Response :<br />");
echo("<code>".isset($_SESSION["PP_DirectPayment"])?$_SESSION["PP_DirectPayment"]:""."</code><br /><br />");
?>