It is not possible to cancel the transaction that has been done, unless you enter a fee that is less then your transaction is automatically canceled and asked for a larger fee.
Or you can use the trick given by mocacinno, as follows
However, there are a couple "tricks" you can pull while a transaction is UNCONFIRMED.
For example, you can create a (very) low-fee transaction, and broadcast it to as little nodes as humanly possible. Then, create a new transaction, using the same unspent outputs as input but funding a completely different address as the first transaction. You can create this secondary transaction with a much higher fee and broadcast it to as many nodes as possible.
If you do this, there is a decent chance a miner will put the second transaction into the block he's currently working on instead of the first one. And once one of those transactions ends up in a valid, broadcasted block that's been added to the blockchain, the other transaction is automatically "voided". It's using unspent outputs that are no longer in the UTXO set, so the unconfirmed tx becomes invalid.
If you're setting up a service, it's always a good idear to wait for at least 1 confirmation before sending goods or services. For expensive products, you might even chose to wait 3+ confirmations ( 6+ for the really paranoid shop owners). Once a transaction has a couple of confirmations, there is no way of cancelling or reversing it.