尝试不使用Stripe充电 - php

我正在网站上测试Stripe,但无法通过下面的“尝试”。基本上,在“尝试”之后,我再也看不到“测试”。

我在这里做错什么了吗?

   try {
$charge = Stripe_Charge::create(array(
  "amount" => 50, // amount in cents, again
  "currency" => "usd",
  "customer" => $customer->id,
  "card" => $token,
  "description" => $email));
echo "TEST1";
} catch (Stripe_CardError $e) {
    // Since it's a decline, Stripe_CardError will be caught
    $body = $e->getJsonBody();
    $err  = $body['error'];
    echo 'Status is:' . $e->getHttpStatus() . "\n";
    echo 'Type is:' . $err['type'] . "\n";
    echo 'Code is:' . $err['code'] . "\n";
    // param is '' in this case
    echo 'Param is:' . $err['param'] . "\n";
    echo 'Message is:' . $err['message'] . "\n";
}
echo "TEST";

谢谢!

参考方案

您不太可能会遇到另一个错误-如果您遇到了,您将看到未捕获的错误异常。话虽如此,正如periklis建议的那样,您还应该捕获其他类型的异常。

最有可能发生的事情是,引发并捕获了Stripe_CardError,但是由于您没有在catch语句中回显任何内容,因此它默默地失败了。试试这个:

} catch (Stripe_CardError $e) {
    // Since it's a decline, Stripe_CardError will be caught
    $body = $e->getJsonBody();
    $err  = $body['error'];

    echo 'Status is:' . $e->getHttpStatus() . "\n";
    echo 'Type is:' . $err['type'] . "\n";
    echo 'Code is:' . $err['code'] . "\n";
    // param is '' in this case
    echo 'Param is:' . $err['param'] . "\n";
    echo 'Message is:' . $err['message'] . "\n";
} catch (Exception $e) {
    echo $e->getMessage();
} catch (ErrorException $e) {
    echo $e->getMessage();
}

编辑4/16/13-您在注释中指出,您甚至没有在try语句中看到回显。因此,要么a)您的echo语句从视图中隐藏,要么b)失败之前的代码块。但是,由于您没有捕获Stripe_CardError,因此它必须是另一种异常类型。我现在的猜测是,您传递给Stripe函数的变量之一存在问题……要么未声明,要么试图访问非对象的属性。

添加其他catch语句,看看是否有任何东西。您无法到达最后一个echo语句的唯一方法是,如果引发了未捕获的异常……您只是没有看到它。

这是一个黑暗的镜头,但是您的php环境是否有可能被抑制或以其他不明显的其他方式处理了异常报告?有时,将生产环境设置为忽略或记录异常,而不是将异常显示给用户。对此进行检查,因为如果您没有看到它,它就会被捕获在其他地方并被记录或从视图中隐藏。

尝试在尝试捕获之前将其插入到某处:

ini_set('error_reporting', E_ALL);

PHP strtotime困境 - php

有人可以解释为什么这在我的服务器上输出为true吗?date_default_timezone_set('Europe/Bucharest'); var_dump( strtotime('29.03.2015 03:00', time()) === strtotime('29.03.2015 04:00�…

PHP-全局变量的性能和内存问题 - php

假设情况:我在php中运行一个复杂的站点,并且我使用了很多全局变量。我可以将变量存储在现有的全局范围内,例如$_REQUEST['userInfo'],$_REQUEST['foo']和$_REQUEST['bar']等,然后将许多不同的内容放入请求范围内(这将是适当的用法,因为这些数据指的是要求自…

PHP-正则表达式删除引号并添加大括号? - php

好吧,我不愿承认这一点,但是我对REGEX感到很困难,我永远找不到关于如何设置表达式的不错的教程。所以说我有这样的事情context['something'] 我想将所有事件更改为context[something] 那我有' . $var . ' 我想将所有事件更改为{var} 这是当前的概念,但是我在正则表达式部分…

php-casperjs获取内部文本 - php

我正在为casperjs使用php包装器-https://github.com/alwex/php-casperjs我正在网上自动化一些重复的工作,我需要访问一个项目的innerText,但是我尚不清楚如何从casperjs浏览器访问dom。我认为在js中我会var arr = document.querySelector('label.input…

使用jQuery将值增加到attr - php

我想增加i的值。 “ for”循环不起作用。$("a[href$='.xls']").appendTo(".xl1").attr('id','xl'+i); 我搜索所有excel文件,并将它们放在容器中并增加其id的值。谢谢吉恩 参考方案 $("a[…