https://justwebworld.com/how-credit-or-debit-card-payment-processing-functions/