收藏
回答

微信支付V3支付报错,curl_setopt_array():?

微信v3支付,平台证书已经下载好了, 按照给的代码执行,报如下错误

curl_setopt_array(): cannot represent a stream of type Output as a STDIO FILE*

代码如下:


回答关注问题邀请回答
收藏

3 个回答

  • 海导
    海导
    2023-03-23

    文件路径..\vendor\guzzlehttp\guzzle\src\Utils.php 搜“debugResource”简单改代码就好。

    更改前代码
      public static function debugResource($value = null)
        {
            if (\is_resource($value)) {
                return $value;
            }
            if (\defined('STDOUT')) {
                return \STDOUT;
            }
    	
            return \GuzzleHttp\Psr7\Utils::tryFopen('php://output', 'w');
        }
    
    更改后代码   
    public static function debugResource($value = null)
        {
            if (\is_resource($value)) {
                return $value;
            }
            if (\defined('STDOUT')) {
                return \STDOUT;
            }
    		$out='php://output';
    		if(strtoupper(substr(PHP_OS,0,3))==='WIN'){ //判断系统改输出模式
    			$out='php://stdout';
    		}
            return \GuzzleHttp\Psr7\Utils::tryFopen($out, 'w');
        }
    
    2023-03-23
    有用 1
    回复
  • 李威
    李威
    2023-12-13
    可以直接关闭调试模式(debug => false),因为开启调试模式后,会将请求日志输出到 php://output 以便于调试,但这在 windows 下会报错。
    
    2023-12-13
    有用
    回复
  • 我在故我思
    我在故我思
    2022-05-10

    我也是纠结这个一天多没找到是什么问题,最后发现官方推荐的wechatpay-php在windows环境下会有这个问题,部署到linux环境就没问题。

    2022-05-10
    有用
    回复 3
    • 星儿
      星儿
      2022-05-11
      是的呢,要修改一下php代码兼容windows就可以了。
      2022-05-11
      回复
    • dylan2
      dylan2
      2022-11-09
      怎么处理呢?
      2022-11-09
      回复
    • HelloWorld
      HelloWorld
      2023-01-28
      怎么处理??
      2023-01-28
      回复
登录 后发表内容