Let's compare it with Amazon.com for the moment,
For online shopping you either have to use a credit card or pay for transaction by a cheque. The later will suspend the shippment of the item until they receive the payment from the user,
but for the first one you need to confirm the card details with the bank before commiting the transaction. In either of the cases above, the user needs to register with the online shopping system to have a login details (UI/PW), This login details is only for accesing the online shopping system and is separate from the bank details. For this you can use one of the 4 types of creating secure session with the user, it might be a combination of declarative and programmatic ways,
At the login, system authenticats the user with its internal database to validate the user (This is what you are looking for) and upon confirmation of the purchase, system will validate the payment details with the bank and the finalizes the transaction.
So you have multiple steps to validate user and user details.
1. Validate the logged in user with the system internal database
2. Ask the bank to confirm the credit card details or availability of the balance
In case of the payment by cheque, step 2 will be replaced by "suspend the transaction until the payment is manually confirmed"
For step 1, you can use one of the existing secure connections (any of the 4 types) and for the second one, you need to have an interface with the bank to pass the card details to the bank in a secure way.
Your system might OR might not store the card details, ( you leave it to the users pace) but having card details is not enough and you need to make sure as if the card holder has enough credit for the purchase, so you need to confirm that with the bank before finalizing the process
Having a clear problem statement, will help you to have a clear flow for this use case