What will be the way to give user public access to check their contribution?
The Contact Dashboard is a good way to show people their information.

Usually people need to login, you may be able to use a token to allow people to see it without logging in (not sure) but if payments are involved I would recommend people should have to login.