1

多くのフォルダー/サブフォルダー/ファイルを含むアプリを使用していますが、Braintree を正しく機能させることができないようです。ここで単に欠けているものはありますか?私のサイト名がDIRだとしましょう。

Braintree フォルダーから解凍されたすべてのファイルは、DIR/braintree_payments にあります。

次に、私の transaction.php ファイルは DIR/templates/content/listing にあります

フォームのすべてのラベルは、DIR/templates/content/listing/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/>");
    }
}

?>
4

1 に答える 1

0

あなたが経験していることについてははっきりしていませんが、おそらくこれは誰かを助けるでしょう.

私は form.php と transaction.php ファイルを使用して Braintree Sandbox で実行していました。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 ファイルを実行しました。「Braintree ライブラリには XXXX 拡張子が必要です」という 2 つのメッセージが表示されました。

私にとっては、xml-writer 拡張機能でした。サーバーにアクセスし、xml-writer をインストールして、Apache を再起動しました。その後、すべてが期待どおりに機能しました。

于 2013-10-09T21:17:19.537 に答える