Perl:集成时 Net/Braintree HTTP 模块的服务器错误

标签 perl paypal payment-gateway perl-module braintree

我是 Perl 的新手。我正在致力于将 Braintree 支付网关集成到现有项目中。我正在遵循 n Braintre 提供的指南,它是如此清晰和简单,但我无法完成。我已经通过以下链接从 Github 下载示例项目:https://github.com/braintree/braintree_perl_guide

我在执行 app.pl 文件时遇到服务器错误,

遵循的步骤:

  1. 创建了一个 Sandbox 帐户,获得了商户 ID、公钥、私钥和配置代码。

  2. 安装运行 Perl 脚本所需的必要模块

  3. 编辑给定的 app.pl 文件并给定我的商家 ID 和关联的 key 。

  4. 编辑 form.tt 文件并给出配置代码。

  5. 在终端中执行命令 Perl app.pl,同时按 enter 我得到了,

    Dancer 1.3124 server 79859 listening on locahost:3000 == Entering the development dance floor ...

  6. 从浏览器连接到 localhost:3000/并获得 Braintree 信用卡交易表格。

  7. 输入详细信息并单击提交按钮,突然出现错误 500。“无法处理您的查询”。

  8. 如何解决这个问题需要您的帮助。

我的 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;

和我的 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>

最佳答案

根据评论,该错误实际上是由代理问题引起的。绕过代理解决了这个问题。

关于Perl:集成时 Net/Braintree HTTP 模块的服务器错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24697759/

相关文章:

linux - 使用 shell 遍历文件

payment-gateway - 是否可以让 PayPal 标准默认展开 'Guest Payments' 选项卡?

ruby-on-rails - Paypal IPN 发送电子邮件

android - 移动应用支付支持 - 通过 BHIM 支付

perl - 为什么 'last' 在 Perl 中被称为 'last' ?

multithreading - 使用多线程时我必须在哪里取消定义队列

linux - 如何在不安装 perlbrew 的情况下指定用于脚本的 perl 版本

PayPal PDT 停止返回我的网站

security - TLS 足够安全吗?需要在 PA-DSS 支付应用程序中滚动哈希吗?

javascript - 在表单提交之前用 AngularJS 同步调用服务器