Docs / Payment Gateways / Stripe Payment Gateway

Stripe Payment Gateway

Overview

Stripe is a leading payment processor offering seamless credit card processing, modern checkout experiences, and support for subscriptions. It’s recommended for most digital product stores due to its developer-friendly approach and global reach.

Prerequisites

  • WordPress Download Manager installed
  • Premium Packages add-on activated
  • SSL certificate (required)
  • Stripe account (stripe.com)

Creating a Stripe Account

  • Go to stripe.com
  • Click Start now or Create account
  • Enter email and create password
  • Verify your email
  • Complete business verification

Getting API Credentials

Step 1: Access Dashboard

Step 2: Get Keys

┌─────────────────────────────────────────────────────────────┐
│ API Keys                                                     │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ Test mode keys (for development):                            │
│ Publishable key: pk_test_51ABC...                           │
│ Secret key:      sk_test_51ABC... [Reveal]                  │
│                                                              │
│ Live mode keys (for production):                             │
│ Publishable key: pk_live_51ABC...                           │
│ Secret key:      sk_live_51ABC... [Reveal]                  │
│                                                              │
└─────────────────────────────────────────────────────────────┘

Important:

  • Publishable key – Safe to expose (starts with pk_)
  • Secret key – Keep private (starts with sk_)
  • Test keys – For testing (contains _test_)
  • Live keys – For production (contains _live_)

Configuring in WPDM

Step 1: Enable Stripe

  • Go to Downloads > Settings > Payment Gateways
  • Find Stripe
  • Check Enable Stripe

Step 2: Enter Credentials

┌─────────────────────────────────────────────────────────────┐
│ Stripe Configuration                                         │
├─────────────────────────────────────────────────────────────┤
│                                                              │
│ ☑ Enable Stripe                                              │
│                                                              │
│ Title:                                                       │
│ [Credit Card                                             ]   │
│                                                              │
│ Description:                                                 │
│ [Pay securely with your credit or debit card             ]   │
│                                                              │
│ Mode:                                                        │
│ ○ Test Mode   ● Live Mode                                    │
│                                                              │
│ Live Publishable Key:                                        │
│ [pk_live_51ABC...                                        ]   │
│                                                              │
│ Live Secret Key:                                             │
│ [sk_live_51ABC...                                        ]   │
│                                                              │
│ Test Publishable Key:                                        │
│ [pk_test_51ABC...                                        ]   │
│                                                              │
│ Test Secret Key:                                             │
│ [sk_test_51ABC...                                        ]   │
│                                                              │
│ [Save Settings]                                              │
└─────────────────────────────────────────────────────────────┘

Step 3: Save

Click Save Settings to apply.

Webhook Configuration

Why Webhooks?

Webhooks ensure orders are updated even if:

  • Customer closes browser during payment
  • Network issues occur
  • Redirect fails

Step 1: Get Webhook URL

In WPDM Stripe settings, find:

Webhook URL: https://yoursite.com/?wpdmpp_gateway=stripe

Step 2: Add in Stripe Dashboard

  • Go to Developers > Webhooks
  • Click Add endpoint
  • Enter your webhook URL
  • Select events:

checkout.session.completed
payment_intent.succeeded
payment_intent.payment_failed
charge.refunded

  • Click Add endpoint

Step 3: Get Webhook Secret

After creating webhook:

  • Click on the webhook endpoint
  • Find Signing secret
  • Click Reveal
  • Copy the secret (starts with whsec_)

Step 4: Add to WPDM

Webhook Secret:
[whsec_ABC123...                                           ]

Checkout Experience

Stripe Checkout (Hosted)

Customers redirected to Stripe’s hosted page:

Customer clicks "Pay" → Redirect to Stripe → Enter card → Redirect back

Pros:

  • Fully hosted, PCI compliant
  • Mobile optimized
  • Support for all Stripe features

Inline Card Form

Card form embedded on your checkout:

┌─────────────────────────────────────────┐
│ Card Number                             │
│ [4242 4242 4242 4242              ]     │
│                                         │
│ Expiry          CVC                     │
│ [12/28]         [123]                   │
│                                         │
│ [Pay $99.99]                            │
└─────────────────────────────────────────┘

Configuration:

Checkout Style:
○ Stripe Checkout (Hosted)
● Inline Card Form

Payment Methods

Cards

