Getting paid online should be the simplest part of running a business. In practice, it's often where things go wrong. Orders marked unpaid even though money arrived, subscriptions that don't renew, receipts that never send, test keys accidentally left on a live site.
I'm Aldrian, an independent developer. I integrate payment gateways into websites, online stores, booking systems and custom web apps for businesses in the Philippines and abroad.
Gateways I work with
Every gateway has its own API, quirks and supported methods. I've worked with or can integrate:
- Stripe for cards, wallets and subscriptions in supported countries
- PayPal for international buyers who prefer it
- PayMongo, Xendit and Dragonpay for Philippine methods like GCash, Maya, cards and online banking. More on my GCash and Maya integration page.
- Platform payments in WooCommerce and Shopify through their official integrations
If you use a different gateway, I'll read its documentation and tell you honestly what's involved.
What I can build
One-time checkouts
For stores, services, event tickets, donations and digital products. The customer pays, the order updates and receipts go out.
Deposits and partial payments
For bookings, reservations, custom orders and services where a downpayment confirms the job.
Subscriptions and recurring billing
For memberships, software, retainers, boxes and courses. This includes trial periods, upgrades and downgrades, failed payment retries, cancellations and customer billing portals where the gateway supports them. See membership websites.
Invoices and payment links
Send a payment link or invoice to a client, and the system marks it paid when they pay. Great for service businesses and agencies.
Marketplace and split payments
For platforms that collect payments on behalf of several sellers, using the gateway's marketplace features where available.
The parts that make payments reliable
Webhooks done properly
The gateway tells your system when something happens: payment succeeded, failed, refunded, subscription renewed or cancelled. Your system has to receive these messages, verify they're genuine and update records correctly. This is the part most often skipped or done wrong, and it's the cause of most "paid but marked unpaid" problems.
Idempotency
Gateways sometimes send the same webhook more than once. Your system should handle that without creating duplicate orders or sending duplicate emails.
Security
Card details stay with the gateway, never on your server. Secret keys live in secure environment settings, not in code or front-end files. Webhook signatures are checked. Test and live keys are kept strictly apart.
Clear customer experience
Clear prices and totals, helpful error messages when a payment fails, a confirmation page and an email receipt. Customers should never wonder whether they paid.
Reconciliation
Your records should match the gateway's records. I set up order and payment references so your team can trace any payment quickly.
Testing before real money moves
I build and test everything in the gateway's test mode first, covering successful payments, declines, cancellations, expired sessions, refunds and webhook retries. Then we do a small real payment on the live site before your customers see it.
Fixing existing integrations
If your current payment setup is unreliable, I can audit and fix it. Common problems:
- Orders stuck on pending
- Webhooks not configured or failing silently
- Subscriptions not renewing or not cancelling
- Payment plugins broken after updates
- Duplicate charges or duplicate orders
- Keys exposed in public code
See my checkout and payment fix page.
Choosing a gateway
The right gateway depends on where your customers are, which methods they prefer, your business registration, the fees you're comfortable with and how quickly you need payouts. I'll compare options with you and explain the trade-offs. You sign up in your own business name, so the money goes straight to you.
Built with a modern stack
For custom web apps, I usually work with TypeScript and modern serverless platforms like Cloudflare Workers, which handle webhooks quickly and cost little to run. My Ghostly project shows the kind of fast, secure web apps I build. For WordPress and WooCommerce, I work within the platform and keep plugins to a minimum.
Common mistakes in payment integrations
Trusting the redirect. Marking an order as paid just because the customer landed on a "thank you" page is unsafe. Only the verified webhook should confirm payment.
No handling for failures. Customers with a declined card need a clear way to retry, not a dead end.
Keys in the code. Secret keys committed to a repository or placed in theme files are a serious risk.
No logs. When something goes wrong, you need records of what the gateway sent and what your system did.
Documentation you can keep
Payment systems outlive the people who built them. At the end of a project you get a short document explaining which gateway account is used, where keys are stored, which webhooks are configured and what each one does, how refunds work and what to check if a payment looks wrong. If you ever change developers, the next person can pick it up without guessing.
How we'd work
- We talk about what you sell and how you want to be paid.
- We choose the gateway and payment flow.
- You get a quote with scope, timeline and fixed price.
- I integrate and test in test mode.
- We go live with a real test payment.
- I hand over documentation on refunds, reports and keys.
Let's get your payments working reliably
Tell me about your project. I'll reply with a plan and a fixed quote.




