using preparePayment