Partage
  • Partager sur Facebook
  • Partager sur Twitter

probleme de connexion avec le serveur paypal

paypal API REST SDK

    16 septembre 2019 à 15:08:11

    Bonjour,

    Voila je rencontre un petit problème avec mon code. J'ai suivis le tutoriel PHP pour paypal express checkout( https://youtu.be/n-Vbjd2eI_4 ), J'ai tout bien réussi et le paiement via sandbox marche :D mais en mode live ca ne marche pas. Voici mon code et quelques images esperant que cela puissent mieux vous renseigner:

    mon code: 

    subscribe.php

    <?php
    require 'inc/secret_header.php';
    require 'inc/function.php';
    require_once 'inc/db.php';
    require 'inc/Offer.php';

    logged_only();

    if (isset($_POST['offer'])){

    $_SESSION['offer_key'] = $_POST['offer'];
    header('location: payment.php');
    }

    ?>

    <h3>S'abonner</h3>

    <form action="" method="post" class="user">

    <ul>

    <?php foreach (Offer::getoffers() as $k => $offer): ?>
    <li><input type="radio" name="offer" value="<?= $k; ?>"><?= $offer['name']; ?>= <?= $offer['price_text']; ?></li>
    <?php endforeach; ?>

    </ul>

    <button class="btn btn-success" type="submit">S'Abonner</button>

    payment.php

    <?php

    require_once 'inc/db.php';
    require 'inc/function.php';
    require 'inc/Offer.php';
    require 'vendor/autoload.php';
    logged_only();

    $ids = require 'paypal.php';

    //on cree un ApiContext ki contient nos identifiants
    $apiContext = new \PayPal\Rest\ApiContext(

    new \PayPal\Auth\OAuthTokenCredential(

    $ids['id'],
    $ids['secret']
    )
    );

    //on recupere le pannier selectionne par l'utilisateur
    $key_offer = $_SESSION['offer_key'];
    $offer = Offer::getoffers()[$key_offer];


    //on cree une liste d'item

    $list = new \PayPal\Api\ItemList();

    if (isset($offer)) {

    $item = (new \PayPal\Api\Item())
    ->setName($offer['name'])
    ->setPrice($offer['price'])
    ->setCurrency('EUR')
    ->setQuantity(1);
    $list->addItem($item);

    //on cree une partie amount ki contient le paiement et les details sur le paiement

    $details = (new \PayPal\Api\Details())
    ->setSubtotal($offer['price'])
    ->setTax($offer['tax']);

    $amount = (new \PayPal\Api\Amount())
    ->setTotal($offer['total_price'])
    ->setCurrency('EUR')
    ->setDetails($details);

    //A la fin on envoie la transaction au paiement

    $transaction = (new \PayPal\Api\Transaction())
    ->setItemList($list)
    ->setDescription($offer['description'])
    ->setAmount($amount)
    ->setCustom('id_utilisateur');

    $payment = new \PayPal\Api\Payment();
    $payment->setTransactions([$transaction]);
    $payment->setIntent('sale');
    $redirectUrls = (new \PayPal\Api\RedirectUrls())
    //A modifier
    ->setReturnUrl('https://localhost/pay.php')
    ->setCancelUrl('https://localhost/subscribe.php');
    //End modif
    $payment->setRedirectUrls($redirectUrls);
    $payment->setPayer((new \PayPal\Api\Payer())->setPaymentMethod('paypal'));

    try {
    $payment->create($apiContext);

    //on sauvegarde le tout dans une variable globale
    $_SESSION['payment'] = $payment;
    header('location: ' . $payment->getApprovalLink());
    } catch (\Paypal\Exception\PayPalConnectionException $e) {
    json_decode($e->getData());
    }
    }

    pay.php

    <?php

    require_once 'inc/db.php';
    require 'inc/function.php';
    require 'inc/Offer.php';
    require 'vendor/autoload.php';

    logged_only();

    $ids = require 'paypal.php';

    //on cree un ApiContext ki contient nos identifiants
    $apiContext = new \PayPal\Rest\ApiContext(

    new \PayPal\Auth\OAuthTokenCredential(

    $ids['id'],
    $ids['secret']
    )
    );

    //on recupere la liste des offres choisie par l'utilisateur
    $key_offer = $_SESSION['offer_key'];
    $offer = Offer::getoffers()[$key_offer];

    //var_dump($offer);

    //on recupere le paiement
    $pay = $payemet = \PayPal\Api\Payment::get($_GET['paymentId'], $apiContext);

    //on recupere les infos sur l'acheteur
    $payer_infos = $payemet->getPayer()->getPayerInfo();

    //on recupere les dates de debut et de fin d'inscription au forfait de l'acheteur et quelques donnees sur la transaction
    $period_start = (new DateTime($_SESSION['payment']->create_time))->getTimestamp();
    $_SESSION['subscription_start'] = $subscription_start = gmdate("Y-m-d H:i:s", $period_start);

    $period = $offer['period'] === 'Month' ? new DateInterval($offer['interval']) : new DateInterval('P1Y');
    $period_end = (new DateTime())->add($period)->getTimestamp();
    $_SESSION['subscription_end'] = $subscription_end = gmdate("Y-m-d H:i:s", $period_end);

    $payer_id = $payer_infos->payer_id;
    $payer_email = $payer_infos->email;
    $payer_first_name = $payer_infos->first_name;
    $payer_last_name = $payer_infos->last_name;
    $payer_country_code = $payer_infos->country_code;
    $price_text = $offer['price_text'];

    $username = $_SESSION['auth']->username;

    $pdo->prepare("UPDATE users SET subscription_start = ?, subscription_end = ?, payer_id = ?, payer_email = ?, payer_first_name = ?, payer_last_name = ?, payer_country_code = ?, price_text = ? where username = ?")->execute([$_SESSION['subscription_start'], $_SESSION['subscription_end'], $payer_id, $payer_email, $payer_first_name, $payer_last_name, $payer_country_code, $price_text, $username]);

    $execution = (new \PayPal\Api\PaymentExecution())
    ->setPayerId($_GET['PayerID'])
    ->setTransactions($payemet->getTransactions());

    try {
    $pay->execute($execution, $apiContext);
    $_SESSION['flash']['success']="Votre paiement s'est deroulé avec succès et prendra effet lors de votre prochaine reconnection 😊";
    header('location: logoutpaypal.php');
    } catch (\Paypal\Exception\PayPalConnectionException $e) {
    header('HTTP 500 Internal Server Error', true, 500);
    var_dump(json_decode($e->getData()));
    }

    et biensur en live jai deja change mon clientID et mon Secret.

    Merci de votre aide !!!!!

    • Partager sur Facebook
    • Partager sur Twitter
      16 septembre 2019 à 15:32:41

      Bonjour,

      As tu donné les informations que Paypal te demandais ? Car vu la capture d'écran, il y a une activité suspecte sur ton compte et Paypal a restreint les fonctionnalités.

      • Partager sur Facebook
      • Partager sur Twitter
        16 septembre 2019 à 18:46:59

        oui et si j'essaye de suivre votre logique vous me direz que je n'ai plus qu'a attendre que paypal finisse de traiter mon dossier. Mais moi j'aimerais etre sur que le probleme ne vienne pas d'une erreur de code ou d'une fonctionnalite que je devrais peut etre examinee ou activee en mode live
        • Partager sur Facebook
        • Partager sur Twitter
          16 septembre 2019 à 20:33:52

          bonjour,

          tu as bien un compte paypal business?

          Edit: j'avais pas tout vu...

          logique que ça ne fonctionne pas...

          Paypal te dit clairement que ton compte est restreint donc logique que ça ne peut pas fonctionner en mode live...

          le message est pourtant clair, il te suffit d'attendre que paypal te débloque la situation...

          -
          Edité par AaFredericHusson 16 septembre 2019 à 20:37:26

          • Partager sur Facebook
          • Partager sur Twitter

          Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

            16 septembre 2019 à 20:47:20

            ok merci pour cette reponse jai vraiment pas d'autre choix que d'attendre
            • Partager sur Facebook
            • Partager sur Twitter
              16 septembre 2019 à 20:49:34

              non du tout, c'est pas ton code le problème mais bien ton compte paypal

              d'ailleurs la preuve est là vu que ton code fonctionne en mode sandbox il n'y à aucune raison qu'il ne fonctionne pas en mode prod

              -
              Edité par AaFredericHusson 16 septembre 2019 à 20:51:23

              • Partager sur Facebook
              • Partager sur Twitter

              Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                16 septembre 2019 à 21:32:15

                merci vraiment a tous pour ces reponses vraiment merci encore j'espere sincerement de tout coeur que vous avez raison qu'une fois que mon compte ne sera plus restreint tout ira bien
                • Partager sur Facebook
                • Partager sur Twitter
                  16 septembre 2019 à 21:34:57

                  au pire des cas reviens nous voir mais je vois aucune raison pour que ça ne fonctionne pas
                  • Partager sur Facebook
                  • Partager sur Twitter

                  Pas d'aide concernant le code par MP ni par mail, le forum est là pour ça

                    24 septembre 2019 à 11:04:02

                    bjr a tous. IL est vrai que ce que je dirai ne cadre peut pas avec l'optique de ce forum mais est-ce que quelqu'un saurait par hasard (réellement parlant), après combien de temps paypal lève la restriction d'un compte parce que la je suis fatigue de les écrire merci
                    • Partager sur Facebook
                    • Partager sur Twitter
                      29 septembre 2019 à 10:19:21

                      bonjour a tous, paypal a finalement levé la restriction de mon compte mais toujours rien...
                      • Partager sur Facebook
                      • Partager sur Twitter

                      probleme de connexion avec le serveur paypal

                      × Après avoir cliqué sur "Répondre" vous serez invité à vous connecter pour que votre message soit publié.
                      • Editeur
                      • Markdown