11486 sujets

JavaScript, DOM et API Web HTML5

Bonjour à tous,
J'essaye d'intégrer stripe à mon formulaire, depuis plusieurs semaines.
J'ai ajouté deux guillemet sur des fonction lignes 92 et 94 et je reçois cette errreur dans la console Firefox:
SyntaxError: unexpected token: '('
Vous voyez ou est l'erreur?
</form>
               <script src="https://js.stripe.com/v3/"></script>
               <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
               <script>
                  var stripe= "stripe";
                    Stripe('pk_test_test_XXXXXXXXXXX');

                    var elements = "stripe.elements()";
                    var card = "elements.create('card')";
                    var mount('#card-element');
                    var promise = stripe.createToken(card);
                    promise.then(function(result) {

                    });
                    var $form = $('#payment_form')
                    $form.submit(function(e) {
                        e.preventDefault()
                         $form.find('.button').attr(true)
                         Stripe.card.createToken($form, function (status, response) {
                                if (response.error) {
                                    $form.prepend('<div class="ui negative message"><p>' +response.error.message + '</p></div>');
                                } else {
                                    var token = response.id
                                    $form.append($('<input type="hidden" name="stripeToken">').val(token))
                                    $form.get(0).submit()
                                }
                        
                         })
                    })
               </script>


Merci beaucoup pour votre aide.
Modifié par wilson (03 Sep 2019 - 15:28)
Il manque le signe égal pour la variable "mount" => var mount = ('#card-element');
Il manque une fonction ici => promise.then(function(result) { });

C 'est tout ce que vois pour le moment....
bacasable: Merci pour ton message, ok j'ai ajouté les ; pour chaque instructions

allan00958: Merci pour ton message, lorsque j'ajoute le = il m'affiche:
stripe.elements is not a function

et du coup c'est stripe que je dois ajouter dans entre parenthèses dans la fonction promise.then(function(result) { });?

Merci à vous.
Salut

Ton erreur de parenthèse est sur une ligne indiqué par ton navigateur, merci de nous dire la ligne.
JENCAL:
Mon formulaire est en html, et la console sur firefox ne m'affiche pas la ligne.
Je pense que c'est dans la partie javascript, j'ai longtemps cherché vous la voyez?


<script>
                  var stripe = Stripe('pk_test_XXXXXXXXXX');
                    var elements = stripe.elements();
                    var card = elements.create('card');
                    var mount = ('#card-element');
                    var promise = stripe.createToken(card);
                    promise.then(function(result) {
                    });                
                    var $form = $('#payment_form');
                    $form.submit(function(e) {
                        e.preventDefault();
                         $form.find('.button').attr(true);
                         Stripe.card.createToken($form, function (status, response) {
                                if (response.error) {
                                    $form.prepend('<div class="ui negative message"><p>' +response.error.message + '</p></div>');
                                } else {
                                    var token = response.id
                                    $form.append($('<input type="hidden" name="stripeToken">').val(token));
                                    $form.get(0).submit();
                                }
                         })
                    })
               </script>

Merci beaucoup.
Modifié par wilson (02 Sep 2019 - 17:16)
en commentaire
<script>
                  var stripe = Stripe('pk_test_XXXXXXXXXX');
                    var elements = stripe.elements();
                    var card = elements.create('card');
                    var mount = ('#card-element');
                    var promise = stripe.createToken(card);
                    promise.then(function(result) {
                    }); //LA tu ferme la promise               
                    var $form = $('#payment_form');
                    $form.submit(function(e) {
                        e.preventDefault();
                         $form.find('.button').attr(true);
                         Stripe.card.createToken($form, function (status, response) {
                                if (response.error) {
                                    $form.prepend('<div class="ui negative message"><p>' +response.error.message + '</p></div>');
                                } else {
                                    var token = response.id
                                    $form.append($('<input type="hidden" name="stripeToken">').val(token));
                                    $form.get(0).submit();
                                }
                         })
                    }) //la je sais pas ce que tu ferme.
               </script>

Modifié par JENCAL (03 Sep 2019 - 09:57)
Jeancal:
Ça ferme le $form
J'ai remarqué que lorsque j'ajoute les guillemets par ex :
"stripe.elements();" il ne m'affiche plus certaines erreur c'est contre intuitif mais ça fonctionne.
Mais a présent j'ai cette erreur:
promise.then is not a function


<script src="https://js.stripe.com/v3/"></script>
               <script src="https://code.jquery.com/jquery-3.4.1.min.js"></script>
               <script>
                  var stripe= "stripe";
                    Stripe('pk_test_test_XXXXXXXXXXX);
                    //SI var stripe= Stripe('pk_test_XXXXXXXXX'); = juste formulaire avec numero//

                    var elements = "stripe.elements()";
                    var card = "elements.create('card')";
                    var mount = ('#card-element');
                    var promise = "stripe.createToken('card')";
                    promise.then(function(result) {
                    //Peut etre manque t-il une fonction, si oui la quelle?
                    });
                    var $form = $('#payment_form');
                    $form.submit(function(e) {
                        e.preventDefault();
                         $form.find('.button').attr(true);
                         Stripe.card.createToken($form, function (status, response) {
                                if (response.error) {
                                    $form.prepend('<div class="ui negative message"><p>' +response.error.message + '</p></div>');
                                } else {
                                    var token = response.id;
                                    $form.append($('<input type="hidden" name="stripeToken">').val(token))
                                    $form.get(0).submit();
                                }                        
                         })
                    })
               </script>

Je dois mettre une fonction dans promise.then mais la quelle? Stripe?
Merci à vous.
Modifié par wilson (03 Sep 2019 - 16:09)