I would tell them of the mistake they made and have it corrected because that would be the right thing to do. No I do not always do right or good, but I certainly try to get it right and; the choice in this situation would be an obvious one for me. In the past, I have returned, many times, to the bank teller, or store clerk, an amount over what I was due (sometimes a five, sometimes as much as $20). I ahve also returned sizeable amounts of cash. At my job I have found over $30,000 (over several discoveries) and always turned in the cash. No one would have missed it had I taken it, not anyone on my job anyhow. if someone had missed it that person was a drug smuggler or moeny launderer. Still I knew what to do and I did the right and good thing.
On my honeymoon, my wife and I left a hotel we had reserved because it wound up being a dive instead of the fantastic resort it had been advertised as. We had to pay in advance, so when we left demanded a refund, they refused. I called up the credit card company and I got my refund. Then I got a second refund, and it was a sizeable amount of money. I called the hotel and they had to be convinced such was the case. They treated me and my wife like dirt, then treated me like dirt again when I explained they had given 2 refunds, then did not thank me for notifying them and allowing them to correct it.
Notifying them, it is just the right thing to do. Of course, if I was down and out I might steal. That would be something done purposefully in order to make it (maybe not good or right but done to survive). This gun deal would be another situation altogether. It would have been an honest mistake someone made while you had been trying to make make an honest purchase. The good thing would be to alert them to the mistake and make sure they got paid, no doubt about it.
Best regards,
Glenn B