Rock
Rock copied to clipboard
Scheduled Transaction is created with NMI but not in Rock if person's name contains a diacritic character.
Prerequisites
- [x] Put an X between the brackets on this line if you have done all of the following:
- Did you perform a search at https://github.com/issues?q=is%3Aissue+user%3ASparkDevNetwork+-repo%3ARock to see if your bug or enhancement is already reported?
- Can you reproduce the problem on a fresh install or the demo site?
- Did you include your Rock version number and client culture setting?
Description
If a person's name contains a diacritic character (i.e. Grace Dupré) and they try to setup a recurring gift. Rock will successfully create the transaction in NMI but not in Rock. User will see an error displayed and likely assume transaction was not created. NMI will then continue to process transactions based on that schedule, but Rock will not download them because it does not have an associated scheduled transaction and user has no way of editing/cancelling the scheduled transaction.
This appears like it is caused by NMI's query api returning an invalid XML response. Rock will first call the API to create the transaction (subscription) and then call the API again to get the status. When the subscription is created the API returns this XML:
When Rock queries NMI for the status, the API returns this invalid XML:
Because the XML is invalid, Rock is getting an exception and the transaction is never saved. User sees this error:
Steps to Reproduce
- Configure/Use NMI Financial Gateway
- Ensure first or last name has special character (like an acute accent)
- Try to create a scheduled transaction using the public giving page.
Expected behavior:
Transaction is created in NMI and in Rock and when transactions are processed by NMI for that schedule, they are added to the person's profile.
Actual behavior:
Transaction is created in NMI but not in Rock and processed transactions are not downloaded to Rock.
Versions
- Rock Version: v12.8 & v13.5
- Client Culture Setting: en-US