2 回答
TA贡献1725条经验 获得超7个赞
例外情况可能有所不同。但是在你的代码中,你只是试图赶上一个例外,那就是.但是,如果例外是另一个呢?显然,PHP执行流不会转到您的捕获块,因此您看不到消息。在图像中,显示您的代码捕获了 。PayPal\Exception\PayPalConnectionExceptionlolPayPalHttp\HttpException
因此,您需要尝试设置多个块。这意味着您可以根据需要添加任意数量的异常,如下面的代码所示:catch
public static function actionGetorder($orderId)
{
try {
// 3. Call PayPal to get the transaction details
$client = PayPalClient::client();
$response = $client->execute(new OrdersGetRequest($orderId)); //The order ID isn't valid so it will give the error
var_dump ($response->result->payer->email_address);
print "Status: {$response->result->status}\n";
} catch (PayPalHttp\HttpException $e) {
echo $e->getMessage();
} catch (PayPal\Exception\PayPalConnectionException $e) {
echo $e->getMessage();
} finally {
echo 'If no exception has already been caught, show your own custom message';
}
}
现在的问题是,您如何知道应该使用哪些例外?好吧,可以从您在块内部使用的代码中知道它。try {}
在这种情况下,请检查$client->execute(new OrdersGetRequest($orderId));引发任何异常。如果这样做,请在块中使用它们。PayPalClient::client(); orcatch
希望这对你有所帮助!
TA贡献1853条经验 获得超6个赞
我有一个路由问题到类,所以这就是代码在yii2上的工作方式,我希望它能帮助别人:
try
{
// $orderId = base64_decode($orderId);
$client = PayPalClient::client();
$response = $client->execute(new OrdersGetRequest($orderId));
$status = $response->result->status;
$email_cliente = $response->result->payer->email_address;
if ($status != 'COMPLETED')
{
\Yii::$app->session->setFlash('error', \Yii::t("app", "problema_pago"));
return $this->redirect(['../web/pagar']);
}
}
catch (\PayPalHttp\HttpException $e) {
echo $e->getMessage();
} catch (\PayPal\Exception\PayPalConnectionException $e) {
echo $e->getMessage();
}
- 2 回答
- 0 关注
- 106 浏览
添加回答
举报