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
- Log in to dashboard.stripe.com
- Click Developers in left sidebar
- Click API keys
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