Perl:Net/Braintree HTTP模块集成时出现服务器错误
我是Perl的新手。我正在将Braintree支付网关集成到现有项目中。我在遵循n Braintre提供的指南,它是如此清晰和简单,但我无法完成它。我已经通过链接从Github下载了示例项目:Perl:Net/Braintree HTTP模块集成时出现服务器错误,perl,paypal,payment-gateway,perl-module,braintree,Perl,Paypal,Payment Gateway,Perl Module,Braintree,我是Perl的新手。我正在将Braintree支付网关集成到现有项目中。我在遵循n Braintre提供的指南,它是如此清晰和简单,但我无法完成它。我已经通过链接从Github下载了示例项目:https://github.com/braintree/braintree_perl_guide 我在执行app.pl文件时遇到服务器错误 以下步骤: 创建了一个沙箱帐户,获得了商户id、公钥、私钥和配置代码 安装了运行Perl脚本所需的必要模块 编辑app.pl文件给定和给定我的商户id和相关密钥 编辑
https://github.com/braintree/braintree_perl_guide
我在执行app.pl文件时遇到服务器错误
以下步骤:
use strict;
use warnings;
use Dancer;
use Template;
use Net::Braintree;
my $config = Net::Braintree->configuration;
$config->environment("sandbox");
$config->merchant_id("wbjnmbzfnvs6zt56");
$config->public_key("smbbnwfhybb3h5ty");
$config->private_key("****");
get '/' => sub {
template 'form'
};
post '/create_transaction' => sub {
my $result = Net::Braintree::Transaction->sale({
amount => "1000.00",
credit_card => {
number => param("number"),
expiration_month => param("month"),
expiration_year => param("year"),
cvv => param("cvv")
},
options => {
submit_for_settlement => 1
}
});
my $success = $result->is_success ? "true" : "false";
if ($result->is_success) {
return "<h1>Success! Transaction ID: " . $result->transaction->id . "</h1>"
} else {
return "<h1>Error: " . $result->message . "</h1>"
}
};
Dancer->dance;
使用严格;
使用警告;
使用舞蹈演员;
使用模板;
使用Net::Braintree;
我的$config=Net::Braintree->configuration;
$config->environment(“沙盒”);
$config->merchant_id(“wbjnmbzfnvs6zt56”);
$config->public_key(“smbbnwfhybb3h5ty”);
$config->private_key(*****);
获取“/”=>sub{
模板“表单”
};
post'/create_transaction'=>sub{
my$result=Net::Braintree::Transaction->sale({
金额=>“1000.00”,
信用卡=>{
数字=>参数(“数字”),
到期月份=>参数(“月份”),
到期年=>参数(“年”),
cvv=>参数(“cvv”)
},
选项=>{
提交以进行结算=>1
}
});
my$success=$result->is_success?“true”:“false”;
如果($result->is\u success){
返回“成功!事务ID:”.$result->Transaction->ID。“”
}否则{
返回“错误:.”$result->message。“”
}
};
舞者->舞蹈;
还有我的Form.tt文件
<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 type="text/javascript" src="https://js.braintreegateway.com/v1/braintree.js"></script>
<script type="text/javascript">
var braintree = Braintree.create('MIIBCgKCAQEA1E9xWJbLZeJVM9VuITkFTLbYhbxERQ64hKqDL495BTwJBJaTz+Y29U555ekRaAGeOzuRAP7wgsOhyKsvKn3w7i3JVakdPYJSLMKgjqrQOTxSxUaUn+qpb+etJiALC3lsckmh04Io/x8B16hZAKhjQTB1XUZtuEcT8Pe0ObPlnZpWPXayMGElyBQnS/AaLWE7VZiq7ezqiRl5atp7RatAUACvfTkpRdlBAw9XuaEpgKPLPWtj8CQCJk3LDYWjrLvwGKQ/LW/uPoBpfVmqbbSVe1sAaZcdMcPyqL0viYn3QSIkiLhz8SvCJExo4XaMBSGOENg2bCbBWNHSNiJzrdZA4wIDAQAB');
braintree.onSubmitEncryptForm('braintree-payment-form');
</script>
</body>
</html>
Braintree信用卡交易表
卡号
CVV
有效期(年月日)
/
var braintree=braintree.create4.QQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQQBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBBJEXO4XABSGOENG2BCBWNHSNIJzrdZA4wIDAQAB');
braintree.onSubmitEncryptForm(“braintree-payment-form”);
根据注释,错误实际上是由代理问题引起的。绕过代理解决了问题。500通常意味着服务器端发生了可怕的事情。braintree从其开发控制台有什么类型的日志记录?我注意到,在将数据传递给braintree之前,您没有验证任何数据会影响你的结果。我在Braintree工作。我建议你。当你运行脚本时,你在控制台/日志文件中看到了什么?当你向服务器提交表单时,听起来你的服务器抛出了一个错误。@agf,是的,我当然与Braintree支持团队进行了交互。他们的响应是“实际上,我在日志中没有看到任何来自您对我们网关的请求。如果可以,请将生成错误的代码片段发送给我,以便我可以在这方面进行测试,看看发生了什么“@agf,在控制台日志中,我得到了以下错误日志,ServerError位于/Library/Perl/5.12/Net/Braintree/HTTP.pm第62行Net::Braintree::HTTP::check_response_代码('Net::Braintree::HTTP=HASH(0x7fcb151186f8)'500),调用于/Library/Perl/5.12/Net/Braintree/HTTP.pm第48行Net::Braintree::HTTP::make_请求('Net::Braintree::HTTP=HASH(0x7fcb151186f8)“,“/customers/”,“HASH(0x7fcb1512d398)”,“POST”)在/Library/Perl/5.12/Net/Braintree/HTTP.pm第13行调用。谢谢大家,这是一个代理问题,在通过代理服务器之后,它对我有效。API IP地址已解锁。