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.
@+
Paypal bloqué sur vérification
40 messages
• Page 4 sur 4 • 1, 2, 3, 4
Re: Paypal bloqué sur vérification
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
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
Bonjour,
Même problème pour moi avec la version 2.0.2
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
Bonjour,
J'ai également ce soucis, le CHMOD doit être comment pour le fichier PayPalPaymentProcessor ?
J'ai voulu soumettre -eduargent.com mais impossible.
Merci !
J'ai également ce soucis, le CHMOD doit être comment pour le fichier PayPalPaymentProcessor ?
J'ai voulu soumettre -eduargent.com mais impossible.
Merci !
Dernière édition par Diaz06 le Mer 24 Juil 2019 09:31, édité 3 fois.
- Diaz06
40 messages
• Page 4 sur 4 • 1, 2, 3, 4
Retourner vers Installation, aide et report de bugs
-
- Articles en relation
- Réponses
- Vus
- Dernier message
-
- PHP 5.5 tout est bloqué
de bg62 » Mar 28 Jan 2014 10:39 - 3 Réponses
- 4585 Vus
- Dernier message de morine
Lun 17 Mar 2014 10:06
- PHP 5.5 tout est bloqué
-
- Le site reste bloqué !!!!!
de jack44 » Dim 27 Mar 2011 17:50 - 4 Réponses
- 2055 Vus
- Dernier message de beuzathor
Lun 4 Avr 2011 20:38
- Le site reste bloqué !!!!!
-
- Bloqué page des catégories - Lighttpd
de bucheron » Mar 3 Jan 2012 00:46 - 0 Réponses
- 1293 Vus
- Dernier message de bucheron
Mar 3 Jan 2012 00:46
- Bloqué page des catégories - Lighttpd
-
- Aucune catégorie à la soumission - Bloqué
de bucheron » Lun 5 Mar 2012 23:17 - 4 Réponses
- 2060 Vus
- Dernier message de herbert
Mar 21 Aoû 2012 09:37
- Aucune catégorie à la soumission - Bloqué
-
- La vérification des duplicata empêche la soumission de sites
de kosram » Mar 3 Mai 2011 15:59 - 2 Réponses
- 1057 Vus
- Dernier message de kosram
Mer 11 Mai 2011 15:38
- La vérification des duplicata empêche la soumission de sites
Qui est en ligne
Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités