Stripe Payment Intents and Negative Bills
Affects | Status | Importance | Assigned to | Milestone | |
---|---|---|---|---|---|
Evergreen |
Fix Released
|
Critical
|
Unassigned | ||
3.8 |
Fix Released
|
Critical
|
Unassigned |
Bug Description
Evergreen 3.8 with Stripe (using the new Payment Intents code) in the Bootstrap OPAC:
Since the upgrade we've had an intermittent issue with some patrons attempting to pay online and their bills not getting credited to Evergreen - in some cases, patrons try repeatedly, and their credit cards get charged each time.
One scenario that I've found that causes this is when a patron has some negative bills on their account. When a patron has a positive bill and a negative bill on their account (with their total amount positive), it appears that Evergreen will send a payment amount to Stripe (which isn't actually the correct amount), Stripe will bill the credit card, and then when Stripe sends back the message to Evergreen, Evergreen will throw an error and not credit the patron's account.
For example, I created a bill for $1 and a negative bill for $-0.40. (I created the negative bill by creating a bill for 0.50, forgiving 0.40 of it, and then voiding it - note that when I voided it, it asked if I wanted to void 0.60.)
The OPAC shows that I owe 0.60 which is correct. I paid, then it gave me "ERR_BLOCKED_
My credit card was charged $1.60 instead of the $0.60 it should have been charged, and my Evergreen account was not updated.
Changed in evergreen: | |
status: | New → Confirmed |
Changed in evergreen: | |
assignee: | nobody → Terran McCanna (tmccanna) |
Changed in evergreen: | |
assignee: | Terran McCanna (tmccanna) → nobody |
tags: | added: signedoff |
Changed in evergreen: | |
status: | Fix Committed → Fix Released |
I can replicate this on a server running 3.8. If the negative bill is unchecked, the payment goes through successfully, but if it is check the error message appears and the credit card is charged.
On 3.6, the error appears and the credit card is NOT charged. This is more desirable, but still leads to a potentially frustrating loop for the patron. It would be better if the negative billing could not be selected when paying fines in the OPAC.