I am using magento 1.7. We need to stock deduction after payment successful from payment gateway. Is there any way to for this?
If you're using PayPal or a CC type of payment and you're not bound to an Authorize/Capture payment flow, you could just change the Payment Action for the payment method to capture directly; this way getting the funds and deducting stock would happen more or less in the same transaction. For PayPal Express for instance, for your version of Magento, I believe the setting is in
System -> Configuration -> Sales -> PayPal -> Express Checkout Settings -> Payment Action.
If you're using Check/Money Order or similar payment methods, or you're bound to an Authorize/Capture payment flow, then things are tricky since you run the risk of selling more than you have. You're better off deducting the stock when the order is created and later return the stock if the payment cannot be confirmed for some reason.