To setup Stripe, you will need API secret key and API publishable key.
To get these, please follow the steps below:
- Log in to your Stripe account
- Click “Developers” from the top left menu item of the page
- Click the “API Keys” submenu item
If you toggled “Viewing testing data“, Stripe will show the test keys, otherwise, the live keys will be shown, for production you will need the “Live Secret Key” and “Live Publishable Key“, for testing you will need the “Test Secret Key” and “Test Publishable Key”
If you want to test the Stripe integration with your test API keys, you must enable Test Modefrom Setup -> Settings -> Payment Getaways -> Stripe Checkout
After you enable the test mode and enter your test API keys, you can perform the following steps:
- Create a dummy customer.
- Create an invoice under the customer you created before and in the Allowed Payment Modes make sure that you select Stripe
- View the invoice as a customer, while previewing the invoice in the admin area click More->View Invoice as Customer.
- Scroll to the bottom and select Stripe and click Pay Now
- If you need test credit cards, you can read more in the Stripe testing guide page
Keep in mind that once you make the first payment with Stripe under your dummy customer (or any other customer), Perfex CRM will create a separate customer in Stripe dashboard and will store the customer id inside Perfex CRM database, this ID will be used for future payments and the credit card you entered the first time will be used as default source for this customer.
After you disable testing mode and change the API keys to production, the customer you created for testing purposes won’t work anymore with the production API keys, means that you won’t be able to perform tests again with this customer with your production keys, you should delete this customer because the script won’t be able to fetch this customer from Stripe because the customer ID is actually from the testing data not from production data.
However, if you are familiar with working with phpmyadmin, you can easily set the field stripe_idin tbclients table to null.