2016-06-19 18 views
0

Wie kann ich $ _POST Daten, wie von einem Modul ausgedruckt, in meinem benutzerdefinierten Modul abfangen?Drupal 7 Commerce Paypal IPN

Ich verwende das Commerce-Modul und Paypal, um Zahlungen auf meiner Drupal-Website bereitzustellen.

Mein Problem konzentriert sich auf meine Unfähigkeit, die Paypal IPN Transaktionsdaten zu erhalten.

In den Drupal-Protokollen habe ich die $ _POST-Daten gefunden, die ich vom Commerce Checkout-Modul benötige. Die Daten sind wie folgt:

Array 
(
    [mc_gross] => 1.00 
    [invoice] => 42-1466371657 
    [protection_eligibility] => Ineligible 
    [item_number1] => 
    [payer_id] => 69AYKSJVPCN48 
    [tax] => 0.00 
    [payment_date] => 14:27:58 Jun 19, 2016 PDT 
    [option_selection1_1] => 1 
    [payment_status] => Completed 
    [charset] => utf-8 
    [mc_shipping] => 0.00 
    [mc_handling] => 0.00 
    [first_name] => test 
    [mc_fee] => 0.24 
    [notify_version] => 3.8 
    [custom] => 
    [payer_status] => verified 
    [business] => [email protected] 
    [num_cart_items] => 1 
    [mc_handling1] => 0.00 
    [payer_email] => [email protected] 
    [verify_sign] => AFcWxV21C7fd0v3bYYYRCpSSRl31AfxmnZuHUiYodjVMGelbrZ3s3Ylv 
    [mc_shipping1] => 0.00 
    [tax1] => 0.00 
    [option_name1_1] => Product count 
    [txn_id] => 10L50068V5914254J 
    [payment_type] => instant 
    [last_name] => buyer 
    [item_name1] => Order 42 at Mysite 
    [receiver_email] => [email protected] 
    [payment_fee] => 
    [quantity1] => 1 
    [receiver_id] => BGEFKZZCD22XA 
    [txn_type] => cart 
    [mc_gross_1] => 1.00 
    [mc_currency] => GBP 
    [residence_country] => GB 
    [test_ipn] => 1 
    [transaction_subject] => 
    [payment_gross] => 
    [auth] => AT2Z0IOHTJopgBP2XkLyQCQ8L2lhYfZUxhpmutbdOyy-ZqV7HolIN2nSv2Tl4shPAi77wEUvDTmNKAfewbCZ83Q 
) 

Das Ausgangssignal aus dem folgenden Code ist:

function commerce_paypal_wps_redirect_form_validate($order, $payment_method) { 
    if (!empty($payment_method['settings']['ipn_logging']) && 
    $payment_method['settings']['ipn_logging'] == 'full_ipn') { 
    watchdog('commerce_paypal_wps', 'Customer returned from PayPal with the following POST data:!ipn_data', array('!ipn_data' => '<pre>' . check_plain(print_r($_POST, TRUE)) . '</pre>'), WATCHDOG_NOTICE); 
    } 

Mein Problem ist, ich brauche Zugriff auf die gleichen Daten, sondern aus einem benutzerdefinierten Modul.

I umgesetzt hook_redirect_form und hook_form_validate in meinen Versuchen in zu erschließen und die $ _POST Daten zugreifen, aber beide waren erfolglos.

Kann mir bitte jemand den richtigen Weg zeigen, um dieses Rätsel zu lösen?

Antwort

0

Sie sollten nicht versuchen, Zugriff auf die $ _POST-Variable zu haben, es sind keine Best Practices. Daher sollten Sie in der Lage sein, auf Ihre Daten in der hook_submit_form zuzugreifen, versuchen Sie, Devel und DSM() alle Variablen zu installieren, die Sie dank der Hook-Definition zugreifen können, finden Sie, was Sie suchen. Prost Denis