Generating bitcoin wallets for my customers I run an application written in PHP and need to add the option to buy services with bitcoins.
So, for each user i need to generate a unique, unused bitcoin address.

I could generate X number wallets with Electrum and assing 1 address to each user, but then i will have to check manually if someone send a payment, match the address with the user, wait for confirmations, import data, update the balance, every day. 
This take too much time and it's tricky. 

What's the best and easier approach to achieve this? from where i start?
Using external api and services is not a choice, using a single shared wallet can be okay but how i associate user/transaction?
You can do this easily using bitcoincore. Brief overview of process (Source: bitcointalk thread)


Generate unique address using getnewaddress
Register on walletnotify to get txid as notification
Call gettransaction with txid from step 2 to get details/address of payment received