J'essaie d'implémenter des éléments Stripe dans mon application Rails, mais je n'arrive pas à inclure correctement le fichier stripe.js. Voici mon application.html
<%= tag :meta, name: "stripe-key", content: Figaro.env.stripe_publishable_key %>
<script type="text/javascript" src="https://js.stripe.com/v3/"</script>
<script type="text/javascript" src="https://js.stripe.com/v2/"></script>
var stripe = Stripe($("meta[name='stripe-key']").attr("content"))
var elements = stripe.elements();
var card = elements.create('card', {
style: {
base: {
iconColor: '#999',
color: '#505652',
lineHeight: '40px',
fontWeight: 300,
fontFamily: 'Helvetica Neue',
'::placeholder': {
color: '#CFD7E0',
},
},
}
});
// Add an instance of the card UI component into the `card-element` <div>
card.mount('#card-element');
<form action="/charge" method="post" id="payment-form">
<div class="form-row">
<label for="card-element">
Credit or debit card
</label>
<div id="card-element">
</div>
<div id="card-errors"></div>
</div>
<button>Submit Payment</button>
</form>
Chaque fois que je charge la page, cette erreur se produit dans la console Uncaught ReferenceError: Stripe is not defined - STRIPE ERROR
. Je pense que cela a quelque chose à voir avec la façon dont je charge stripe.js mais je ne suis pas sûr?
Je pense que ce qui se passe, c’est que Stripe.js se charge APRÈS votre propre javascript. Essayez de déplacer Stripe.js au-dessus de votre propre javascript dans l'en-tête.
Peut-être en retard, mais si quelqu'un d'autre a le même problème, il suffit d'ajouter ce qui suit dans votre
<HEAD></HEAD>
<script src="https://js.stripe.com/v2/"></script>
Sachant qu'ils recommandent de migrer vers la v3 dès que possible.