LOL - I KNEW I could help someone someday if I waited long enough.
(Yes, I toyed with the idea of magnets etc and alllmost implemented a magnet solution. You can get small rare earth magenets all over eBay.)
Your problem is that the door has some spring in it, but it doesn't pull-up tight? It kinda hangs open by around a 1/4 to a 1/2 inch? If yes, read on...
My solution - it's not elegant but it saved me buying a new spring and the hassle of swapping it.
There's no need to disassemble anything.
The spring attaches on two ends - the car end, and the door end. The CAR end has a kind of hook on it. You need to jam something in the hook end to effectively make the spring a little shorter - a shim. There's not much room.
What I did is take some stranded wire (14 gauge?) and stripped the insulation off of around 4 inches. I re-twisted the wire so it won't fray.
Then all I did was loop the wire around the hook end (with the closed portion of the wire loop at the bottom of the hook.) Then to cinch things down I just twisted the top of the loop closed like a bread twisty tie. Make sure it's firmly tied in there and then you can just snip off the extra wire at the top. A little touch-up paint on the wire and only a show judge would complain!
If you need a picture - let me know.
Like I said, it ain't pretty but that door doesn't mock me anymore, especially when I park on a hill! :p