我是第一次在 Braintree 上工作,并且在第一步就遇到了问题。我无法访问 dropin 功能和其他.. 我需要帮助来解决这个问题。
我按照此处给出的步骤操作:https://developers.braintreepayments.com/javascript+php/start/overview
第一步是 Javascript 客户端! - 我按照提到的那样进行操作,添加了脚本
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
然后添加HTML部分
<form id="checkout" method="post" action="/checkout">
<div id="dropin"></div>
<input type="submit" value="Pay $10">
</form>
最后,我在脚本标签中添加了以下脚本。
braintree.setup("CLIENT_TOKEN_KEY", 'dropin', {
container: 'checkout'
})
我已经检查了从我们的服务器获得的客户端 token key 。
对于下一步,我添加了提到的配置
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('use_your_merchant_id'); //updated with our merchant id
Braintree_Configuration::publicKey('use_your_public_key'); // updated with our public key
Braintree_Configuration::privateKey('use_your_private_key'); //updated with our private key
然后添加
$clientToken = Braintree_ClientToken::generate(array(
"customerId" => $aCustomerId
));
现在,我遇到的问题 -
当我用我们的客户 ID 更新 $aCustomerId 时,我收到了 Braintree_ClientToken 中未定义的“customer_id”字段的 fatal error 。所以删除了 array("customer"=>$aCustomerId) 并获得了客户端 token ..
客户端 token 在 brantree.setup('TOKEN_KEY','dropin',{container:'checkout'})
中使用并得到 p>
Error: Unable to find valid container. -braintree.js(line 18)
我还在 brantree.setup('TOKEN_KEY','dropin',{container:'checkout'}) 上面提到过
那时我得到了 var braintree = Braintree.create("CLIENT_TOKEN_KEY");
TypeError: braintree.setup is not a function
我试图从过去两天解决这个问题,但我仍然没有得到演示中显示的下拉屏幕。
希望得到好的帮助..
最佳答案
将所有脚本放在 html
/footer
部分之后,这将起作用:
<?php
require_once 'braintree-php-2.30.0/lib/Braintree.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('-----------');
Braintree_Configuration::publicKey('-----------');
Braintree_Configuration::privateKey('-----------');
if(isset($_POST['submit'])){
/* process transaction */
$result = Braintree_Transaction::sale(array(
'amount' => '234.00',
'creditCard' => array(
'number' => '30569309025904',
'expirationDate' => '05/14'
)
));
if ($result->success) {
print_r("success!: " . $result->transaction->id);
} else if ($result->transaction) {
print_r("Error processing transaction:");
print_r("\n code: " . $result->transaction->processorResponseCode);
print_r("\n text: " . $result->transaction->processorResponseText);
} else {
print_r("Validation errors: \n");
print_r($result->errors->deepAll());
}
}
$clientToken = Braintree_ClientToken::generate();
?>
<html>
<head>
</head>
<body>
<div id="checkout" method="post" action="/checkout">
<div id="dropin"></div>
<input data-braintree-name="number" value="4111111111111111">
<input data-braintree-name="expiration_date" value="10/20">
<input type="submit" id="submit" value="Pay">
<div id="paypal-button"></div>
</div>
<!-- Scripts -->
<script src="https://code.jquery.com/jquery-2.1.1.js"></script>
<script src="https://js.braintreegateway.com/v2/braintree.js"></script>
<script>
braintree.setup("<?php print $clientToken; ?>", "dropin", { container:
jQuery("#dropin") , form: jQuery("#checkout") ,
paymentMethodNonceReceived: function (event, nonce) {
// do something
}
});
</script>
</body>
</html>
关于javascript - 集成 braintree 导致问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24912893/