Roh*_*hal 0 php curl instamojo
我目前正在使用instamojo支付网关.
我有相同的付款ID,并使用以下代码获取付款状态
echo $cUrl = 'https://test.instamojo.com/api/1.1/payments/' . $payment_id;
(function_exists('curl_init')) ? '' : die('cURL Must be installed for geturl function to work. Ask your host to enable it or uncomment extension=php_curl.dll in php.ini');
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $cUrl);
curl_setopt($ch, CURLOPT_HEADER, FALSE);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, TRUE);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($ch, CURLOPT_HTTPHEADER, array("X-Api-Key:90a1c44nmb8ac4e65nmnm3eab5b308cf",
"X-Auth-Token:8164083509a889951fhjhjh1ff89c4"));
$response = curl_exec($ch);
$error_number = curl_errno($ch);
$error_message = curl_error($ch);
curl_close($ch);
$response_obj = json_decode($response, true);
echo "Eror number: $error_number<br />";
echo "Eror message: $error_message<br />";
print_r($response_obj);
if($response_obj['success'] == false) {
$message = json_encode($response_obj['message']);
return Array('payment' => Array('status' => $message));
}
if(empty($response_obj) || is_null($response_obj)){
return Array('payment' => Array('status' => 'No response from the server.'));
}
else{
return $response_obj;
}
Run Code Online (Sandbox Code Playgroud)
但是当我在我的localhost上运行此代码时,我正在得到正确的结果.
但是当我在我的服务器上运行它(即000webhost.com)时却收到错误:
Warning: curl_setopt() [function.curl-setopt]: CURLOPT_FOLLOWLOCATION cannot be activated when safe_mode is enabled or an open_basedir is set in /home/a2963438/public_html/wp-content/plugins/instamojo-register/imojoregister_shortcode.php on line 18
Run Code Online (Sandbox Code Playgroud)
我正在使用000webhost.com的免费帐户,所以我无法启用safe_mode或编辑任何php.ini.
所以我想问一下,有没有其他方法来实现这个网址的响应?
小智 7
你可能想看看Guzzle.
http://docs.guzzlephp.org/en/latest/
http://docs.guzzlephp.org/en/latest/quickstart.html
根据他们在这里的常见问题解答:http://docs.guzzlephp.org/en/latest/faq.html#does-guzzle-require-curl
Guzzle需要cURL吗?
不可以.Guzzle可以使用任何HTTP处理程序来发送请求.这意味着Guzzle可以与cURL,PHP的流包装器,套接字和非阻塞库(如React)一起使用.您只需要配置HTTP处理程序以使用不同的发送请求的方法.
注意
Guzzle历史上只使用cURL发送HTTP请求.cURL是一个了不起的HTTP客户端(可以说是最好的),Guzzle会在可用时默认继续使用它.这种情况很少见,但有些开发人员没有在他们的系统上安装cURL或遇到特定版本的问题.通过允许可交换的HTTP处理程序,Guzzle现在可以更加自定义,并且能够适应更多开发人员的需求.