Micro-transactions (is there a hyphen there?) are becoming a powerful payment model for video games. I think the largest reason for their success is that it allows players to play for free. It effectively removes the piracy problem from the playing field. In order to progress, you need to have an account and you must grind or purchase rewards.
Obviously people can still hack, but I feel like it is easier to identify and punish hackers compared to pirates. The legal repercussions against hackers are also in your favor.
There is a problem with designing an effective set of transactions and the payment versus grind scale. You can’t make items too cheap or too expensive, but you also can’t make them unattainable to people who aren’t willing to spend money. You want to play on a user’s impatience without forcing them to constantly open their wallets.
I think it is also important that the rewards for paying with real money are not overpowered. I’ve seen plenty of games that either require continuous purchases, or that make the purchased items so powerful, they force everyone to buy in or not play at all.