I have the for chain payment API already. It uses sandbox account, so you could test using your payapl sandbox account. Or simply change to live account by setting one variable to "live" value. It is able to use 4 methods of who pay the fee: sender, primary, secondary or distributed. Which one will you prefer?