Sono nuovo di web dev e sto sperimentando con i webwint di Braintree. Sto usando il loro codice di esempio del submerchant per creare un submerchant e quindi si presume che una notifica raggiunga il mio server che dice se ha avuto successo o meno.Print_r non restituisce nulla; var_dump mostra NULL
Il mio metodo: ho aggiornare la pagina submerchant.php (sto usando Wordpress su un server di NameCheap), che poi echo
s' "Success!". Poi vado alla pagina webhooks.php e lo aggiorno. Tuttavia, gli NULL NULL
e gli restituiscono solo var_dump
e non restituiscono nulla. Perché print_r
non mostra nulla?
submerchant.php - questo crea l'submerchant quando ho impostato $one = 1
e impostare un nuovo id
per il 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()' si comporta come 'echo', e quindi il valore nullo non stampa nulla, mentre' var_dump() 'lo ispeziona completamente per mostrare il suo valore (se ne ha uno) e tipo - e sono nulli. Ora sul perché sono nulli invece che popolati? Dipende da quando lo stai rinfrescando. I valori '$ _POST' saranno presenti solo al momento della ricezione della richiesta. Non conosco Braintree, quindi non posso speculare su ciò che si aspetta, ma il tuo uso del termine "refresh" sullo script webhooks mi rende sospetto che tu lo stia caricando manualmente in qualche modo, per cui i valori POST non sarebbero presente. –
@MichaelBerkowski Penso di vedere cosa stai dicendo riguardo l'aggiornamento manuale. È quasi come se nel momento in cui colpisco refresh la variabile viene cancellata. Hai qualche consiglio su come posso testare questo webhook e dire esattamente cosa viene restituito? – whatwhatwhat
È [questo che stai lavorando da] (https://developers.braintreepayments.com/guides/webhooks/create/php)? Non sarai in grado di visitare lo script webhooks.php e ottenere l'output mraningful da in perché Braintree è ciò che lo chiama. Non vedrai mai i dati dei post di BT lì, perché le richieste HTTP sono stateless. Se crei un modulo con bt_payload, bt_signature input e postalo su webhooks.php, vedresti i valori che hai inviato. Solo visitung quella sceneggiatura non ti darà una risposta utile. –