Remove Spin.xccheckout from source control
Do not finishTransaction: unless item is purchased/restored and consumed
Gracefully handle race condition errors from product fetch
Improve comments, extract common code to a separate method