2013-10-01 2 views
1

У меня есть приложение, которое содержит много папок/подпапок/файлов, и я не могу заставить Braintree работать правильно. Есть что-то, чего я просто здесь не хватает? Скажем, мое имя сайта DIR.API-интерфейс Braintree, не работающий в PHP-приложении

Все распаковка файлы из папки Брэйнтри находятся в DIR/braintree_payments

Тогда мой файл transaction.php в DIR/шаблоны/содержание/Список

Всех этикеток для формы в DIR/шаблоны/содержание/реклама/confirm_booking.tpl.php

confirm_booking.tpl.php 
       <h1>Braintree Credit Card Transaction Form</h1> 
        <div style="position:relative;"> 
         <form action="transaction.php" method="POST" id="braintree-payment-form"> 
         <p> 
          <label>Card Number</label> 
          <input type="text" size="20" autocomplete="off" data-encrypted-name="number" /> 
         </p> 
         <p> 
          <label>CVV</label> 
          <input type="text" size="4" autocomplete="off" data-encrypted-name="cvv" /> 
         </p> 
         <p> 
          <label>Expiration (MM/YYYY)</label> 
          <input type="text" size="2" name="month" />/<input type="text" size="4" name="year" /> 
         </p> 
         <input type="submit" id="submit" /> 
         </form> 
        </div> 
        <script type="text/javascript" src="https://js.braintreegateway.com/v1/braintree.js"></script> 
        <script type="text/javascript"> 
         var braintree = Braintree.create("awefawef2oIaXiawefawefawefoP1jJ3LNuLchxfeawfawetq34tq34tq34tBtfTk6KnM0Bk3TkofNMM2CG/1ktaBDa+BEbteZjF05e5Jjfwefawfawe4t34434CVxaXNAbgZEn+ECWiZ2rynxtme5goMAhYAS+blBaVlL9+affawef aw/NLhqKmwQL7zuK3GBGiOp3ht9rL3AI1O84o1WpjVeqt8Xgg5MQe4jRTGJAfR3Rv25KPuwRaTqrevyVyRkPekcCIp1HROoZGelQyaSsPzhA0/FApbRu0Vpcx6kUwIDAQAB"); 
         braintree.onSubmitEncryptForm('braintree-payment-form'); 
        </script> 



transaction.php 

<?PHP 
require_once 'braintree_payments/lib/Braintree.php'; 

Braintree_Configuration::environment('sandbox'); 
Braintree_Configuration::merchantId('389yhf9gf82gf3'); 
Braintree_Configuration::publicKey('r3h89h39h833'); 
Braintree_Configuration::privateKey('my_private_api_key'); 

$result = Braintree_Transaction::sale(array(
    "amount" => "1000.00", 
    "creditCard" => array(
     "number" => $_POST["number"], 
     "cvv" => $_POST["cvv"], 
     "expirationMonth" => $_POST["month"], 
     "expirationYear" => $_POST["year"] 
    ), 
    "options" => array(
     "submitForSettlement" => true 
    ) 
)); 

if ($result->success) { 
    echo("Success! Transaction ID: " . $result->transaction->id); 
} else if ($result->transaction) { 
    echo("Error: " . $result->message); 
    echo("<br/>"); 
    echo("Code: " . $result->transaction->processorResponseCode); 
} else { 
    echo("Validation errors:<br/>"); 
    foreach (($result->errors->deepAll()) as $error) { 
     echo("- " . $error->message . "<br/>"); 
    } 
} 

?> 
+0

Также страница, содержащая html файла confirm_booking.tpl.php, связана с DIR/modules/listing/confirm_booking.php. Итак, модули/листинг/confirm_booking.php находятся в URL-адресе – pmanning

+0

Эй, @pmanning, вы пытались добавить '../' в свой 'require_once'? 'require_once '../ braintree_payments/lib/Braintree.php';' Если это не исправить, будьте более конкретными, то «не работает правильно». Также я отредактировал ваше сообщение, чтобы удалить ваш закрытый ключ. Несмотря на то, что это всего лишь учетная запись в виде песочницы, вы должны сохранить это частное. – agf

+0

Да, я пробовал, что не повезло. и спасибо за редактирование, но я просто нацарапал в каком-то тексте, это не настоящие ключи. Он перенаправляется на мою домашнюю страницу, а затем ничего не отображается в моей учетной записи sandbox. – pmanning

ответ

0

Я не ясно, о том, что вы испытываете, но, возможно, это поможет кому-то.

Я работал в песочнице Braintree с файлом form.php и transaction.php. В transaction.php я сделал require_once('/lib/Braintree.php');, и transaction.php просто умирал, никогда не пропустив заявление require_once.

Я вошел в Braintree.php, в нижней части файла, и нашел строку, которая говорит throw new Braintree_Exception('The Braintree library requires the ' . $ext . ' extension.');

По какой-то причине, это линия, где мой сценарий умирает. Я изменил throw new на echo и снова запустил файл transaction.php - и получил 2 сообщения, в которых говорилось: «Библиотека Braintree требует расширения XXXX».

Для меня это расширение для xml-writer. Я пошел на свой сервер, установил xml-writer и перезапустил Apache. Затем все работало так, как ожидалось.

+0

Я тоже это сделал, но все равно не получается. Я думаю, что что-то не так с autoload.php – erdomester

Смежные вопросы