You can't reverse a payment unless it hasn't been confirmed, and it stays that way long enough for the blockchain to forget it. Even then, if the darknet site owner you just paid is smart, he'll rebroadcast that transaction.
But, how can a site owner rebroadcast someone else's tx that has not confirmed? Only the original sender can do that.