Skip to content

Security

Money changing hands deserves more than a trusting browser. This plugin is built so a payment is only credited when it can be proven genuine, so your settings can't leak, and so the gateways simply aren't available unless they should be. Here's how each layer works and why it matters to you.

Every event is signature-verified

Razorpay signs the messages it sends back — the payment callback after checkout, the subscription callbacks for recurring charges, and the webhooks that report events. The plugin verifies each one with HMAC-SHA256 before acting on it:

  • Payment callbacks — the one-time result after checkout.
  • Subscription callbacks — recurring-charge results.
  • Webhooks — the events Razorpay posts to your site.

If a message is unsigned or tampered with, it is rejected. A replayed success URL or a forged webhook simply doesn't pass, so no invoice is marked paid on a fake signal.

What HMAC verification is

An HMAC signature is a fingerprint computed from the message and a shared secret. Only Razorpay and your server know the secret, so a matching signature proves the message really came from Razorpay and wasn't altered on the way.

Outcomes are confirmed server-side

Even a correctly signed browser callback isn't the final word. The plugin confirms the outcome server-side with Razorpay before crediting anything — client callbacks are never trusted on their own. This closes the gap between "the browser says it succeeded" and "the payment truly settled."

The settings page is admin-gated

The settings page renders your API Key Secret, so it is admin-gated — it requires an admin login to open. Your Key Secret is entered as a password field and never exposed in client-side code, so day-to-day users and customers can't reach your credentials.

License and plugin-state gating

Two more gates decide whether the gateways run at all:

  • License gating. Payment processing is disabled while the license is inactive. Until the key is Active, neither Razorpay gateway appears in Admin → Payment Gateways. The check is a local background check against relyweb.co — brief outages are tolerated, and re-saving Settings restores it.
  • Plugin-state gating. Deactivating the plugin removes both gateways from Payment Gateways; reactivating restores them. When the plugin is off, there is no live payment path at all.

Together these mean a lapsed license or a deactivated plugin can never quietly keep taking payments.

Documentation for the Relyweb app catalogue.