Jestem nowicjuszem w web dev i eksperymentuję z webhookami Braintree. Używam ich przykładowego kodu submerchant do tworzenia submerskera, a następnie podobno powiadomienie ma dotrzeć do mojego serwera, który mówi, czy udało się, czy nie.Print_r niczego nie zwraca; var_dump pokazuje NULL
Moja metoda: I odświeżyć stronę submerchant.php (Używam Wordpress na serwerze NameCheap), który następnie echo
„s "Success!". Następnie przechodzę na stronę webhooks.php i odświeżam ją. Jednak tylko zwrot var_dump
NULL NULL
i print_r
nic nie zwraca. Dlaczego print_r
nic nie pokazuje?
submerchant.php - to tworzy submerchant kiedy ustawić $one = 1
i ustanowił nowy id
dla 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']);
?>
'print_r()' zachowuje się jak 'echo', a więc wartość pusta nic nie drukuje, podczas gdy' var_dump() 'w pełni sprawdza, czy wyświetla swoją wartość (jeśli ma) i wpisuje - i są one zerowe. Teraz, dlaczego są one puste, a nie zaludnione? To zależy od tego, kiedy je odświeżasz. Wartości '$ _POST' będą obecne tylko w momencie otrzymania żądania. Nie znam Braintree, więc nie mogę spekulować na temat tego, czego się spodziewa, ale twoje użycie terminu "odśwież" w skrypcie webhooks sprawia, że podejrzewam, że ładujesz go ręcznie, dzięki czemu wartości POST nie byłyby obecny. –
@MichaelBerkowski Myślę, że widzę, co mówisz o ręcznym odświeżaniu. Wygląda to tak, jakby do czasu odświeżenia zmienna została wygaszona. Masz jakieś wskazówki, jak mogę przetestować ten webhook i dokładnie powiedzieć, co zostanie zwrócone? – whatwhatwhat
Czy [z tego właśnie korzystasz] (https://developers.braintreepayments.com/guides/webhooks/create/php)? Nie będziesz mógł odwiedzić skryptu webhooks.php i uzyskać mega przychodzących danych, ponieważ braintree jest tym, co do niego wzywa. Nigdy nie zobaczysz tam danych postów BT, ponieważ żądania HTTP są bezpaństwowcami. Jeśli utworzysz formularz z bt_payload, bt_signature input i opublikujesz go w webhooks.php, zobaczysz wartości, które wysłałeś. Po prostu wizyta tego skryptu nie przyniesie ci pomocnej odpowiedzi. –