Skip to main content
Easy Digital Downloads Documentation
Documentation, Reference Materials, and Tutorials for Easy Digital Downloads

Stripe – Common Issues and FAQ

Error: Missing secure Stripe token, please try again.

This error occurs for a number of reasons:

  • A conflict with one or more plugins activated on your site
  • A conflict with the currently active theme on your site
  • A Javascript syntax error on the checkout screen that comes from your theme or another plugin
  • An overly aggressive anti-virus or malware program that is blocking the communication to Stripe.com
  • Customized checkout fields that results in the Stripe Payment Gateway malfunctioning
  • A conflict with server-level security configuration

If you receive this error, the first thing to do is to first test for plugin conflicts by deactivating all other plugins and then re-testing a purchase through the Stripe Payment Gateway. If the problem goes away after deactivating all other plugins, reactivate your plugins one at a time and test a purchase after each activation. Once the problem returns, you will have identified the problematic plugin.

If the problem does not get resolved by deactivating other plugins, temporarily activate a different theme, such as Twenty Seventeen,  Vendd, or Themedd. Once one of these themes is activated, try completing a new purchase. If the purchase goes through without issue, the problem is caused by your theme and you should contact your theme’s development or support team for assistance in resolving the error.

If the problem persists after deactivating all plugins and activating a standard theme, it is likely that the issue is due to a browser plugin or a server-level security configuration. To test for a browser plugin conflict, re-try a purchase using a different browser. For example, if you typically use Chrome, try making a purchase from Firefox. If the purchase succeeds, the problem is limited to your Chrome configuration and may be resolved by deactivating browser plugins/extensions.

If none of these solutions work for you, please contact our support team for assistance.

What is used for the statement descriptor?

The statement descriptor is what your customers will see on their credit card statements when they purchase from you. You can set a statement descriptor in your Stripe settings under Dashboard → Downloads → Settings→ Payment Gateways → Stripe → Statement Descriptor. However, if you leave that blank, the items purchased will be used instead. Note that the purchase summary can only be 22 characters because that is the limit put on the length by credit card statements. If you have entered a statement descriptor into your Stripe account, note that it will not be used. Note that certain characters (< > ” and ) can not be used and will be automatically removed if used.

For more information about statement descriptors, or if you are using Recurring Payments extension, see this doc.

Can’t combine currencies on a single customer

Stripe has a default currency setting for each account. It can be any currency they support, but there can only be one. When doing single transactions Stripe is able to accept any other currency and convert it to the account holder’s default currency.

With the Stripe Standard or Stripe Pro if you offer a subscription in a currency other than the default currency set in Stripe you may see this error message during the purchase process:

Can't combine currencies on a single customer

This issue arises with recurring payments when there is a renewal discount. In that case EDD must ask Stripe for the account_balance, which is always in the default currency for that Stripe account.

An example is if you have a Stripe account with a currency of GBP, and a subscription in USD with a renewal discount.  When it comes time to renew EDD will get the account_balance from Stripe (which will be in GBP) and try to use it with your current transaction amount, and the two currencies will conflict.

One solution is to us our Multi Currency add-on.

Why does Stripe load on all pages?

This is intentional and something that Stripe recommends in order to help with fraud protection.

To best leverage Stripe’s advanced fraud functionality, include this script on every page of your site, not just the checkout page. This allows Stripe to detect anomalous behavior that may be indicative of fraud as customers browse your website.
https://stripe.com/docs/stripe-js/reference

If you would like to only load the Stripe assets only when necessary, you can go to Downloads > Settings > Payments > Stripe, and check the Restrict Stripe Assets setting.

[caption id="attachment_1772734" align="alignnone" width="750"]Restrict Stripe Assets setting
Checking the box for ‘Restrict Stripe Assets’ will only load the Javascript for Stripe when it is necessary.[/caption]

Why isn’t the credit card field showing up?

If you are seeing all other fields on your checkout page, but not the credit card fields, it might be a conflict with a 3rd party plugin that also uses Stripe. If a 3rd party plugin is loading an old version of stripe.js, the credit card field won’t show up. You will also see this error in your javascript console: “window.eddStripe.elements is not a function”. You will need to deactivate or update any 3rd party plugins that might be using Stripe to rule that out.