请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

错误日志记录不了

在getPaySignature方法中,当请求微信服务器,返回不是SUCCESS时,记录日志,但是这个日志好像记录不了???

private function getPaySignature($wxOrderData)
{
    $wxOrder = \WxPayApi::unifiedOrder($wxOrderData);
    if ($wxOrder['return_code'] != 'SUCCESS' ||
        $wxOrder['result_code'] != 'SUCCESS') {
        // ????无法记录
        Log::record($wxOrder, 'error');
        Log::record('获取预支付订单失败', 'error');
    }
    // prepay_id
    $this->recordPreOrder($wxOrder);
    $signature = $this->sign($wxOrder);
    return $signature;
}

但是如果改成下面的方式就可以

Log::init([
    'type' => 'File',
    'path' => LOG_PATH,
    'level' => ['error']
]);
Log::record($wxOrder, 'error');
Log::record('获取预支付订单失败', 'error');

请问老师以上的原因出在哪里?还有为什么这个地方只记录日志不需要抛出异常呢?

正在回答 回答被采纳积分+3

1回答

7七月 2018-05-18 03:34:47

首先你确定代码走到这里了吗。其次是是否抛出异常这个没有定论,根据自己的实际情况来决定。

0 回复 有任何疑惑可以回复我~
  • 提问者 Luke0001 #1
    感谢老师的回答。
    1.代码肯定走到这里,不然我提出的修改方法也不会执行成功
    2.看了文档,“系统在请求结束后会自动调用Log::save方法”,但是由于记录日志的地方没有抛出异常,所以代码继续往下执行,然后报错,“未定义数组索引: prepay_id”,所以没有记录到日志
    3.如果在记录完日志后,直接在下面加个return,可以正常记录日志
     4.以上是我的个人看法 但是我不知道具体问题在哪QAQ
    回复 有任何疑惑可以回复我~ 2018-05-18 21:08:40
  • 提问者 Luke0001 #2
    题外话:老师是日常修仙吗还是录制新课程,三点多的回复,好像每次看到老师录视频也是这个点23333
    回复 有任何疑惑可以回复我~ 2018-05-18 21:09:50
问题已解决,确定采纳
还有疑问,暂不采纳
微信客服

购课补贴
联系客服咨询优惠详情

帮助反馈 APP下载

慕课网APP
您的移动学习伙伴

公众号

扫描二维码
关注慕课网微信公众号