2017-09-02 4 views
0

Lorsqu'un code IPN est vérifié comme étant terminé, mon code place le txn_id dans une base de données mais il n'est pas défini Toutes les autres variables PayPal que j'utilise sont définies, mais celle-ci est . pas avoir besoin d'un moyen d'identité unique de la transaction et c'est pourquoi j'utilise cette variable, voici mon code que j'utilise pour saisir l'id:La variable de publication IPN PayPal '' txn_id 'n'étant pas configurée

$txn_id = $_POST['txn_id']; 

J'ai vérifié la liste de PayPal des variables et txn_id est cotée sur là, mais je ne reçois rien/ce n'est pas mis

Le paiement n'est pas un paiement d'abonnement, c'est juste un paiement normal d'achat d'une fois

Répondre

0

Comment/où recevez-vous les données? Nous montre votre HTML.

J'ai récemment eu des problèmes pour recevoir des données POST de PayPal. Cependant, IPN.php fonctionne toujours. Vous pouvez effectuer un débogage sur votre page IPN/retour. Ajouter ceci à votre fichier PayPal pour voir exactement ce que vous recevez.

Si la section POST est vide, ce sera votre problème et vous devrez peut-être travailler avec des données GET à la place.

Option 1) Dump tout reçu dans un fichier

    function test_file_dump2($msg) { 
         $filename = dirname(__FILE__).'-IPN-dump.log'; 
         $f = fopen($filename, 'a'); 
         fwrite($f, var_export($msg, true) . "\n"); 
         fclose($f); 
        } 
        test_file_dump2($_POST); 
        test_file_dump2($_GET); 

Option 2) Connectez-vous toutes les erreurs dans ce répertoire

     ini_set('error_reporting', E_ALL); // everything. Change to E_ALL & ~E_NOTICE); to remove notices 
         error_reporting(E_ALL); 
         ini_set('html_errors',TRUE); 
         ini_set('log_errors', TRUE); 
         ini_set('display_errors',TRUE); 
         ini_set('error_log', dirname(__FILE__) . '/-errors-ipn.log'); 

Option 3) si success.php ou une page, vous pouvez voir

 echo "<pre> GET contents<br><br>"; print_r($_GET); echo "</pre>"; 
     echo "<pre> POST contents<br><br>"; print_r($_POST); echo "</pre>";