Thanks for the reply.
We're using Paypal Payments Pro.
Not sure what you mean by "Review the IPN and it's POST data at the bottom of the IPN details page to see if everything is correct. Is the amount paid correct in the IPN?" I don't see an IPN details page in our admin site or in the Paypal site.
Plan names have no special characters: "1 year" , "3 months (regular)", etc.
Attached are the two Notifications from the most recent erroneous payment rejection (payment went through Paypal, rejected by CB Subs as item mismatch.
The raw result is
"currency, item name or number or quantity mismatch: IPN item_name (Shopping Cart) does not match basket item_name (1 year for Amin Zargar) nor their trimmed sizes for IPN (Shopping Cart) and basket (1 year for Amin Zargar)"
The item name under $_GET=array is '1 year for Amin Zargar', the item name under $_POST=array is Shopping Cart.
I looked at the result from the most recent successful transaction and the item name under $_POST=array is the plan name, matching the item name under $_GET=array.
We thought this might be the result of a browser caching error from the computer at our club, but the most recent erroneous payment rejection happened when our clubhouse wasn't open to the public, plus the IP addresses differ between the erroneous payment rejections.
This problem is sporadic, only about half the payments are being erroneously rejected.
Our site host is Siteground.
Thanks in advance for looking at this.