Add paymentMethod, orderId and validate required fields

orderId can be added to provide a order ID to the user, paymentMethod can be set directly.
currency, transactionId and returnUrl are also required. Fixes #1 also.

Todo:
 - [x] add tests