过去两天,我一直在尝试使用CURL连接到支付网关API,返回JSON数据。但每次调用它时,它给予以下错误
cURL错误#:在813毫秒后无法连接到api.sandbox.vm.co.mz端口18352:无法连接到服务器
我的curl代码是:
$curl = curl_init();
curl_setopt_array($curl,
array(
CURLOPT_PORT => "18352",
CURLOPT_URL => "http://api.sandbox.vm.co.mz:18352/ipg/v1x/c2bPayment/singleStage/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => json_encode($fields),
CURLOPT_HTTPHEADER => array(
'Content-Type' => 'application/json',
'Authorization' => 'Bearer ' . $this->getToken(),
'origin' => 'developer.mpesa.vm.co.mz',
'Connection' => 'keep-alive'
)
)
);
我的支付网关文档URL是Documentation Link
当我在postmanor中调用这个api,在本地运行时,它会给出我想要的响应,但是当它从服务器调用时,curl找不到api的服务器。
我做错了什么
请给予解决方案
1条答案
按热度按时间vbkedwbf1#
您的标题不会像这样工作。
使用此选项:
您有
CURLOPT_MAXREDIRS => 10,
,但没有CURLOPT_FOLLOWLOCATION =>true,
,因此前者没有意义。FOLLOWLOCATION
选项还可以消除@LawrenceCherone提到的问题。CURLOPT_FOLLOWLOCATION
应该包含在每个curl要求中。不正确。你得到的错误有点说
CURLOPT_PORT => "18352",
是不正确的,这是如果URL是正确的。如果不能访问文档,我提供帮助的能力将受到限制。
为什么他们的文档是密码保护的,这超出了我的理解范围。
我不得不怀疑我是否会和这家公司做生意就凭这样愚蠢的东西。
我单击API链接,得到以下内容: