Quantcast
Channel: Grafikart | Derniers Sujets du forum
Viewing all articles
Browse latest Browse all 1542

Relation avec formulaire

$
0
0

Bonjour,

Voilà je suis en train de développer la partie paiement d'un site qui permet la réservation de navette et qui sera en Symfony 4. Le moyen de paiement que nous avons décidé de choisir pour notre site est Stripe. De plus la personne qui fera la réservation devra entrer le numéro de sa carte,la date d'expiration de la carte, le cvc (cryptogramme de sécurité au dos de notre carte de crédit) et le nom et prénom du propriétaire de la carte. L'entrée de ces informations se fera dans un formulaire.

J'ai réussi à créer le jeton et l'envoie de ce jeton vers le serveur de Stripe et contenant les informations de la carte de crédit. Grâce à ces lignes et qui est présent dans mon controller :

paiementController.php

    /**
     * @Route("/paiement/ajout", name="paiement_ajout")
     */
    public function ajout(Paiement $resa =null,Request $request)
    {
        \Stripe\Stripe::setApiKey('sk_test_**************');

        if (!$resa) {
            $resa = new Paiement();
        }
        $form = $this->createForm(PaiementType::class, $resa);

        $form->handleRequest($request);


        $token =\Stripe\Token::create([
            'card' => [
              'number' => '4000002500000003',
              'exp_month' => 12,
              'exp_year' => 2040,
              'cvc' =>***,
              'name'=> 'Harry Covert',
              'address_country'=>'FR',
              'address_city'=>'Strasbourg'

            ]
          ]);

         \Stripe\Charge::create([
            'amount' => 9000, //le montant est en centime
            'currency' => 'eur', 
            'description' => 'test paye', 
            'source' => $token,
            //'customer'=> $customer
            ]);

        return $this->render('paiement/ajout1.html.twig',[
            'formPaiement' => $form->createView()
        ]);
    }

Maintenant ayant réussi à créer mon jeton et à l'envoyer je voudrais savoir s'il était possible de récupérer les informations que l'utilisateur rentre dans le formulaire qui est dans un fichier en html.twig vers mon controller pour que mes paramètres de création de jeton puisse utiliser ces informations.

ajout1.html.twig

{% extends "base.html.twig" %}

{% block body %}
    <h1 class="center white-text">
        Paiement</h1>

    <div class="row">
        <div class="col s12 m4 l4 offset-m4 offset-l4">
            <form id="payment-form" method="post">

                <div class="form-row" id="card-element">
                    <label>
                        <span>Numéro carte</span>
                        <input data-stripe="number" size="16" type="text">
                    </label>


                    <label>
                        <span>Expire en (MM/YY)</span>
                        <input data-stripe="exp_month" size="2" type="text">
                    </label>
                    <span>
                        /
                    </span>
                    <input data-stripe="exp_year" size="4" type="text">

                    <label>
                        <span>CVC</span>
                        <input data-stripe="cvc" size="3" type="text">
                    </label>
                </div>
                <button>Payer</button>
            </form>
        </div>
    </div>
{% endblock %}
{% block javascripts %}
    <script src="https://js.stripe.com/v3/" type="text/javascript"></script>

    <script>
        var stripe = Stripe('pk_test_***************');

        var elements = stripe.elements();
        var style = {
            base: {
                fontSize: '16px',
                lineHeight: '24px'
            }
        };
        var car = elements.create('card', {style: style});
        card.mount('#card-element');

        card.addEventListener('change', function (e) {
            if (e.error) {
                displayError.textContent = event.error.message;
            } else {
                displayError.textContent = '';
            }
        });


    </script>
{% endblock %}


Pour le moment avec ce que j'ai pu trouver sur divers forums je pourrais utiliser cette ligne de code dans mon controller pour récupérer ces données:

paiementController.php

$mois = $request->request->get('exp_month')

        $token =\Stripe\Token::create([
            'card' => [
              'number' => '4000002500000003',
              'exp_month' => $mois,
              'exp_year' => 2040,
              'cvc' =>***,
              'name'=> 'Harry Covert',
              'address_country'=>'FR',
              'address_city'=>'Strasbourg'

            ]
          ]);

Sauf que quand je l'utilise symfony me mets comme erreur :
Missing required param: card[exp_month].

Je vous remercie d'avance , pour votre future aide.


Viewing all articles
Browse latest Browse all 1542

Trending Articles