Razorpay Payments Add-on for Code Craft Store (Django)
Take UPI, card, netbanking and wallet payments in the Django store through Razorpay, with signature checks

Everything included
- Razorpay Orders API, amount fixed on the server
- Standard Checkout: UPI, cards, netbanking, wallets
- HMAC signature check before marking paid
- Signed webhook with amount and currency check
- Webhook URL shown in the admin
- Settings and licence key in Admin → Add-ons
From order to a live website
- 1
Buy the add-on
One-time price. Your download link and licence key arrive by email and in My Account.
- 2
Drop it in
Upload the folder to addons/, restart the app and enable it in the admin.
- 3
Take payments
Pick Razorpay at checkout, pay with UPI, card or netbanking in the Razorpay window and come back to a paid order. If the shopper closes the tab after paying, the signed webhook still marks the order paid.
What it does
Adds Razorpay as a payment method to Code Craft Store: Django Ecommerce. A Razorpay order is created on the server for the exact order total, the shopper pays in Razorpay Standard Checkout, and the HMAC signature of order_id|payment_id is verified with your key secret before the order is marked paid. A signed webhook (payment.captured or order.paid, with amount and currency checked) covers shoppers who close the tab. You need your own Razorpay account. The add-on follows Razorpay's Orders API and checkout documentation and was tested against mocked Razorpay responses only, not with real payments.
- Razorpay Orders API, amount fixed on the server
- Standard Checkout: UPI, cards, netbanking, wallets
- HMAC signature check before marking paid
- Signed webhook with amount and currency check
Requires Code Craft Store for Django
This is an add-on for Code Craft Store: Django Ecommerce, sold separately. Upload its folder to the store's addons/ folder, restart the app and configure it in Admin → Add-ons; no code changes needed. Each add-on has its own licence key.
- Works with Code Craft Store for Django 1.0 or later
- Installed in minutes on cPanel Python App or a VPS
- Its own settings card in the admin
Who needs it and what you need first
It is for shops running Code Craft Store: Django Ecommerce that sell mainly in India and want UPI, cards, netbanking and wallets through Razorpay. You need the store (1.0 or later) on Python 3.10 or later, your own Razorpay account with API keys, and HTTPS for the webhook. The shopper pays in Razorpay's own Checkout window, so no card or UPI details pass through your server, and there are no extra Python packages to install.
- Your own Razorpay account
- Store 1.0+, Python 3.10+
- HTTPS domain for the webhook
Setting it up in Razorpay and in your admin
Upload the razorpay folder to addons/ and restart the app. In the Razorpay Dashboard create API keys (rzp_test_ while you test) and add a webhook with the address shown on the add-on's card in Admin → Add-ons, https://your-domain/addons/razorpay/webhook/, for the events payment.captured and order.paid, with a secret you choose. In the add-on's settings enter the Key ID, Key secret, webhook secret and licence key, pick the checkout colour (default #2f5d50), tick Enable and save. Then tick UPI, cards & netbanking (Razorpay) in Admin → Payment methods.
- Webhook address: /addons/razorpay/webhook/
- Events: payment.captured and order.paid
- Checkout colour picker
What happens during a payment
When the shopper places the order, the add-on creates a Razorpay order on the server for the exact total in the order's currency (paise for INR), with your order number as the receipt, and shows a checkout page that opens Razorpay Checkout. Razorpay's response is posted back to the store with the page's CSRF token. The order is marked paid only when the Razorpay order id is the one saved on your order and the signature equals HMAC-SHA256 of the order id and payment id with your key secret; otherwise the shopper is told the payment could not be verified. The webhook needs a valid X-Razorpay-Signature and a matching amount and currency.
- Razorpay order created on the server
- Signature verified before marking paid
- Webhook confirms orders if the window is closed
Honest limits
Its automated tests answer every Razorpay call with a simulated response: the order and checkout page, a signature-verified callback, a bad signature refused and the webhook. It has never handled real money, so try a test-mode payment first. Refunds, settlements and disputes are handled in your Razorpay Dashboard. Razorpay decides which currencies and methods your account accepts.
- Simulated responses only
- Refunds are made in Razorpay
- Razorpay fees apply
After the payment: what you see in the admin
The order moves from pending to paid with a note naming Razorpay and the payment reference, which is saved on the order, and the store emails the customer and you as it does for every status change. A webhook that reports a different amount or currency is ignored, so the order stays pending for you to check in your Razorpay account. From there you handle the order as usual: processing, shipped with a tracking number and link, then delivered. An order that is already paid is never marked paid again.
- Payment reference saved on the order
- Status emails to the customer and you
- Mismatches leave the order pending
More ready-made websites
Built by the same team, with the same setup service and support.
Browse every ready-made website, or compare our custom website packages if you need a site designed from scratch. Want more guests to find you on Google Maps? See our local SEO service, or talk to our web design team.




