我正在查看条带api和文档,以便草拟一些关于付款不成功时会发生什么的逻辑。 The api shows以下代码包含拒绝卡片时的特定例外情况:
try {
// Use Stripe's library to make requests...
} catch(\Stripe\Error\Card $e) {
// Since it's a decline, \Stripe\Error\Card will be caught
$body = $e->getJsonBody();
$err = $body['error'];
print('Status is:' . $e->getHttpStatus() . "\n");
print('Type is:' . $err['type'] . "\n");
print('Code is:' . $err['code'] . "\n");
// param is '' in this case
print('Param is:' . $err['param'] . "\n");
print('Message is:' . $err['message'] . "\n");
}
但是,如果查看the charge object,它会包含一个结果对象,其属性包含有关费用状态的详细信息(approved_by_network,rejected_by_network,not_sent_to_network和reversed_after_approval)。
Stripe\Charge JSON: {
"outcome": {
"network_status": "approved_by_network",
"reason": null,
"risk_level": "normal",
"seller_message": "Payment complete.",
"type": "authorized"
}
}
我的问题就变成了,如果在收费被拒绝时抛出异常,你怎么能检查收费对象的结果属性?我目前的想法是检查try catch块中的charge charge对象属性,但是我觉得可能有些东西我不知道或者不完全理解?我想我只是在寻找一些保证,这是处理这个问题的正确方法。