我使用的是django framework 1.6.2,eclipse 3.8.1,python 2.7.5
我已经跟随This link作为我的样本测试程序,不幸的是我遇到了问题,但它的工作完美,没有使用eclipse。请帮忙,你的帮助真的很明显
客户端问题:
代码是
<html>
<head>
</head>
<body>
<h1>Braintree Credit Card Transaction Form</h1>
<div>
<form action="/create_transaction" 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" data-encrypted-name="month" /> / <input type="text" size="4" data-encrypted-name="year" />
</p>
<input type="submit" id="submit" />
</form>
</div>
<script src="https://js.braintreegateway.com/v1/braintree.js"></script>
<script>
var braintree = Braintree.create("YourClientSideEncryptionKey");
braintree.onSubmitEncryptForm('braintree-payment-form');
</script>
</body>
</html>
错误
Uncaught ReferenceError: Braintree is not defined
服务器端问题:
代码是
import braintree
braintree.Configuration.configure(braintree.Environment.Sandbox,
merchant_id="use_your_merchant_id",
public_key="use_your_public_key",
private_key="use_your_private_key")
错误
Undefined variable from import:Sandbox
答案 0 :(得分:5)
我使用了v2脚本,但是有相同的错误。问题在于异步加载脚本。 您的脚本 braintree.js 尚未加载,但下一个脚本已经执行,您会看到未定义braintree的错误。
为了解决这个问题,我使用了jQuery getScript,并在回调中执行了第二部分。
<script>
$.getScript( "https://js.braintreegateway.com/v2/braintree.js", function() {
var clientToken = "myTokenClient";
braintree.setup(clientToken, "dropin", {
container: "payment-form"
});
});
</script>
答案 1 :(得分:1)
我通过改变来修复它
src="https://js.braintreegateway.com/v2/braintree.js"
否则只有Braintree可用于v1名称空间。
答案 2 :(得分:0)
将需要Braintree脚本的代码移动到
中$( window ).load(function() {}
为我工作。