Supported card brands:

  • Visa
  • Mastercard
  • American Express
  • Discover
  • Diners Club
  • JCB

Additional Methods

Enable in Stripe Dashboard > Settings > Payment methods:

Method Availability
Apple Pay Safari, iOS
Google Pay Chrome, Android
Link Stripe’s fast checkout
Afterpay/Clearpay BNPL

Enabling Apple Pay/Google Pay

☑ Enable Apple Pay / Google Pay
   (Requires domain verification)

Domain verification:

  • Download verification file from Stripe
  • Upload to /.well-known/apple-developer-merchantid-domain-association
  • Verify in Stripe Dashboard

Subscriptions

Enabling Subscriptions

For recurring billing products:

☑ Enable Stripe Subscriptions

Subscription Settings:
├─ Webhook events: subscription.* events
├─ Proration: [Always prorate     ▼]
└─ Cancellation: [End of period   ▼]

Subscription Products

In product pricing:

☑ Recurring Payment
Billing Cycle: [Monthly ▼]
Price: $9.99/month

Testing Stripe

Test Cards

Scenario Card Number
Success 4242 4242 4242 4242
Decline 4000 0000 0000 0002
Insufficient funds 4000 0000 0000 9995
Expired card 4000 0000 0000 0069
3D Secure required 4000 0025 0000 3155

For all test cards:

  • Expiry: Any future date
  • CVC: Any 3 digits
  • ZIP: Any valid ZIP

Test Process

  • Enable Test Mode
  • Enter test API keys
  • Create test order
  • Use test card number
  • Verify order completion
  • Check Stripe test dashboard

3D Secure (SCA)

What is 3D Secure?

Additional authentication for card payments:

  • Required in EU (SCA/PSD2)
  • Reduces fraud
  • Customer verifies via bank

How it Works

1. Customer enters card
2. Stripe checks if 3DS required
3. If yes: bank authentication popup
4. Customer authenticates
5. Payment completes

Configuration

3D Secure:
○ When required by bank
● Always request (recommended for EU)
○ Never (not recommended)

Refunds

Processing Refunds

Option 1: From WPDM

  • Go to order
  • Click Issue Refund
  • Choose amount
  • Click Process

Option 2: From Stripe Dashboard

  • Go to Payments
  • Find payment
  • Click Refund
  • WPDM updates via webhook

Refund Timeline

Card Type Timeline
Credit cards 5-10 business days
Debit cards 5-10 business days
International Up to 20 days

Disputes & Chargebacks

Handling Disputes

When customer disputes charge:

  • Stripe notifies you
  • Provide evidence in Stripe Dashboard
  • Stripe submits to bank
  • Bank decides

Reducing Disputes

  • Clear product descriptions
  • Good refund policy
  • Recognizable statement descriptor
  • Responsive support

Statement Descriptor

Statement Descriptor:
[YOURSTORE*                              ]
(What appears on customer's card statement)

Troubleshooting

“Your card was declined”

Causes:

  • Insufficient funds
  • Card expired
  • Bank blocked
  • Test card in live mode

Solutions:

  • Try different card
  • Check card expiry
  • Contact bank
  • Verify test/live mode

“Invalid API Key”

Causes:

  • Wrong key entered
  • Test key in live mode
  • Key revoked

Solutions:

  • Copy key again from Stripe
  • Match key type to mode
  • Generate new key

Webhook Errors

Causes:

  • Wrong webhook URL
  • Missing webhook secret
  • Server firewall

Solutions:

  • Verify URL is correct
  • Add webhook secret
  • Check server allows Stripe IPs

Payment Stuck on Processing

Causes:

  • Webhook not received
  • Order not updated

Solutions:

  • Check webhook logs in Stripe
  • Manually verify payment in Stripe
  • Update order status if paid

Advanced Settings

Metadata

Send custom data with payments:

☑ Include order metadata
├─ Order ID
├─ Customer email
├─ Product names
└─ Custom fields

Receipt Emails

☑ Send Stripe receipt emails
(Stripe sends payment receipt directly)

Radar (Fraud Protection)

Enable in Stripe Dashboard:

  • Machine learning fraud detection
  • Custom rules
  • 3D Secure triggers

Related Documentation


Last updated: January 2026
Applies to: WordPress Download Manager 7.x + Premium Packages

Last updated on January 26, 2026

Need Help?

Get support from our team or community forum.

Visit Support

Customization

Need custom features? We can help.

Request Quote