You can always bypass everything and just post a QR code of an address you own and start accepting transactions.
This. Why put in a third party when you don't have to?
You sell a widget with your Bitcoin address below. I send my bitcoins to that address. Someone else claims they sent bitcoins to that address.
Who do you ship the widget to?
in these cases,what about..." can you please sign a message from the address u used to pay me?"
How do you do that from your mobile wallet? Your blockchain.info wallet? Xapo?
The typical approach is to create a new address for each customer on the website. When you go to pay you get a unique address tied to your order and shipping address. When money goes into that address you know that the purchase has gone through.
Sites like BitPay create that functionality for you with a simple button. If you make less than $500,000 the transactions are free. So it's a no brainer to just add a button from them.
Or you can write the code yourself or, as has been pointed out, use an opencart plugin.
Most companies prefer BitPay or Coinbase because they convert a percentage of the bitcoins immediately into fiat.