Stripe Payments Documentation

HomePlugin Documentation› Stripe Payments

Stripe Payments Documentation

Configure secure checkout, saved cards, webhooks, and recurring billing.

Connect nopCommerce to Stripe, configure test and live credentials, enable saved payment methods, support 3D Secure, process payment actions, and manage recurring customer billing.

Overview

eStoreware Stripe Payments provides embedded Stripe card entry for nopCommerce, saved payment methods at checkout and in My Account, 3D Secure support, authorize-and-capture workflows, refunds, webhook processing, multi-store settings, and recurring-payment administration.

Embedded checkout

Customers enter card details inside the nopCommerce checkout instead of navigating through a separate payment page.

Saved cards

Eligible customers can reuse tokenized Stripe payment methods without storing raw card data in nopCommerce.

Modern authentication

3D Secure and SCA flows can request cardholder verification when Stripe or the card issuer requires it.

Recurring tools

Review renewals, retry activity, payment methods, pause dates, snoozes, and next-payment scheduling.

Security model: Stripe tokenizes payment methods. The store should never log, email, or save complete card numbers, CVC values, or other raw card data.

Install and activate Stripe Payments

  • Install eStoreware Core and confirm its dashboard loads.
  • Install eStoreware Stripe Payments from nopCommerce Local plugins.
  • Restart or reload the application when prompted.
  • Open eStoreware → Licensing, activate the Stripe Payments license, and validate it.
  • Open Configuration → Payment methods, locate eStoreware Stripe Payments, and select Configure.
  • Begin in Stripe test mode before entering any live credentials.
Do not mix modes. Test publishable keys, test secret keys, test webhook secrets, and test transactions must stay together. Live credentials must be entered as a complete live set.

Connect Stripe keys and the webhook

Get API keys from Stripe

  • Sign in to the correct Stripe account.
  • Enable test mode while configuring and testing the plugin.
  • Open the Stripe developer API keys area.
  • Copy the test publishable key and test secret key into the matching plugin fields.
  • Save the plugin configuration before creating the webhook endpoint.
Credential Purpose Handling
Publishable key Used by Stripe’s browser-side payment components. Not treated like a password, but should still match the intended Stripe account and mode.
Secret key Allows the server to create and manage Stripe payment objects. Keep private. Never expose it in page source, screenshots, email, or client-side JavaScript.
Webhook signing secret Verifies that incoming webhook events were signed by Stripe. Use the signing secret for the exact endpoint and mode configured in Stripe.

Create the Stripe webhook endpoint

Use the plugin webhook URL:

https://YOUR-DOMAIN.com/Plugins/eStoreware/Stripe/Webhook
  • In Stripe, open the Webhooks area and add a new endpoint.
  • Paste the HTTPS webhook URL from the plugin configuration.
  • Select the payment, refund, dispute, and recurring events required by the installed plugin version.
  • Create the endpoint and reveal its signing secret.
  • Paste the signing secret into the plugin’s webhook-secret field and save.
  • Send a Stripe test event and confirm the delivery succeeds.
Multi-store: When different nopCommerce stores use different Stripe accounts, select the store scope before saving credentials and enable the store-specific override for each field.
eStoreware Stripe configuration showing sandbox mode, redacted API keys, webhook signing secret, and webhook URL
Stripe connection settings. Configure sandbox mode, test and live API credentials, the webhook signing secret, and the generated endpoint URL. All visible credentials in this public screenshot are redacted.

Review Stripe Payments settings

Setting area Recommended review
Test / live mode Keep test mode enabled until checkout, webhooks, saved cards, refunds, and recurring behavior have been verified.
Transaction mode Choose immediate authorize-and-capture or authorize-only based on the store’s fulfillment workflow.
Saved payment methods Decide whether registered customers may save a new method, select a saved method at checkout, and manage methods in My Account.
3D Secure Use the supported Stripe authentication behavior and avoid forcing authentication more broadly than the business requires.
Recurring payments Enable the recurring tools only after the Stripe account, webhooks, scheduled tasks, and renewal workflow are tested.
Order notes and logging Keep useful Stripe IDs and status transitions without logging credentials or sensitive card data.
Multi-store overrides Confirm every store uses the intended keys, webhook secret, and behavior.

