gpt4 book ai didi

javascript - 使用 php catch 显示 stripe 中的错误

转载 作者:行者123 更新时间:2023-11-28 00:22:57 25 4
gpt4 key购买 nike

当我使用 strip 卡号时,我试图在页面上显示错误,该卡号应该会触发 strip 错误,该号码 4000000000000002。该错误似乎在控制台中显示为 402,但是我似乎无法掌握如何使用 php 输出它。

我更习惯javascript,我不确定try和catch是如何工作的,我的假设是try运行代码直到抛出错误然后catch运行。我只是想吐出位于 strip 代码充电点的页面上的任何错误。

这是我的代码

try {
$customer = Stripe_Customer::create(array(
'email' => $email,
'card' => $token,
"description" => $quantity . " copies of The Economic Definition of Ore -Cut-off Grades in Theory and Practice"));

$charge = Stripe_Charge::create(array(
"amount" => $total, // amount in cents, again
"currency" => "usd",
'customer' => $customer->id,
"metadata" => array("First Name:" => $firstName, "Last Name:" => $lastName)));
$success = '<div class="alert alert-success">
<strong>Success!</strong> Your payment was successful. For $' . $customertotal . ', and you have ordered ' . $quantity . ' copies </div>';

$to = $email; // note the comma
// subject
$subject = 'Economic Definition of Ore Purchase';
// message
$message = '
<html>
<head>
<title>Sumary of Purchase</title>
</head>
<body>
<table>
<tr>
<td> Hi ' . $firstName . '</td>
</tr>
<tr>
<td>
<p>Here is a summary of your recent purchase.</p>
</td>
</tr>
<tr>
<td>
<p>Your total purchase is $'.$customertotal . ' </p>
<p>The number of books you have ordered is <b>' . $quantity . '</b> </p></td>
</tr>
</table>
</body>
</html>
';

// To send HTML mail, the Content-type header must be set
$headers = 'MIME-Version: 1.0' . "\r\n";
$headers .= 'Content-type: text/html; charset=iso-8859-1' . "\r\n";

// Additional headers
$headers .= 'To: '. $firstName .' <' . $email . ' > ' . "\r\n";
$headers .= 'From: Comet <info@cometstrategy.com>' . "\r\n";
// $headers .= 'Bcc: birthdaycheck@example.com' . "\r\n";

// Mail it
mail($to, $subject, $message, $headers);
}

catch(\Stripe\Error\Card $e){
$e_json = $e->getJsonBody();
$error = $e_json['error'];
}
}?>
<span class="payment-success">
<?= $success ?>
<?= $error ?>
</span>

我已经根据 this 更新了我的代码问题。当我使用错误代码信用卡号码时,错误不会显示,我不确定我做错了什么。

try {
$customer = Stripe_Customer::create(array(
'email' => $email,
'card' => $token,
"description" => $quantity . " copies of The Economic Definition of Ore -Cut-off Grades in Theory and Practice"
));
$charge = Stripe_Charge::create(array(
"amount" => $total, // amount in cents, again
"currency" => "usd",
'customer' => $customer->id,
"metadata" => array("First Name:" => $firstName, "Last Name:" => $lastName))
);

$successTest = 1;
$success = '<div class="alert alert-success">
<strong>Success!</strong> Your payment was successful. For $' . $customertotal . ', and you have ordered ' . $quantity . ' copies </div>';
}

catch(Stripe_CardError $e) {
$error1 = $e->getMessage();
} catch (Stripe_InvalidRequestError $e) {
// Invalid parameters were supplied to Stripe's API
$error2 = $e->getMessage();
} catch (Stripe_AuthenticationError $e) {
// Authentication with Stripe's API failed
$error3 = $e->getMessage();
} catch (Stripe_ApiConnectionError $e) {
// Network communication with Stripe failed
$error4 = $e->getMessage();
} catch (Stripe_Error $e) {
// Display a very generic error to the user, and maybe send
// yourself an email
$error5 = $e->getMessage();
} catch (Exception $e) {
// Something else happened, completely unrelated to Stripe
$error6 = $e->getMessage();
}

if ($successTest!=1)
{
?>
<span class="payment-success">
<?= $error1 ?>
<?= $error2 ?>
<?= $error3 ?>
<?= $error4 ?>
<?= $error5 ?>
<?= $error6 ?>
</span>
<?php
}
}
?>

<span class="payment-success">
<?= $success ?>
</span>

最佳答案

你可以捕获所有这些,响应也是 JSON:

catch (Exception $e) {
$body = $e->getJsonBody();
$err = $body['error'];
$errorMessage = $err['message'];
}

关于javascript - 使用 php catch 显示 stripe 中的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29806434/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com