Store 5 includes upgrades to all payment gateways. One of the main areas that this release addresses is the new European strong customer authentication (SCA) directive.
Store 5 aligns it’s minimum requirements with ExpressionEngine 5. https://docs.expressionengine.com/latest/installation/requirements.html#recommended-requirements
For the Stripe payment gateway, a number of specific changes are needed for this upgrade. To be SCA compliant, Store has been upgraded to use the Stripe Payment Intents API in conjunction with Stripe Elements. To help with this transition, we have provided a sample template and an easier way to add required Javascript to your page.
To add the necessary Javascript for Stripe Elements, there is a module tag that you can add to your
checkout page to easily set up what you need. {exp:store:stripe_js}
This tag accepts a single argument
publishable_api_key
which will contain your public Stripe key. Example:
{exp:store:stripe_js publishable_api_key="pk_test_stripe_key"}
To help you get started, there is now a Stripe specific checkout template sample. This can be found under
templates/checkout-stripe.html
. If you are installing the default template set as a starting point, you can edit
the templates/checkout2.html
file and modify the {exp:store:checkout}
tag to redirect to that template instead
of checkout3. Just add next="store_example/checkout-stripe"
as the template to redirect to.
Note: by default, Store only provides the minimum fields required for a Stripe payment to be processed.
Store is not opinionated about the end users implementation or what additional fields are collected during checkout
(such as name, address, etc.). If you wish to customize or style your checkout form differently,
add additional fields or meta data, you can follow normal Stripe guidelines based on their documentation
at https://stripe.com/docs. This may mean that you won’t be able to apply the example {exp:store:stripe_js}
tag, and instead add your own custom javascript to your website markup.
####Stripe Multilingual notes Stripe Elements will accept a two letter language abbreviation if you need to change the English language default. Stripe’s current supported values are: ar, da, de, en, es, fi, fr, he, it, ja, lt, ms, nl, no, pl, ru, sv, zh
If you opted to use the {exp:store:stripe_js}
template tag solution, there is a language
parameter available
if you’d like to specify a different language. As an example, if you have specified a language in a global variable,
such as $assign_to_config['global_vars']['language'] = "de";
, then you could call the template tag like
{exp:store:stripe_js publishable_api_key="pk_test_stripe_key" language="{language}"}
. Similarly, if you have
enabled other third party multilingual extensions, you could pass in options such as {transcribe:language_abbreviation}
or {publisher:current_language_code} to the language parameter to change the default.