You won't be able to collect all information and take payment using one form/action. The customer information is added to the cart using
commerce/cart/updateCart and payment is processed using
To show the available shipping methods to a customer, Craft Commerce needs to know the shipping address to match against the rules you've set up. For this reason you'll need to split your checkout into separate forms.
I have built a "one-page" checkout with 'Customer Details', 'Delivery Method' and 'Payment' sections. Each section has a 'Continue' button that submits the information and updates the cart. Each section has the same redirection URL (
/checkout) so the user lands back on the "one-page".