Here's a no-cost fix that may do it for you - provided everything else is ok.

Pull the solenoid, open it up and take a look at the square head copper/bronze bolt that makes contact with the round gizmo on the starter shaft.
Odds are, it's eaten away to the point where the round gizmo does not make good contact with the square headed bolt.

The fix is easy, loosen the square headed bolt up and turn it 180 degrees so as to expose fresh copper/bronze to the round gizmo and make good solid contact.

As you can see, this is a moving contact and once it wears away the round gizmo no longer seats hard against the square headed bolt.

I've found and fixed several of these on GM engines as well as one on a Nissan or Toyota pickup.
Can't remember which, the older ones all look alike to me....