Wallet codes are issued per currency and per store region. A code bought for one region simply will not redeem on an account registered in another, and no amount of retrying changes that.
Check the currency printed on the card before buying it as a gift. That single line prevents most failed redemptions.
A gifted game is tied to the recipient account from the moment it is sent. A wallet code is generic until redeemed, which makes it easier to give and easier to lose.
For someone whose library you do not know, a wallet code is the safer choice.
A listing far below the regional price usually means a region mismatch or a code that has already been redeemed. Neither is recoverable after purchase.
Buy from the store or an authorised reseller. The saving on the alternative is smaller than the loss when it fails.