美文网首页php知识积累
一个空格引发的问题

一个空格引发的问题

作者: hey_沙子 | 来源:发表于2018-07-24 10:50 被阅读2次

微信支付成功,更改订单状态本来用curl调用java接口已经调通,后来需求变成了多店支付问题,然后也因为多个环境来回切换便弄了多个文件,通过软连接形式调用,发现总是更改订单状态失败

$oIdAndPId=$arr['out_trade_no'];
$domain=" http://xxx.beta.xxx.com/trade/getOrderStatusByP";
$_url = $domain."?out_trade_no=".$oIdAndPId;//这里out_trade_no就是给java传递的paymentId去更改payment表的支付状态
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $_url);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS);
$output = curl_exec($ch);
$a=curl_errno($ch);
if($a) {
    return curl_error($ch);
} else {
    $ret = json_decode($output, true);
    if ($ret['status'] == 0) { 
        file_put_contents("/server/logs/notify_success.txt", "_url ={$_url} \t  \t output_success=" . var_export($output, true) . "\t date=" . date('Y-m-d H:i:s', time()) . " \r\n", FILE_APPEND);
        return true;
     } else {
        file_put_contents("/server/logs/notify_fail.txt", "_url ={$_url} \t  \t output_fail=" . var_export($output, true) . "\t date=" . date('Y-m-d H:i:s', time()) . " \r\n", FILE_APPEND);
        return false;
     }
 }

1、记录日志发现$a输出错误码1

CURLE_UNSUPPORTED_PROTOCOL(1)

你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。

$ch = curl_init();发现输出null

根本不知道说的啥意思,然后百度说看phpinfo()查看是否安装curl相关类库,输出发现有,也不是这个问题,而且在其他文件写了简单的demo测试发现能使用curl
2、怀疑接口不是用post方式传输,改成get了,尝试把curl_setopt($ch, CURLOPT_POST, 1);去掉或者改为0发现还是不可以

3、 查看连接curl具体错误,获取一个cURL连接资源句柄的信息

  $info  = curl_ getinfo( $ch ); 

返回如下代码:

array (
  'url' => '     http://xxx.beta.xxx.com/trade/getOrderStatusByP?out_trade_no=1349161_309712298',
  'content_type' => NULL,
  'http_code' => 0,
  'header_size' => 0,
  'request_size' => 0,
  'filetime' => -1,
  'ssl_verify_result' => 0,
  'redirect_count' => 0,
  'total_time' => 0,
  'namelookup_time' => 0,
  'connect_time' => 0,
  'pretransfer_time' => 0,
  'size_upload' => 0,
  'size_download' => 0,
  'speed_download' => 0,
  'speed_upload' => 0,
  'download_content_length' => -1,
  'upload_content_length' => -1,
  'starttransfer_time' => 0,
  'redirect_time' => 0,
  'certinfo' => 
  array (
  ),
  'primary_ip' => '',
  'redirect_url' => '',
)

发现content_type为null,添加如下代码

$header[] = "Content-type: application/x-www-form-urlencoded";
curl_setopt($oCurl, CURLOPT_HTTPHEADER,$header);

还是不可以
4、发现软连接文件所属组和所有用户不对,其他的都是develop,只有这个文件是root

aa.png
更改了所有组和所有者发现还是不可以
5、回想这次和上次的变化,应该只有软连接这块,然后对比之前文件方法,发现双引号中间有个空格,然后去掉发现可以
$domain=" http://mobile.beta.yiwang.com/trade/getOrderStatusByP";

然后看curl_errno($ch);输出的提示
你的URL传递给libcurl的使用协议,这libcurl的不支持。支持可能是你没有使用一个编译时的选项,它可以是一个拼写错的协议字符串,或者只是一个协议的libcurl没有代码。

相关文章

  • 一个空格引发的问题

    微信支付成功,更改订单状态本来用curl调用java接口已经调通,后来需求变成了多店支付问题,然后也因为多个环境来...

  • Mac开发之一个Bug引发的三个思考

    既然是一个Bug引发的思考,自然要先上Bug,如上动图所示,在输入了空格标题之后,引发一个问题,就是光标依然在文本...

  • 一个空格引发的思考

    抛出问题 线上问题总是不期而遇的,这天产品来说 线上订单的imei号(手机序列号)末尾怎么多了个空格,影响到我们B...

  • [前端]一个空格引发的血案

    今天同事在写小程序的时候,遇到一个问题,就是开始是想实现这种效果 是用flex布局,中间是grow等于1,内容是铺...

  • Makefile:一个空格引发的惨案

    从一个bug说起 最早发现makefile关于空格的"特性"是源于一个bug. 在某个项目中, 我需要大量拷贝相同...

  • 几个空格引发的事件

    【路之由自01】每日分享,这是第206篇原创 这本来是一件只需要我花三秒就能够做完的事情,最后却花了三个多小时。还...

  • 空格问题

    工作中提交表单会遇到很奇怪空格,它的16进制值为\u00A0,含义实际上是指不间断的空格,实际上我们常用的空格应该...

  • 一个空格引发的编译错误

    今天对APP进行了简单的修改,增加了几个资源图片,很想当然地认为增加几个图片而已,并不会引起什么问题,可是没有想到...

  • 去除空格问题

    1、使用NSString中的stringByTrimmingCharactersInSet:[NSCharacte...

  • 解决TextView多个空格只显示一个空格问题

    用\u0020\u0020 表示半角空格\u3000\u3000\u3000 全角空格&删除#160; ...

网友评论

    本文标题:一个空格引发的问题

    本文链接:https://www.haomeiwen.com/subject/hefluftx.html