In content, owner is optional if name is specified
[Business-OnlinePayment-Bambora.git] / lib / Business / OnlinePayment / Bambora.pm
index ea1a698..21039f1 100755 (executable)
@@ -42,6 +42,7 @@ sub set_defaults {
     card_token
     expiry_month
     expiry_year
+    failure_status
     invoice_number
     message_id
     payment_method
@@ -455,6 +456,10 @@ sub submit_api_request {
     $self->is_success( 0 );
     $self->result_code( $response->{code} );
 
+    if ( $response->{message} =~ /decline/i ) {
+      $self->failure_status('declined');
+    }
+
     return $self->error_message(
       sprintf '%s %s',
         $response->{code},
@@ -539,6 +544,8 @@ sub jhref_card {
 
   $self->set_expiration;
 
+  $content->{owner} ||= $content->{name};
+
   # Check required input
   for my $f (qw/
     card_number
@@ -553,9 +560,14 @@ sub jhref_card {
       "Cannot parse card payment - missing required content $f"
     );
 
-    warn $self->error_message if $DEBUG;
-    $self->is_success( 0 );
+    if ( $DEBUG ) {
+      warn Dumper({
+        error_message => $self->error_message,
+        content => $content,
+      });
+    }
 
+    $self->is_success( 0 );
     return {};
   }