You've gotten great advice here. Here are my two cents to use or discard as you like.
I'd do lots of walk/trot transitions in a pasture, if you've got one. Make your pattern unpredictable to him - serpentine, walk ten strides, trot ten strides, stop, baaaack. Halt - forward, trot, stop. Get him so he's using his brain, and he'll gradually tune his focus from the pasture to you. See if you can sidepass or half pass. Can he back straight from this rock to that fence post? I'd stop asking for a canter for a few days or a week. I'd keep these rides fairly short - till he can make some kind of breakthrough, extra-good stop or whatever and then get off.
Every time you ask for a canter, there comes some whapping with a stick and frustration from you...so no wonder he doesn't want to do it. I'm sure his inherent laziness is a factor too, as you've said. He's still green and trying to figure things out. My green mare was unbalanced with a rider at the canter and I couldn't get her into one. Pointing him toward home, toward the close of the session, and asking then might get you a few strides. If he does canter, even if it's two strides instead of the 10 you'd like, I"d stop him and get off. Lesson done. The next day, do it again - all the walk trot stuff and canter request at the end. Get a few strides, pull up and hop off. I bet within a week he'll be more motivated and you can start asking for a few strides in the middle of the session and start doing a couple trot-canter, walk-canter transitions.
I vote for taking his training back down to some basics, rather than using spurs or a bat. Baby steps and go slow, keep things short. I think he's not reallly understanding you well and he's tuned into the pasture more than you because he doesn't have a reason - yet - to follow your direction. I have a similar mare - green and unbalanced/unwilling at the canter. The above is how we got things straightening out.