2015-04-03 6 views
11

Beim Ausführen der TransactionSearch-Anforderung erhalte ich die Liste der Transaktionen mit dem Feld TRANSACTIONID für die Transaktionen, die den wiederkehrenden Zahlungen entsprechen, im Format z. "I-BRPN2RUD8W0G" (aktuell ist Fälschung).PayPal - Abrufen von Transaktionsdetails für wiederkehrendes Profil

Für die restlichen Transaktionen - ich bekomme normalerweise 17 Single-Byte-alphanumerische Zeichenfolge. Das bedeutet, dass PayPal für wiederkehrende Zahlungen ProfileID, aber nicht TransactionID zurückgibt.

Als Ergebnis, wenn ich die GetTransactionDetails mit dieser Transaktions-ID an PayPal übergeben erhalte ich gültige Details für normale Zahlungen und Fehler mit der Nachricht "Die Transaktions-ID ist nicht gültig" für den Fall von wiederkehrenden Zahlungen.

+0

Hallo, ich habe das gleiche Problem. – hemsbhardiya

Antwort

1

Sie haben IPN in Ihrem Paypal-Händler-Konto setzen (speziell für wiederkehrende Zahlungen), die Sie wieder eine Transaktion sendet Details, wenn eine wiederkehrende Zahlung geschieht, von dort kann man $_POST['txn_id'] bekommen, die Ihr TRANSACTIONID wenn $_POST['txn_type']recurring_payment ist. Speichern Sie die Details in Ihrer Datenbank und rufen Sie dann die Methode GetTransactionDetails auf, wenn Sie Transaktionsdetails benötigen. More

6

Sie müssen IPN wie von Sanjiv vorgeschlagen einstellen. Sie können die Felder gemäß IPN Variables abrufen. Im Falle einer Rückerstattung müssen Sie auch parent_txn_id

Wenn Sie mit diesem und der Suche nach harten neu verwenden, Sie IPN listener class und dann integrieren Code unten

$listener = new IpnListener(); 

try { 
    $verified = $listener->processIpn(); 
} catch (Exception $e) { 
    return Log::error($e->getMessage()); 
} 

if ($verified) { 

$data = $_POST; 
$user_id = json_decode($data['custom'])->user_id; 

$subscription = ($data['mc_gross_1'] == '10') ? 2 : 1; 

$txn = array(
    'txn_id'  => $data['txn_id'], 
    'user_id'  => $user_id, 
    'paypal_id' => $data['subscr_id'], 
    'subscription' => $subscription, 
    'expires'  => date('Y-m-d H:i:s', strtotime('+1 Month')), 
); 

Payment::create($txn); 

} else { 
    Log::error('Transaction not verified'); 
} 

Speichern Sie diese Datei Code in der Datei lassen sagen wir verwenden können, ipn.php und weisen Sie nun den Web-Pfad für diese Datei in Ihrem PayPal-Konto zu.

PS: stellen Sie sicher, dass Ihre IPN-Datei auf öffentlich zugänglichen URL ist. Verwenden Sie keinen lokalen oder eingeschränkten Server.

Verwandte Themen