代码:
array( 'ver'=>'1.0', 'sign'=>$str, 'appid'=>'lcce1fdddaa5de4322', 'time'=>"$time", 'nonce'=>'49735441495760803893403522385895' ), "params"=>array("phone"=>"17691200000"), "id"=>"80" ); $jsonparams = json_encode($params); echo $jsonparams; list($returnCode, $returnContent, $err) = http_post_json($url, $jsonparams); echo $returnCode; var_dump($returnContent); echo $err; ?>
执行过程中,会报两个错。
(1)SSL certificate problem: unable to get local issuer certificate。
在php.ini
文件中加入下边两行代码后,这个错误消失。
curl.cainfo="D:/wamp64/ca-bundle.crt" openssl.cafile="D:/wamp64/ca-bundle.crt"
(2)以上错误消失后,就出现了
502 Bad Gateway The proxy server received an invalid response from an upstream server.
现在真的是没有办法了。。即使参数,或者是签名错误,那也是对方服务器返回一个错误码,但是这个502是连返回错误码的机会都不给了。求大神帮忙解决。
wamp服务器怎么会由502?502是反向代理错误。
你本地的apache+php+mysql+windows是反向代理模式运行还是apache2 handler形式?
明显是对方网站挂了啊……浏览器直接打开也是502
提示比较明显了。后端服务有问题,所以 upstream 返回有 502。
对方的后端服务在响应你的请求时返回了一个代理不接受的结果(一般是 4XX,5XX)。
有两种情况:
对方后端服务本来认为不应该有 5XX 的结果(或者对方后端服务宕了),所以 upstream 不支持接受这类结果。那就是让对方改服务,不要返回 5xx 错误。
对方后端服务认为支持用 4xx/5xx 表示一些结果(常见于 Restful 服务),那需要对方修改 upstream 配置,支持这类结果作为正常结果返回。
设置:CURLOPT_SSL_VERIFYPEER =>假
请求页面,接口调试,用postman。非常好用的一个工具。模拟请求,可以方便拿到请求实例代码