Checkout and 3D Secure

The Stripe Payment Element is displayed inside the nopCommerce payment step. The plugin creates the Stripe payment flow, confirms it from the browser, and returns the customer to the normal order process.

Standard checkout test

  • Add a normal product to the cart and proceed through checkout.
  • Select eStoreware Stripe Payments.
  • Enter a Stripe test card and complete the order.
  • Confirm the nopCommerce order is created once.
  • Confirm the Stripe payment and amount match the nopCommerce order total.
  • Review order notes and webhook delivery history.

One-page checkout test

Repeat the full flow through the installed one-page checkout. Confirm the payment fields initialize once, the order button cannot create duplicate intents or duplicate orders, and validation messages remain visible when customer input requires correction.

3D Secure test

Use a Stripe test payment method that requires authentication. Confirm the customer can complete the Stripe challenge, return to checkout, and finish the order without losing the cart or creating a duplicate order.

nopCommerce checkout showing eStoreware Stripe Payments, saved-card selection, new-card fields, and order summary with example customer data
Embedded checkout. Customers can select a saved payment method or enter a new card without leaving the nopCommerce checkout. The customer information shown here has been replaced with example data.
Stripe 3D Secure 2 test challenge displayed over checkout
3D Secure authentication. Stripe can display the issuer authentication challenge over checkout and return the customer to the normal order flow after completion.
nopCommerce thank-you page confirming a successfully processed example order
Successful order completion. After Stripe confirms the payment, the customer reaches the standard nopCommerce thank-you page with an example order reference.

Saved payment methods

Saved cards are represented by Stripe customer and payment-method IDs. nopCommerce can display safe card details such as brand and last four digits, but it should not store raw card numbers.

Save a payment method during checkout

  • Sign in with a registered customer account.
  • Choose to enter a new card during checkout.
  • Enable the save-card option when shown.
  • Complete the payment successfully.
  • Return to checkout and confirm the saved method appears in the saved-card selector.

Use a saved card at checkout

Select an existing Stripe payment method from the saved-card list and complete the order. Confirm the plugin uses the selected payment method rather than creating an unintended new one.

Manage cards in My Account

The customer account payment-method page allows eligible customers to review and remove stored Stripe payment methods. Test the page after the customer’s first completed purchase and confirm the correct Stripe customer is associated with the nopCommerce customer.

Customer mapping matters. When a Stripe customer or payment-method mapping is missing, duplicated, or copied incorrectly between environments, saved cards may not load or may be rejected.
Stripe checkout card selector showing a new card and multiple saved Visa payment methods
Saved-card checkout selector. Registered customers can choose an existing tokenized payment method or enter a new card.
Customer account Saved payment methods page showing default card, card names, expiration, status, and card actions
Customer payment-method management. Customers can rename cards, choose the default method, review renewal status, add another card, or remove an eligible card.

Authorize, capture, void, and refund

Action When to use it
Authorize and capture Charges the customer as part of the initial successful payment flow.
Authorize only Reserves the amount so the administrator can capture it after reviewing or preparing the order.
Capture Completes an existing authorization before it expires.
Void Cancels an uncaptured authorization.
Refund Returns all or part of a captured payment through the supported nopCommerce order action.

After each action, confirm the result in nopCommerce order notes, Stripe payment details, and webhook deliveries. Never assume the browser response alone is the final payment state.

Recurring billing administration

The recurring tools provide a nopCommerce administration workflow for reviewing customer renewal records and controlling payment timing. Exact options depend on the installed plugin version and configuration.

  • Review the customer, Stripe customer, saved payment method, amount, interval, and next payment date.
  • Pause or snooze a recurring record when a temporary delay is required.
  • Update the next payment date only after confirming the business reason and customer expectation.
  • Use retry tools for eligible failed renewals after reviewing the Stripe decline or error.
  • Review renewal history and nopCommerce logs before manually retrying more than once.
  • Confirm the required scheduled task is enabled and running at the intended interval.
