首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >试着不使用条带充电

试着不使用条带充电
EN

Stack Overflow用户
提问于 2013-04-14 09:56:05
回答 2查看 4K关注 0票数 2

我正在测试我的网站上的条纹,但无法通过下面看到的‘尝试’。基本上,我永远看不到“try”之后的"TEST“。

我是不是做错了什么?

代码语言:javascript
运行
复制
   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";

谢谢!

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2013-04-15 23:04:20

您不太可能收到另一个错误--如果是这样,您将看到一个未捕获的错误异常。也就是说,您应该像periklis建议的那样,捕获其他类型的异常。

最有可能发生的情况是,Stripe_CardError被抛出并被捕获,但是因为您没有在catch语句中响应任何内容,所以它会默默地失败。试试这个:

代码语言:javascript
运行
复制
} 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();
}

2013年4月16日编辑-您在评论中指出,您甚至没有在try语句中看到您的回应。因此,要么a)您的echo语句从视图中隐藏,或者b)它之前的代码块失败。但是,由于您不会捕获Stripe_CardError,因此它必须是一种不同类型的异常。我现在的猜测是,你传递给条纹函数的一个变量出现了问题……未声明或正在尝试访问非对象的属性。

添加其他catch语句,看看是否得到了什么。唯一不能到达最后一条echo语句的方法是抛出一个未捕获的异常...你只是看不到而已。

这是在黑暗中拍摄,但有没有可能你的php环境中的异常报告被抑制或以其他一些不明显的方式处理?有时,生产环境被设置为忽略或记录异常,而不是向用户显示它们。请检查这一点,因为如果你没有看到它,它会在其他地方被捕获,并被记录或隐藏起来。

尝试在Try catch之前插入以下内容:

代码语言:javascript
运行
复制
ini_set('error_reporting', E_ALL);
票数 5
EN

Stack Overflow用户

发布于 2014-08-01 17:10:08

我知道这是一个迟来的回复,但我得到了完全相同的问题。我尝试在每一行代码后回声,回声停止后,尝试收费,我有我的“金额”设置为10美分(愚蠢),它应该是10欧元( 1000 ),条纹不能允许这么小的收费,一旦我增加到1000美分,它的工作。

代码语言:javascript
运行
复制
$charge = Stripe_Charge::create(array(
  "amount" => 50, // amount in cents, again <<THIS IS WHAT CAUSED MY ISSUE!!
  "currency" => "usd",
  "customer" => $customer->id,
  "card" => $token,
  "description" => $email));
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15994930

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档