-1
<?php

require_once 'braintree-php-2.14.0/lib/Braintree.php';
require_once __DIR__ . 'silex/vendor/autoload.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('...');
Braintree_Configuration::publicKey('...');
Braintree_Configuration::privateKey('...');
$app = new Silex\Application();
$app->get('/', function () {
    include 'views/form.php';
});
$app->run();
//$app->get("/braintree-php-2.14.0", function () {
$app->get("/braintree", function () {
   include 'views/response.php';
});
?>

这是 Braintree 支付系统,我清楚地阅读了文档但没有解决。在第 14 行发现错误:$app->get("/braintree", function () {

4

1 回答 1

2

看起来问题在于匿名函数仅在 PHP 5.3+ 中可用。如果可能的话,我建议将您的服务器升级到可用的最新版本的 PHP,5.4.7。

另一个问题可能是您在添加响应挂钩之前调用了 $app->run(),因此我将 run() 调用移至末尾。

如果您无法升级 PHP,那么以下修复应该可以工作:

<?php
require_once 'braintree-php-2.14.0/lib/Braintree.php';
require_once __DIR__ . 'silex/vendor/autoload.php';
Braintree_Configuration::environment('sandbox');
Braintree_Configuration::merchantId('...');
Braintree_Configuration::publicKey('...');
Braintree_Configuration::privateKey('...');
$app = new Silex\Application();
function form() {
  include 'views/form.php';
}
$app->get('/', form);
function response() {
  include 'views/response.php';
}
$app->get("/braintree", response);
$app->run();
?>

我真正喜欢 PHP 5.4 的另一个原因是它包含一个轻量级(即不用于生产)服务器,这使得测试和调试变得更加容易。我是 Braintree 开发人员并编写了此指南,因此希望对您有所帮助!

于 2012-09-14T14:55:53.367 回答