Paypal bloqué sur vérification

Trouvez ici tout l'aide dont vous avez besoin concernant le script d'annuaire Arfooo.
Merci de reporter les éventuels bugs trouvés.

Re: Paypal bloqué sur vérification

Messagede RVS001 » Jeu 4 Aoû 2011 14:36

Oubli

J'ai testé avec le fichier modifié que j'avais donné auparavant dans le sujet.

d'autres scripts qui utilisent PayPal , c'est mieux.

@+
RVS001
 
Messages: 17
Inscription: Jeu 12 Mai 2011 14:09


Re: Paypal bloqué sur vérification

Messagede cleweb » Ven 12 Aoû 2011 23:09

Merci je teste ca rapidement
cleweb
 
Messages: 31
Inscription: Dim 20 Avr 2008 10:47

Re: Paypal bloqué sur vérification

Messagede Arf » Sam 10 Déc 2011 13:30

Bonjour,

Ce bug est normalement corrigé dans la version 2.0.2
Quelqu'un a t il encore des problèmes ?
Arf
Administrateur du site
 
Messages: 3082
Inscription: Lun 21 Jan 2008 14:53

Re: Paypal bloqué sur vérification

Messagede SCOTT » Lun 9 Jan 2012 17:30

Bonsoir,
j'ai toujours ce problème: arfoo v 2.2
SCOTT
 
Messages: 13
Inscription: Mer 6 Aoû 2008 18:42
Localisation: lille

Re: Paypal bloqué sur vérification

Messagede aiel62 » Ven 30 Mar 2012 19:28

de même moi je recontacte les webmasters ayant payés
aiel62
 
Messages: 94
Inscription: Sam 24 Déc 2011 18:03

Re: Paypal bloqué sur vérification

Messagede onico0 » Sam 25 Aoû 2012 17:40

Voici le contenu du /components/PayPalPaymentProcessor.php au cas où le fichier proposé plus haut ne serait plus hébergé.

Code: Tout sélectionner
<?php
/**
* Arfooo
*
* @package    Arfooo
* @copyright  Copyright (c) Arfooo Annuaire (fr) and Arfooo Directory (en)
*             by Guillaume Hocine (c) 2007 - 2010
*             http://www.arfooo.com/ (fr) and http://www.arfooo.net/ (en)
* @author     Guillaume Hocine & Adrian Galewski
* @license    http://creativecommons.org/licenses/by/2.0/fr/ Creative Commons
*/


class PayPalPaymentProcessor extends PaymentProcessor
{
    private $processorId = "PayPal";
    private $normalFormActionUrl = "https://www.paypal.com/cgi-bin/webscr";
    private $testModeFormActionUrl = "https://www.sandbox.paypal.com/cgi-bin/webscr";
    private $currentPayment;
    private $debug = false;

    public function __construct()
    {
        parent::__construct($this->processorId);
    }

    public function getActionUrl()
    {
        return ($this->settings->testMode) ? $this->testModeFormActionUrl : $this->normalFormActionUrl;
    }

    public function getPaymentOptions()
    {
        $paymentOptions = $this->settings->toArray();
        $paymentOptions = array_merge($paymentOptions,
                                      array("formActionUrl" => $this->getActionUrl()));

        foreach ($this->product as $key => $value) {
            $paymentOptions[$key] = $value;
        }

        return $paymentOptions;
    }

    public function processPayment()
    {
        $payment = $this->createNewPayment();
        $payment->save();

        $this->product->itemNumber = $payment->paymentId;

        return true;
    }

    public function setProduct($package)
    {
        $this->product = new PayPalProduct($package);
        return $this->product->valid;
    }

    public function setNotifyUrl($url)
    {
        $this->settings->notifyUrl = $url;
    }

    public function setCancelReturnUrl($url)
    {
        $this->settings->cancelReturnUrl = $url;
    }

    public function setReturnUrl($url)
    {
        $this->settings->returnUrl = $url;
    }

    private function payLog($msg, $type = "normal")
    {
        if ($this->debug) {
            if ($type == "error") {
                $msg = "ERROR: " . $msg;
            }
            $fp = fopen(CODE_ROOT_DIR . "ipn.html", "a");
            fwrite($fp, $msg);
            fclose($fp);
        }

        return ($type != "error");
    }

    private function onComplete()
    {
        if (in_array($this->currentPayment->status, array("unpaid", "pending"))) {
            $this->currentPayment->updateStatus("paid");
            $this->payLog("Payment was completed successfully");
        }
    }

    private function onPending()
    {
        if ($this->currentPayment->status == "unpaid") {
            $this->currentPayment->updateStatus("pending");
            $this->payLog("Payment status was changed to pending");
        }
    }

    private function onDenied()
    {
        $this->currentPayment->updateStatus("denied");
    }

    private function validatePayment($ipnData)
    {
        if (empty($this->currentPayment)) {
            return "Payment don't exists";
        }
        if ($ipnData['receiver_email'] != $this->settings->email) {
            return "Bad receiver mail";
        }
        if ($ipnData['mc_gross'] != $this->currentPayment->amount) {
            return "Bad amount";
        }
        if ($ipnData['mc_currency'] != $this->currentPayment->currency) {
            return "Bad currency";
        }

        return "";
    }

