I participated in a PCI Compliance review about 4 years ago, and the policy then was to simply return an Accepted or Rejected, and the transaction ID to the user. If the transaction was rejected we added a note "For more information contact your credit card provider and quote this number ...".
The reasoning is that if someone is trying to generate card numbers you don't want to provide them any information as to what to change to get a valid card. If it is a real person, there are too many things that go wrong with a transaction you are in no position to fix, just tell them to contact their card provider. Even if the transaction response is "Card Expired" it could be something else, you don't know so don't guess.
Also, if you return to a page with payment fields, don't prefill them, leave them blank. Customers might go paranoid thinking "Hey, is this thing remembering my credit card info!?" The most likely reason the card was rejected is that they typed something in wrong, and by prefilling it with the wrong info again you are just tempting them to click Submit over and over again until their credit limit is exceeded. Been there, done that.