handle duplicate transaction; proctect against double-click charge button