It's been suggested many times and, on paper at least, should be SIMPLE to implement.
There have been concerns raised about it, like seeing other players BP's etc, but all could EASILY be addressed.
Player "A" checks a box for a specific item and hits trade ..
Player "B" checks a box for a different specific item and hits trade ..
Both players are then presented with a screen offering the trade with a box for both players to offer FSP or Gold to clench the deal.
Yes it's simple to implement. The interface isn't rocket science and most games have already done this. The interface will be side by side trade boxes containing the items both players want to trade with each other. Both players will only see the items the other person added to their trade box. Here's a somewhat detailed example of how it will work:
1.) Player A initiates the trade. First he selects the item(s), gold, and fsp he wants to trade, then he clicks "OK" button to add the items to his trade box.
2.) Player B refreshes the page and will now see the items Player A added to his trade box. Player B selects the item(s), gold, and fsp he wants to trade, then clicks "OK" button to add the items to his trade box.
3.) Player A refreshes the page and sees that both players' trade boxes have the items. There is now a "Finalize", "Cancel", and "Edit" buttons on the page. He can now click "Finalize" to finalize his end of the trade, or click "Cancel" to cancel the trade altogether. He can also choose to "Edit" the contents of his trade box and click "OK" to make the changes. If he does, any "Finalize" state on both sides will be reset and they both have to "Finalize" all over again.
4.) Player B refreshes the page and can see whether there are changes to the items in the other player's trade box. If there are no changes to the other player's items, the "Finalize", "Cancel", and "Edit" buttons are now also visible and he can also "Edit" the contents of his trade box, or click either "Finalize" or "Cancel". If he edits his trade box's contents, any "Finalize" state on both sides will be reset and they both have to "Finalize" all over again.
5.) The deal is only concluded if both players have "Finalized" their trade.