- my $payinfo = $self->payinfo;
- my $cardtype = cardtype($payinfo);
- $self->set('cardtype', $cardtype);
+
+ unless ( $self->paycardtype ) {
+
+ if ( $self->payinfo =~ /^99\d{14}$/ ) {
+ if ( $self->paymask =~ /^\d+x/ ) {
+ $self->set('paycardtype', cardtype($self->paymask));
+ } else {
+ $self->set('paycardtype', '');
+ # return "paycardtype required ".
+ # "(can't derive from a token and no paymask w/prefix provided)";
+ }
+ } else {
+ $self->set('paycardtype', cardtype($self->payinfo));
+ }
+
+ }
+