Authorize.net plugin error during Refund

1 month ago
I'm moving from staging to production tonight so I'm testing my live payment methods.  Authorize/Capture works as expected, however Refund throws an error about the expirationDate exceeding maxLength.

The plugin code matches their code sample, and "XXXX" is sent instead of the real expirationDate:

var creditCard = new creditCardType
{
    cardNumber = lastFourDigitsCardNumber,
     expirationDate = "XXXX"
};


https://github.com/nopSolutions/Authorize.Net-plugin-for-nopcommerce/blob/nopcommerce-4.30/Nop.Plugin.Payments.AuthorizeNet/AuthorizeNetPaymentProcessor.cs#L521
https://github.com/AuthorizeNet/sample-code-csharp/blob/master/PaymentTransactions/RefundTransaction.cs#L27

It worked fine in Dev/Sandbox, but fails in Prod.  
Plugin API credentials are correct.  
Nothing in the plugin code modifies the expirationDate after it is set to "XXXX", and it's unclear how "XXXXXXXXXXXXX..." is being sent, but maxLength == 4:


expirationDate   Required.
The card's expiration date, masked for refunds.
  
String, four characters.

For refunds, use XXXX instead of the card expiration date


Not mission critical as we can do refunds manually, I just don't have time to do any debugging today.

Has anyone ever seen this error?

1 month ago
Thanks.
We'll check it.