At the very beginning, we had at our disposal the client’s API, which was an essential base for the development of Savvy payment gateway extensions.
We decided to start the development from a Savvy extension for Magento 2, as the most relevant, complex, and functional solution. Then, one-by-one, we completed the rest of the extensions for Magento 1, OpenCart, PrestaShop, and WooCommerce.
Issues on the side of e-commerce platforms
Unlike standard card payment methods (when the entire process is carried out on the online store checkout page), crypto payments always imply a transition to a third-party resource (in our case, to Savvy’s website). In general, modern e-commerce platforms like Magento, when initiating payment on the third-party resource, automatically create a new order in the admin panel with “Pending Payment” status. After the payment process is successfully completed, a special controller receives an Instant Payment Notification (IPN) from the payment provider’s API.
We faced a problem when we switched to the development of the WooCommerce payment gateway plugin. Wordpress CMS does not have any controllers that can accept IPNs. Additionally, available Wordpress plugins that enabled the platform to receive and respond to such notifications did not resolve our issue entirely, and were suitable only for card payment processing.
To solve this issue, we developed a script specifically for Wordpress that allowed WooCommerce-based online stores to receive and process payment notifications in a way crypto payments required.
Currency exchange rate guarantee
Imagine that a customer wants to pay $100 for their purchase with a cryptocurrency. From the checkout page, they pass to Savvy, convert $100 to the selected cryptocurrency, and then for some reason, postpone the payment for 15-20 minutes. Later, they proceed with the payment, submitting the previously calculated amount in cryptocurrency. Even just during these 15-20 minutes, the cryptocurrency rate could change significantly and you, as a seller, run the risk of getting less money than expected.
In this case, all the risks lie entirely on the merchant. The only solution to this problem is guaranteeing the cryptocurrency exchange rate. Every merchant independently chooses how long this guarantee should last. On average, it is 3-5 minutes. If a payment is made after the set deadline and the merchant receives a smaller amount, then the system sends a notification to the customer saying that due to the delay in payment, the exchange rate has changed and that the customer must pay the difference.
Mistakes when submitting a payment amount
If a customer initiates a payment with the Savvy crypto-wallet and enters a wrong amount (for example the required sum is 0.015 btc, but the customer mistakenly submits 0.012 btc) the system immediately notes that the payment has been made but the amount is incorrect. Subsequently, the customer receives a notification with a request to pay the extra amount needed.