qq_22411871 2023-12-26 18:10 采纳率: 100%
浏览 15
已结题

PHP+Nginx无法收到微信支付回调通知

请教:Nginx + PHP ,在微信支付中v3api SDK,支付成功后,PHP页面无法收到回调参数
但是在access.log里能打印出微信支付请求过来的数据。
Nginx报:
2023/12/26 17:57:53 [info] 6488#0: *268 client 121.51.58.170 closed keepalive connection
2023/12/26 17:57:53 [info] 6488#0: *269 client 121.51.58.170 closed keepalive connection

  • 写回答

7条回答 默认 最新

  • weixin_41932391 2024-01-04 17:51
    关注

    在access.log里能打印出微信支付请求过来的数据就说明微信已经回调到你的地址了。
    你的回调逻辑没有实现就说明你回调接口程序有报错,尝试自己打印文本日志。
    程序每一步输出文档日志来确定走到哪一步了,是哪一步程序有问题。用这种方式来自查程序问题
    使用我提供的一个封装好的输出文本日志方法试试,日志目录自己按实际情况修改,给目录写入权限

    function write_log($group, $file, $message, $output, $write = false, $debug = false){
        $logDir = dirname(dirname(__FILE__)).'/logs/';
        $timestamp = time();
        $time = date("Y-m-d H:i:s", $timestamp);
        $date = date("Ymd", $timestamp);
        if (empty($output)) {
            $logFile = $logDir."debug003_log_".$date.".log";
        } else {
            $logFile = $logDir.$output."_log_".$date.".log";
        }
        $logContent = "{$time} [$group] 发生在文件:{$file} 消息:{$message}".chr(10).chr(13);
    
        $chkres = $write || $debug;
        if ($chkres){
            //wite_text($logContent, $logFile);
            $fp = fopen($logFile, 'a') or die('Unable to open file: '.$logFile);
            fwrite($fp, $logContent);
            fclose($fp);
        }
        if (isset($_REQUEST['sdkdebug']) && !empty($_REQUEST['sdkdebug'])){
            echo $logContent;
        }
    }
    
    
    

    调用方法:

     write_log('INFO', 'Base.php', '输出内容', 'pay_log', true);
    
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论 编辑记录
查看更多回答(6条)

报告相同问题?

问题事件

  • 系统已结题 1月12日
  • 已采纳回答 1月4日
  • 赞助了问题酬金15元 12月28日
  • 创建了问题 12月26日