Webhook and scheduled-task roles: Scheduled processing can initiate or review renewal work, while webhooks report Stripe-side outcomes. Both must be configured and tested.
Stripe recurring payments administration page showing overview totals, filters, and a sanitized recurring payment row
Recurring-payment overview. Administrators can review active, paused, completed, inactive, and attention-required records, then filter and open individual subscriptions. Customer and order information is sanitized.
Recurring payment detail page showing status summary, sanitized customer and order data, billing cycle, default card, and pause controls
Recurring-payment details. Review billing status, cycle, next payment, default card, prior renewal, and customer actions, then pause, send a card-update email, or cancel when appropriate.
Recurring payment administration showing manual retry status, internal notes, retry attempts, and sanitized renewal timeline
Retry and timeline tools. Administrators can review retry eligibility, add internal notes, inspect prior attempts, and follow the initial-order and renewal timeline. Order references are sanitized.
Recurring payment administration showing next-payment controls, readiness checks, and sanitized renewal history
Scheduling and renewal history. Change the next-payment date with an internal reason, review readiness results, and confirm completed renewal history. Order references are sanitized.

Test before switching to live mode

Test Expected result
New-card payment One Stripe payment and one nopCommerce order with matching totals.
Declined payment Clear customer message; no paid order and no duplicate payment attempt.
3D Secure Authentication completes and returns to the same checkout flow.
Save new card The method appears for the same registered customer on a later checkout.
Use saved card The selected stored method is charged without collecting raw card details again.
Refund The Stripe refund and nopCommerce order notes agree.
Authorize / capture The order remains authorized until capture, then updates correctly.
Webhook Stripe reports successful delivery and the store records the event.
Recurring renewal The renewal runs once, records its outcome, and calculates the next date correctly.
Multi-store Each store uses its own intended mode, credentials, and webhook secret.

Switch to live mode

  1. Confirm all test scenarios pass.
  2. Choose the correct nopCommerce store scope.
  3. Disable test mode.
  4. Enter the live publishable key, live secret key, and live endpoint signing secret.
  5. Create or confirm the live webhook endpoint.
  6. Save settings and perform a controlled low-value live transaction.
  7. Confirm the live order, payment, webhook, order notes, and refund procedure.

Troubleshooting

The payment fields do not load

  • Confirm the publishable and secret keys match the selected test or live mode.
  • Review browser console errors and nopCommerce logs.
  • Confirm the checkout page is served over HTTPS.
  • Check for duplicate scripts, checkout partial reloads, or theme JavaScript conflicts.

PaymentMethodId is empty or the payment is “not ready”

  • Confirm Stripe Elements finished initializing before the order button was used.
  • Confirm the checkout confirmation step receives the payment method or intent result.
  • Check for JavaScript that submits the checkout twice or replaces the payment container unexpectedly.

“No such PaymentMethod”

  • Confirm the payment method belongs to the same Stripe account and mode as the configured secret key.
  • Confirm a test payment method is not being used with live credentials, or the reverse.
  • Review the nopCommerce customer-to-Stripe-customer mapping.

Saved cards do not appear

  • Confirm the customer is registered and has a Stripe customer mapping.
  • Confirm the method was attached after a successful checkout.
  • Confirm saved methods are enabled for the current store scope.
  • Review the mapping repair or migration status after upgrading from an older plugin version.

The order or payment is created twice

  • Disable repeated clicks while the Stripe confirmation is processing.
  • Review theme and one-page-checkout scripts for duplicate submit handlers.
  • Confirm the server reuses the intended payment intent rather than creating a second intent on retry.
  • Review Stripe request logs, webhook deliveries, and nopCommerce order timestamps.

Webhooks fail

  • Confirm the endpoint uses the public HTTPS domain and correct path.
  • Confirm the signing secret belongs to that exact endpoint and mode.
  • Review Stripe delivery attempts and the HTTP response.
  • Confirm a firewall, proxy, rewrite rule, or security plugin is not blocking the endpoint.
Before contacting support: Include the nopCommerce version, plugin version, Stripe mode, order number, approximate time, Stripe PaymentIntent ID, webhook event ID, and relevant log entry. Never include secret keys, signing secrets, or complete card data.

Return to Plugin Documentation, review the Stripe Payments feature page, or contact eStoreware support.

Back to top ↑