The Problem We Were Actually Solving
We had a digital product, a course on blockchain development, that we wanted to sell globally. Our platform of choice, however, was PayPal, which didn't allow us to sell our product in some countries due to sanctions and other restrictions. We couldn't just circumvent the rules or lose revenue from legitimate customers. Instead, we needed a payment system that could accept Bitcoin and automatically exchange it to the local currency at competitive exchange rates.
What We Tried First (And Why It Failed)
Our first attempt was to use a third-party service that would convert our existing PayPal-based system to accept Bitcoin. However, we soon realized that the exchange rates this service offered were inflated by up to 30% compared to the market rate. What's worse, when the customer received their product, they would receive an email saying that their purchase had been made with an "unusual" payment method. This was not the kind of transparency and trust we wanted to instill in our customers.
The Architecture Decision
We decided to design our own payment system from scratch, integrating a Bitcoin payment gateway directly with our existing payment system. This would not only provide us with better exchange rates but also grant us full control over the user experience. We chose to use the BitPay API, a well-established and reputable service, for our Bitcoin gateway. We also implemented a fallback strategy in case the BitPay API was down, using a local caching mechanism to serve recent exchange rates. The system also had to accommodate different currencies, so we had to figure out a way to handle all the necessary conversions.
What The Numbers Said After
After implementing the new system, we noticed a significant improvement in exchange rates, on average around 12% better compared to our previous solution. What's more, we received excellent reviews from customers who appreciated the transparency of the payment process. The system also turned out to be more reliable, with a 99.99% uptime. Not to mention, we were able to increase our revenue by 10% due to the improved exchange rates.
What I Would Do Differently
In hindsight, I would have opted for a more modular architecture, separating the payment processing from the product delivery. This would have allowed us to update or replace the payment system without affecting the rest of the application. Additionally, I would have implemented more robust testing and monitoring from the outset, to avoid the downtime and other issues we encountered along the way.
Top comments (0)