I know this is an old post, but I needed to do this exact thing myself. I read this article and many others and came up with the same results ... I kept getting the same results for subsites as for the parent. I had just about given up on it after two days of frustration. I ended the day with the thought that I would sleep on it and attack it the next day. Well, while laying in the bed something came to me (I often get many of my solutions right before sleeping on it) ... the syntax seemed different than other SPServices syntax. So the next morning I tried this:
function getSitePermissions(siteURL){
$().SPServices({
webURL: siteURL, // this was the key I think
operation: "GetPermissionCollection",
objectName: siteURL,
objectType: "Web",
completefunc: function (xData, Status) {
.
.
.
}
});
}
That did it for me! Just thought I would post just in case someone else was attempting to use this. I would also like to say thanks again Marc ... SPServices is a lifesaver for me!