braintreegateway Eccezione non rilevata

Sto usando braintreegateway con il seguente codice in modalità sandbox .

Il codice viene utilizzato dal sito dello sviluppatore

 require_once 'braintree/lib/Braintree.php'; Braintree_Configuration::environment('sandbox'); Braintree_Configuration::merchantId('marchentid'); Braintree_Configuration::publicKey('publickey'); Braintree_Configuration::privateKey('privatekey'); $result = Braintree_Transaction::sale([ 'amount' => '100.00', 'orderId' => '123', 'merchantAccountId' => 'marchentid', 'paymentMethodNonce' => 'nonceFromTheClient', 'customer' => [ 'firstName' => 'kapil', 'lastName' => 'Smith', 'company' => 'mycompany', 'phone' => '1234567890', 'website' => 'http://mywebsite.com', 'email' => 'myemail' ], 'billing' => [ 'firstName' => 'kapil', 'lastName' => 'Smith', 'company' => 'mycompany', 'streetAddress' => 'address', 'extendedAddress' => 'Suite 403', 'locality' => 'India', 'region' => 'IN', 'postalCode' => 'zipcode', 'countryCodeAlpha2' => 'IN' ], 'shipping' => [ 'firstName' => 'kapil', 'lastName' => 'Smith', 'company' => 'mycompany', 'streetAddress' => 'address', 'extendedAddress' => 'Suite 403', 'locality' => 'India', 'region' => 'IN', 'postalCode' => 'zipcode', 'countryCodeAlpha2' => 'IN' ], 'options' => [ 'submitForSettlement' => true ] ]); if ($result->success) { print_r("success!: " . $result->transaction->id); } else if ($result->transaction) { print_r("Error processing transaction:"); print_r("\n code: " . $result->transaction->processrResponseCode); print_r("\n text: " . $result->transaction->processrResponseText); } else { print_r("Validation errors: \n"); print_r($result->errors->deepAll()); } 

e il risultato è

Errore irreversibile: exception non rilevata "Braintree \ Exception \ Authorization" in /var/www/html/api/braintree/lib/Braintree/Util.php:61 Traccia stack: # 0 / var / www / html / api / braintree / lib /Braintree/Http.php(47): Braintree \ Util :: throwStatusCodeException (403) # 1 /var/www/html/api/braintree/lib/Braintree/TransactionGateway.php(443): Braintree \ Http-> post ( '/ merchants / dmmt …', Array) # 2 /var/www/html/api/braintree/lib/Braintree/TransactionGateway.php(49): Braintree \ TransactionGateway -> _ doCreate ('/ transactions', Array) # 3 /var/www/html/api/braintree/lib/Braintree/TransactionGateway.php(268): Braintree \ TransactionGateway-> create (Array) # 4 / var / www / html / api / braintree / lib / Braintree / Transaction.php (494): Braintree \ TransactionGateway-> sale (Array) # 5 /var/www/html/api/payment.php(58): Braintree \ Transaction :: sale (Array)

6 {main} lanciato in /var/www/html/api/braintree/lib/Braintree/Util.php sulla linea 61

cosa c'è che non va qui?

Full disclosure: lavoro a Braintree. Se hai ulteriori domande, non esitare a contattare l' assistenza .

Come menzionato @mfahadi, un potenziale problema potrebbe essere che il tuo codice non ha le tue chiavi nelle chiamate Braintree_Configuration , ma non devi mai pubblicare le tue chiavi su StackOverflow, nemless per gli account sandbox. Quindi se è stato intenzionalmente filtrato: ben fatto. In caso contrario, controlla la guida per get le chiavi del cliente .

Il secondo problema è che non hai sostituito 'nonceFromTheClient' nella row sottostante con un nonce client effettivo:

 'paymentMethodNonce' => 'nonceFromTheClient', 

È ansible trovare un test nonce nella guida di riferimento per i test.

E sostituisci la row in alto con la row sottostante per correggere il tuo secondo problema:

 'paymentMethodNonce' => 'fake-valid-nonce', 

Stai solo cercando di eseguire un codice di esempio, che contiene segnaposto per informazioni che devi fornire. Devi aggiungere quelle informazioni per farlo funzionare.

 Braintree_Configuration::merchantId('marchentid'); Braintree_Configuration::publicKey('publickey'); Braintree_Configuration::privateKey('privatekey'); 

Nel codice sopra devi dimostrare il tuo pannello di controllo Braintree per merchentid, publikey e privatekey.

 'paymentMethodNonce' => 'nonceFromTheClient', 

E quindi aggiungere il sostantivo dal cliente. Suggerirei di leggere i documenti per l'implementazione del server PHP e i campi ospitati per get una comprensione dettagliata.

Documenti Fileds ospitati

PHP Server Docs

* Non aggiungere come commento perché non ho abbastanza reputazione.