    public function handleIpn()
    {
        //$ipnData = $this->request; //wertronic - Ne reçoit pas le POST de PayPal
      $ipnData = $_POST; // OK
      
        $postData = 'cmd=_notify-validate';

        foreach ($ipnData as $key => $value) {
            $postData .= "&" . urlencode($key) . "=" . urlencode($value);
        }

        $httpClient = new HttpClient();
        //$url = $this->getActionUrl(); // wertronic ne sert plus
        //$buff = $httpClient->getSiteContent($url, false, true, false, "POST", $postData); // wertronic ne sert plus

      // ------------ wertronic modified ----------------
      $server = ($this->settings->testMode) ? 'www.sandbox.paypal.com' : 'www.paypal.com';
      if ( (PHP_VERSION >= 4.3) && ($fp = @fsockopen('ssl://' . $server, 443, $errno, $errstr, 30)) ) {
         $fsocket = true;
      } elseif ($fp = @fsockopen($server, 80, $errno, $errstr, 30)) {
         $fsocket = true;
      }

      if ($fsocket == true) {      
         $header = 'POST /cgi-bin/webscr HTTP/1.0' . "\r\n" .
            'Host: ' . $server . "\r\n" .
               'Content-Type: application/x-www-form-urlencoded' . "\r\n" .
               'Content-Length: ' . strlen($postData) . "\r\n" .
               'Connection: close' . "\r\n\r\n";
            
         @fputs($fp, $header . $postData);
            
         $string = '';
         while (!@feof($fp)) {
            $res = @fgets($fp, 1024);
            $string .= $res;
            
            if ( ($res == 'VERIFIED') || ($res == 'INVALID') ) {
               $buff = $res;
               break;
            }
         }
         @fclose($fp);
      } else {
         return $this->payLog("Request isn't VERIFIED", "error");
      }
      //----------------------------------------------

        if (strcmp($buff, "VERIFIED") != 0) {
            return $this->payLog("Request isn't VERIFIED", "error");
        }

        if ($this->debug) {
            $this->payLog(var_export($ipnData, true) . "\r\n");
        }
        if ($this->debug) {
            $this->payLog($postData . "\r\n");
        }

        foreach (array("item_number", "receiver_email", "mc_gross", "mc_currency",
                       "txn_type", "payment_status") as $key) {
            if (empty($ipnData[$key])) {
                return $this->payLog("Field $key is not set", "error");
            }
        }

        $this->currentPayment = $this->payment->findByPk($ipnData['item_number']);

        $errorMessage = $this->validatePayment($ipnData);
        if ($errorMessage) {
            return $this->payLog($errorMessage, "error");
        }

        switch ($ipnData['txn_type']) {
            case "web_accept":

                switch ($ipnData['payment_status']) {
                    case "Completed":
                        $this->onComplete();
                        break;

                    case "Pending":
                        $this->onPending();
                        break;

                    case "Denied":
                        $this->onDenied();
                        break;
                }

                break;

            default:
                return $this->payLog("Unhandled txn_type", "error");
        }

        return $this->payLog("Finished");
    }
}

class PayPalProduct extends PackageProduct
{
    public $itemName;
    public $itemNumber;

    public function __construct($package)
    {
        parent::__construct($package);
        $this->itemName = $package->name;
        $this->valid = true;
    }
}
Webmaster expert WordPress, je propose aussi de l'hébergement Web sur Easy Hoster.
onico0
 
Messages: 387
Inscription: Lun 21 Sep 2009 13:49
Localisation: Agence Web Belgique

Re: Paypal bloqué sur vérification

Messagede Vitaly » Dim 23 Sep 2012 22:46

Bonjour,

Même problème pour moi avec la version 2.0.2
Vitaly
 
Messages: 42
Inscription: Mer 3 Nov 2010 14:21

Re: Paypal bloqué sur vérification

Messagede SCOTT » Dim 10 Mar 2013 20:17

Il se peut que le problème viens de chmode chez OHV est 705 pour le www et dossier 755 pas autrement.
SCOTT
 
Messages: 13
Inscription: Mer 6 Aoû 2008 18:42
Localisation: lille

Re: Paypal bloqué sur vérification

Messagede Diaz06 » Mar 22 Aoû 2017 11:35

Bonjour,

J'ai également ce soucis, le CHMOD doit être comment pour le fichier PayPalPaymentProcessor ?
J'ai voulu soumettre https://www.eduargent.com/ mais impossible.
Merci !
Dernière édition par Diaz06 le Mer 24 Juil 2019 09:31, édité 3 fois.
Diaz06
 
Messages: 12
Inscription: Mer 15 Sep 2010 12:40

Re: Paypal bloqué sur vérification

Messagede kobra » Lun 16 Avr 2018 08:54

Est il possible de payer en bitcoin via Paypal sur cet annuaire?
Un bon developpeur de site dans le 49 , pour ça faut t beaucoup jouer avec les sneakers ici!
Avatar de l’utilisateur
kobra
 
Messages: 6
Inscription: Dim 30 Mai 2010 07:08
Localisation: 49000

Précédente

Retourner vers Installation, aide et report de bugs

 


  • Articles en relation
    Réponses
    Vus
    Dernier message

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

 
Copyright © arfooo.com  2007 - 2011  -  Tous droits réservés  -  Partenaires de confiance
Sites du groupe: petites annonces gratuites   voyance en direct - tirage tarot   Consultant en référencement
Powered by phpBB © 2000, 2002, 2005, 2007 phpBB Group | phpBB SEO Traduction par: phpBB-fr.com
cron