2017-03-20 26 views
0

嘗試使用Braintree創建事務時出現以下錯誤。在沙盒中,它工作正常。我的服務器是帶有SSL(TLS 1.2)的負載均衡器的AWS Beanstalk設置。Braintree Sale Error(PHP)

下面是從error_log中的錯誤:

[Mon Mar 20 11:32:31.816499 2017] [:error] [pid 11335] [client XX] PHP Fatal error: Uncaught Braintree\\Exception\\Authorization in /var/app/current/scripts/lib/Braintree/Util.php:61\nStack trace:\n#0 /var/app/current/scripts/lib/Braintree/Http.php(47): Braintree\\Util::throwStatusCodeException(403)\n#1 /var/app/current/scripts/lib/Braintree/TransactionGateway.php(477): Braintree\\Http->post('/merchants/jtd9...', Array)\n#2 /var/app/current/scripts/lib/Braintree/TransactionGateway.php(49): Braintree\\TransactionGateway->_doCreate('/transactions', Array)\n#3 /var/app/current/scripts/lib/Braintree/TransactionGateway.php(289): Braintree\\TransactionGateway->create(Array)\n#4 /var/app/current/scripts/lib/Braintree/Transaction.php(502): Braintree\\TransactionGateway->sale(Array)\n#5 /var/app/current/ajax/add_points.php(23): Braintree\\Transaction::sale(Array)\n#6 {main}\n thrown in /var/app/current/scripts/lib/Braintree/Util.php on line 61, referer: https://XX.com/dashboard 

下面是實際的服務器端的PHP代碼:

require_once('../scripts/lib/Braintree.php'); 
Braintree_Configuration::environment('production'); 
Braintree_Configuration::merchantId('xx'); 
Braintree_Configuration::publicKey('xx'); 
Braintree_Configuration::privateKey('xx'); 
$pym = $_POST["payment_method_nonce"]; 
$points = 10*1.5; 

     $result = Braintree_Transaction::sale([ 
      'amount' => $points, 
      'currency' => 'EUR', 
      'paymentMethodNonce' => $pym, 
      'options' => [ 
       'submitForSettlement' => true 
      ] 
     ]); 

上面的代碼的銷售::部分是什麼給了我上面的錯誤。我嘗試做一個退出();在包含Braintree.php文件和所有配置選項後,它會按預期退出,因此錯誤肯定是由:: sale部分代碼造成的。

所有在Sandbox中正常工作,並且nonce似乎正確生成客戶端,然後發送。

我甚至不知道從哪裏開始調試。任何建議都會有幫助!

+0

braintree的東西是,當你把它放在生產模式中時,你需要從頭開始在沙盒中執行所有的事情(即以編程方式創建商家帳戶等)以繼續交易。你跟着這個嗎? –

+0

是的 - 它看起來像授權正在通過(API密鑰是好的,工作)。當我沒有正確設置這些鍵時,錯誤顯然告訴了我。現在,它看起來像我面臨一個不同的問題:/ –

+0

是的..檢查您的商家ID ..應該在您的生產模式中生成,並在您進行交易時使用它,所有的東西應該在生產模式下生成。如果有任何問題,請告知我。 –

回答

0

事實證明,我的客戶端應用程序已被拒絕。這裏

關鍵術語是授權 - 這比認證(其涉及API鍵,那是正確的)不同。