The +1 Buy shouldn't be inside the "if you do". As it is, your opponent can name Spoils, you gain nothing, and you've wasted your buy.
(I think?)
No, you're right. The Buy shouldn't outside the 'if you do' for the Pact Event anyways, since you can potentially just spam it. I don't think this Event is really a good idea in it's current state anyways. You can just spam it, and if the Curses are out, you don't care about the Copper influx you get as a result as you can just get a free Province a turn.
Unless of course, Spoils is on the board. It does say 'gain a card that the other player chooses', so I think that would be technically legal. I'd change the wording to 'gain an Action card costing from "$4 to $5"' or something like that, and then maybe the opponent gets a small bonus as well for choosing that card, like +$1. It's still not very good, but it's less useless. And I'd ditch the bonus money you get as a result, as well as the +buy. That feels a lot more like a pact to me anyways.
An alternate fix is only being able to buy the Event once a turn.