Comment intégrer mon code paypal avec un input

Résolu
bonjour a tous

voila a présent que mon bon de commande semble fonctionner je souhaiterais lui ajouter payal

j'ai retrouvé ce code de paypal

dans mon formulaire j ai un id qui indique le prix total de la commande

<input id="amount" name="amount" type="hidden" value="">


j'ai essaye de mettre l'id dans
value:  document.querySelector('#amount').value


mais lorsque je clic sur un bouton de paypal une fenêtre s'ouvre et se referme aussi vite sans que je puisse avoir le temps de continuer avec un message
le navigateur sécurisé de paypal n'apparait pas ?
nous allons vous aider a rouvrir la fenêtre pour finaliser votre achat
continuer

  <script src="https://www.paypal.com/sdk/js?client-id=AV01RcWDmANxJPEXIbqLZg8L¤cy=EUR"> // Replace YOUR_CLIENT_ID with your sandbox client ID
</script>
<div id="paypal-button-container"></div>
<!-- Add the checkout buttons, set up the order and approve the order -->
<script>
paypal.Buttons({
createOrder: function(data, actions) {
return actions.order.create({
purchase_units: [{
amount: {
value: document.querySelector('#amount').value
}
}]
});
},
onApprove: function(data, actions) {
return actions.order.capture().then(function(details) {
alert('Transaction completed by ' + details.payer.name.given_name);
});
}
}).render('#paypal-button-container'); // Display payment options on your web page
</script>

9 réponses

  1. j'ai également cet id qui donne le total du panier mais cela me donne la même chose
    la fenêtre de paypal qui s ouvre et se ferme aussi vite

    <div>*Prix total: <b><span class="total-panier" id="prix_total" >9.00</span> euros</b></div>
    1. Modérateur
      As tu vérifié ( en inspectant le code dans ton navigateur ) , que ton champ caché amount était bien renseigné ?
      Tu peux nous en mettre une capture écran ?

      1. Modérateur
        Niveau code..
        ça sera
           value:  document.querySelector('#amount').value
        

        ou
           value:  document.getElementById('amount').value
        

        mais encore faut-t-il que ton champ soit bien renseigné...

        ( au pire.. si tu ne sais pas comment aller l'examiner dans ton navigateur, change son type de hidden passe le en text pour le voir.. )
      2. @jordane45tu es un magicien jordane
        je l avais ce code
        value:  document.querySelector('#amount').value

        mais il refusait de passer et avec toi ca passe

        je m arrache les cheveux sur ce coup...

        Merci pour ton aide
        tu me sauves encore une fois
    2. que cela ouvre et referme la fenetre de paypal

      voici la reponse de la console

      1. ce qui me pose donc soucis depuis tantôt
        c est cette partie

         amount: {
                       value:  document.querySelector('amount').value
                      }


        car lorsque je place ceci tout bien bien

         amount: {
                        value: '77.44' // Can reference variables or functions. Example: `value: document.getElementById('...').value`
                      }
        1. Modérateur
          Ça te pose souci... C'est à dire ?
        2. Contributeur
          amount
          ou
          #amount
          ?
        3. @yg_bebonjour yg_be
          j'ai essaye les deux
        4. @yg_bevoila c'est réglé
          je devais indiquer ceci
          value:  document.querySelector('#amount').value


          le pire je l'avais essaye ce code en plus
      2. j 'ai juste un soucis avec le montant qui est mauvais dans la console de paypal et que je ne comprends pas
        peut être ma variable ?

        pour ceux que cela intéresse voici le code et l adresse
        https://developer.paypal.com/docs/checkout/standard/integrate/

         <script src="https://www.paypal.com/sdk/js?client-id=test&currency=USD"></script>
        
            <!-- Set up a container element for the button -->
            <div id="paypal-button-container"></div>
        
            <script>
              paypal.Buttons({
        
                // Sets up the transaction when a payment button is clicked
                createOrder: function(data, actions) {
                  return actions.order.create({
                    purchase_units: [{
                      amount: {
                        value: '77.44' // Can reference variables or functions. Example: `value: document.getElementById('...').value`
                      }
                    }]
                  });
                },
        
                // Finalize the transaction after payer approval
                onApprove: function(data, actions) {
                  return actions.order.capture().then(function(orderData) {
                    // Successful capture! For dev/demo purposes:
                        console.log('Capture result', orderData, JSON.stringify(orderData, null, 2));
                        var transaction = orderData.purchase_units[0].payments.captures[0];
                        alert('Transaction '+ transaction.status + ': ' + transaction.id + '\n\nSee console for all available details');
        
                    // When ready to go live, remove the alert and show a success message within this page. For example:
                    // var element = document.getElementById('paypal-button-container');
                    // element.innerHTML = '';
                    // element.innerHTML = '<h3>Thank you for your payment!</h3>';
                    // Or go to another URL:  actions.redirect('thank_you.html');
                  });
                }
              }).render('#paypal-button-container');
        
            </script>
        1. c 'est bon jordane une erreur de codage de ma part

          je teste et je reviens dire quoi
          1. bonjour jordane

            Merci pour l aide

            ah ben oui bien sur

            alors pour la console
            je ne me doutais pas que cela allait servir
            il y a mes clés que j'ai caché volontairement

            voici ce qu il en ressors au niveau de la requête

            events […]
            0 {…}
            event "button_click"
            level "info"
            payload {…}
            buttonCorrelationID "f699869"
            buttonSessionID "uid_094082462e
            clientID "AV01RcWDmANxJPEXIbqLZg8LHG"
            env "production"
            referer "www.paypal.com"
            sdkCorrelationID "ae9deb89"
            sessionID "uid_bb7ab02090_"
            time "1641565110279"
            timestamp "1641565110279"
            token null
            user_id "uid_094082462e_"
            1 {…}
            event "button_click_pay_flow_checkout"
            level "info"

            et une petite capture d écran
            1. Modérateur
              C'est l'onglet reponse qu'il nous faut. Pas l'onglet requête
          2. Modérateur
            Bonjour

            Devine ce que je vais te demander....... Hé oui... La console...