Smartwcm payment module is one of the core features of Smartwcm platform by Pagematics. Our invoice and subscription modules are built based on the Smartwcm payment module. Implementing a payment module was not a simple task as security was one of the major concerns. Once you have a customerís credit card details with you, you have to be more careful than ever dealing with it. After a lot of thoughts and brainstorming, we decided to go with Stripe, one of the most reliable names when it comes to payment APIís
Stripe is one of the worldís fastest advancing developer platform and gives any business the technology and tools to build better. It provides its clients with excellent documentation, that helps build custom integrations with the least time and effort. The support provided by Stripe is also best in the business and that ensures that we can resolve any issue that we may run into without having to worry too much about it. We have had numerous interactions with their support team and they have been terrific. Thir product knowledge and assistance and solutions they provided are worth mentioning. This gives us the confidence to use their platform in one of our core functionalities, Smartwcm payment module.
Stripe also manages all the credit card details, taking utmost care of the security and secrecy of the user's information. Stripe has its own credit card collection UI which can be integrated into any system and can be used as the payment interface. When a user enters the credit card information, the validation functions of Stripe will validate the card for any possible errors and will display the error message. This makes the configuration very easy as the UI comes with built-in validations for all the scenarios.
During the design and development of the Smartwcm payment module, we wanted to make sure that we are not handling any sensitive information from the client and Stripe was a perfect solution. When the credit card details are submitted through the UI from Stripe, they convert the information into a token and we do not have any details of the credit card but a token. This token will be passed to Stripe to create a new customer or charge the card. This took care of our concerns with handling sensitive user data.
Testing is another important aspect when it comes to creating a payment module. Our Smartwcm team of Pagematics gives equal importance to testing as for development. Stripe account provides a user with both live and test mode API keys. These test keys can be used to generate a testing environment. Stripe also has excellent documentation which includes a long list of credit card numbers that corresponds to all the possible scenarios that might occur while trying to charge a customer and various error codes associated with payment failures. This has helped us a lot in testing all the possible scenarios during payment, capture the correct error codes and inform users the exact issue behind the payment failures.
The Smartwcm payment module has all the capabilities that re required to collect a userís credit card information securely and store it in Stripe by creating a new customer with a unique id and email address of the customer. This will create a unique record for each customer in stripe with the credit card details associated with the user stored securely.
The Smartwcm Payment module acts as a base for other modules such as subscription and invoicing. In the subscription module, we use the powerful features of our payment module to create new subscriptions based on predefined plans. Customers are given the option to choose a plan during signup and based on the plan that they select, an invoice will be generated for the user. With the credit card details collected by the user, the Smartwcm payment module will charge the customerís credit card using Stripe and then based on the status of the payment and amount, will update the invoice status accordingly.
Even in the invoice module, the core functionalities are handled by Smartwcm payment module. Here when an invoice is generated, it can be sent to users via email or users can log in to the application to view and make invoice payments. For logged-in users, if they already have a credit card stored, they can just click on the make payment option to make a payment without event providing their card details. This is done using the customer and card details stored in Stripe and passing the unique id and making an API call to charge the customer for the specif amount of the invoice.
There is another option where a user can make payment for an invoice using the quick pay option of Smartwcm payment module without having to log in to the application. Here the user will be requested for the credit card information and submitting the details will charge the users credit card for the amount of the invoice through Stripe. This makes invoice payments a lot easier and quicker when users do not have to remember their login details just to pay an invoice.
Finally, an email or SMS or both can be sent to the user informing the charge on their credit card with the relevant details. These notifications can be easily enabled and disabled using the Smartwcm platform. Customers will be notified about the amount and the last 4 digits of the credit card from which the charge was initiated
As a whole, we the Smartwcm team at Pagematics are extremely happy to have opted for Stripe as our payment platform. We were also able to understand various functionalities associated with integrating Stripe with any application using APIís. We hope that our knowledge and experience with Stripe can be used to help someone who is looking for an API integration with Stripe to set up their payment system