2015-12-24 11 views
5

Ich bin neu bei Web Dev und experimentiere mit Braintree Webhooks. Ich benutze ihren create submerchant Beispielcode, um ein submerchant zu erstellen und dann soll angeblich eine Benachrichtigung meinen Server erreichen, der sagt, ob es erfolgreich war oder nicht.Print_r gibt nichts zurück; var_dump zeigt NULL

Meine Methode: ich aktualisieren Sie die submerchant.php Seite (Ich bin mit Wordpress auf einem Server Namecheap), die dann echo ‚s‚Erfolg!‘. Dann gehe ich zur webhooks.php Seite und aktualisiere sie. Aber die var_dump 's einzige Rückkehr NULL NULL und die print_r' s geben nichts zurück. Warum zeigt print_r nichts?

submerchant.php - das schafft die submerchant wenn ich $one = 1 gesetzt und einen neuen id für die submerchant

<?php 

require_once(__DIR__ . '/../braintree/lib/Braintree.php'); 

Braintree_Configuration::environment('sandbox'); 
Braintree_Configuration::merchantId('A'); 
Braintree_Configuration::publicKey('B'); 
Braintree_Configuration::privateKey('C'); 

function fd_create_sm() { 

    $one; 

    $one = 1; 

    if($one=1) { 

    $merchantAccountParams = [ 
     'individual' => [ 
     'firstName' => 'Janez', 
     'lastName' => 'Doe', 
     'email' => '[email protected]', 
     'phone' => '5553334444', 
     'dateOfBirth' => '1981-11-19', 
     'ssn' => '456-45-4567', 
     'address' => [ 
      'streetAddress' => '111 Main St', 
      'locality' => 'Chicago', 
      'region' => 'IL', 
      'postalCode' => '60622' 
     ] 
     ], 
     'business' => [ 
     'legalName' => 'Jane\'s Ladders', 
     'dbaName' => 'Jane\'s Ladders', 
     'taxId' => '98-7654321', 
     'address' => [ 
      'streetAddress' => '111 Main St', 
      'locality' => 'Chicago', 
      'region' => 'IL', 
      'postalCode' => '60622' 
     ] 
     ], 
     'funding' => [ 
     'descriptor' => 'Red Ladders', 
     'destination' => Braintree_MerchantAccount::FUNDING_DESTINATION_BANK, 
     'email' => '[email protected]', 
     'mobilePhone' => '5555555555', 
     'accountNumber' => '1123581321', 
     'routingNumber' => '071101307' 
     ], 
     'tosAccepted' => true, 
     'masterMerchantAccountId' => "na", 
     'id' => "green_ladders" 
    ]; 
    $result = Braintree_MerchantAccount::create($merchantAccountParams); 

    $result->success; 
    if($result->success) { 
    echo 'Success!'; 
    } else { 

    print_r($result->errors); 

      $errordata; 
      echo '***********'; 
      $BT_Errors = new Braintree_Error_ErrorCollection($errordata); 
      echo '***********'; 
      $BT_Errors->deepAll(); 
      echo '***********'; 
      $BT_Errors->onHtmlField("transaction[amount]"); 

    } 

    $result->merchantAccount->status; 

    $result->merchantAccount->id; 
    // "blue_ladders_store" 
    $result->merchantAccount->masterMerchantAccount->id; 
    // "14ladders_marketplace" 
    $result->merchantAccount->masterMerchantAccount->status; 
    // "active" 

    } else { 
    return; 

    } 
} 

fd_create_sm(); 

?> 

webhooks.php

<?php 

var_dump($_POST['bt_signature']); 
var_dump($_POST['bt_payload']); 

print_r($_POST['bt_signature']); 
print_r($_POST['bt_payload']); 

?> 
+0

'print_r()' verhält sich wie 'echo', und so druckt der Nullwert nichts, während' var_dump() 'ihn vollständig inspiziert, um seinen Wert anzuzeigen (wenn es einen hat) und type - und sie sind null. Nun, warum sind sie null anstatt bevölkert? Das hängt davon ab, wann Sie es auffrischen. Die '$ _POST'-Werte würden nur in dem Moment vorhanden sein, in dem die Anfrage empfangen wird. Ich kenne Braintree nicht, also kann ich nicht darüber spekulieren, was es erwartet, aber Ihre Verwendung des Begriffs "Aktualisieren" auf dem Webhooks-Skript macht mich verdächtig, dass Sie es irgendwie manuell laden, wobei die POST-Werte nicht wären Geschenk. –

+0

@MichaelBerkowski Ich denke, ich sehe, was Sie über die manuelle Aktualisierung sagen. Es ist fast so, als ob die Variable zum Zeitpunkt des Auffrischens ausgeblendet wird. Haben Sie irgendwelche Tipps, wie ich diesen Webhook testen und genau sagen kann, was zurückgegeben wird? – whatwhatwhat

+0

Ist [das, woran Sie arbeiten] (https://developers.braintreepayments.com/guides/webhooks/create/php)? Sie werden nicht in der Lage sein, das Skript webhooks.php zu besuchen und eine tolle Ausgabe von in zu erhalten, weil braintree das ist, was es anruft. Die Post-Daten von BT werden nie angezeigt, da HTTP-Anfragen statusfrei sind. Wenn Sie ein Formular mit den Eingaben bt_payload und bt_signature erstellen und es an webhooks.php posten, würden Sie die von Ihnen gesendeten Werte sehen. Lediglich die Besichtigung dieses Skripts wird Ihnen keine hilfreiche Antwort geben. –

Antwort

0

Höchstwahrscheinlich wird der ausgegeben wird, Daten werden in einem Ausgabepuffer gespeichert. Wenn Sie ziemlich sicher sind, dass Sie Ihren Code diese Weg debuggen möchten, versuchen Sie wp_die(); Aufruf direkt nach der Ausgabe von Daten mit print_r hinzuzufügen. Das sollte helfen!

Noch eine Sache: Manchmal wird ein Teil des Codes (nicht dieser spezielle Fall) aufgrund eines komplexeren Datenflusses tatsächlich nie ausgegeben. In diesem Fall empfiehlt es sich, Debugging-Tools für Drittanbieter zu verwenden. Wenn Sie nach einer einfacheren Lösung suchen, können Sie einen Teil der Ausgabe in eine Protokolldatei schreiben und anschließend die Datei überprüfen.

Viel Glück!