I am calling the ProcessPayment function in the CPayment class to process credit card transactions. This function has worked very well, but I began receiving errors from this function on a few specific users. I tracked the error down, and the ProcessPayment function itself was throwing an exception.
It turned out that the exception was being thrown when an ampersand was in the billing address. I am now replacing the ampersand with the word "AND", and the function processes successfully.
Thanks!
Thanks for posting this - I ran into this and never would've figured it out on my own! Still seems to be a problem with version 0.21 of the iBOs - I'm going to try to put in a bug fix request for this.
For anyone else interested, the error seems to be an IndexOutOfRangeException occurring in Asi.PaymentGateway.PayflowProPaymentGatewayResponse.GenerateResponse.
Here's the stack trace:
at Asi.PaymentGateway.PayflowProPaymentGatewayResponse.GenerateResponse(String responseString, TransactionType transactionType)
at Asi.PaymentGateway.PayflowProPaymentGatewayProvider.ProcessPayment(TransactionType transactionType, CPayment payment, CAddressBasic billingAddress)
at Asi.iBO.Commerce.PaymentGatewayService.ProcessPayment(TransactionType transactionType, CPayment payment, CAddressBasic billingAddress)
at Asi.iBO.Financials.CPayment.ProcessPayment(TransactionType transactionType, CAddressBasic billingAddress)
Chris Wilson
Web Applications Developer
Executive Director, Inc.