. $resphash->{FailureResponse}->{FailureMessage}
if $resphash->{type} eq 'FAILURE';
- my $validRespTypes = {
- 'PREQUAL' => qw( PREQUAL ),
- 'ORDERSTATUS' => qw( ORDERSTATUS ),
- 'ORDER' => qw( NEWORDER CHANGEORDER CANCELORDER ),
- 'CANCEL' => qw( ORDERCANCEL ),
- 'PASSWORDCHANGE' => qw( PASSWORDCHANGE ),
- 'ACCOUNTSTATUSCHANGE' => qw( ACCOUNTSTATUSCHANGE ),
- 'CUSTOMERLOOKUP' => qw( CUSTOMERLOOKUP ),
- };
-
return "invalid response type ".$resphash->{type}." for request type $cmd"
- unless grep( $_ eq $resphash->{type}, $validRespTypes->{$cmd});
+ unless ( $cmd eq $resphash->{type}
+ || ($cmd eq 'ORDER' && $resphash->{type} =~ /(NEW|CHANGE|CANCEL)ORDER/ )
+ || ($cmd eq "CANCEL" && $resphash->{type} eq "ORDERCANCEL")
+ );
return $self->$respsub($resphash,$reqhash);
}