我是PHP cURL和REST API的新手 下面是我的代码,我得到纯白页,没有错误。 我是以正确的方式做的吗? 如果是,请指导我这样做的正确方法。
PHP代码
<?php
if(isset($_POST['submit'])){
$custMobile = $_POST['mobile_number'];
$orderAmount = $_POST['order_amount'];
$curl_post_data = array(
"appId" => 'SOME ID',
"secretKey" => 'xyz3cvb3nmLK54Jhg5654dtafnjmjjn35456657',
"orderId" => 123456,
"orderAmount" => $orderAmount,
"customerPhone" => $custMobile,
"returnUrl" => 'http://localhost/pgtest/thanks.php',
);
$service_url = 'MY API URL';
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $service_url);
curl_setopt($ch, CURLOPT_POST, 1);// set post data to true
curl_setopt($ch, CURLOPT_POSTFIELDS,$curl_post_data); // post data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
curl_close ($ch);
$obj = json_decode($json);
echo $obj;
}
?>
前端
<form action="process.php" method="POST" role="form" >
<legend>PAYEMENT GATEWAY CHECK</legend>
<div class="form-group">
<label for="">Order Amount</label>
<input type="text" name="order_amount" class="form-control" id="" placeholder="Order Amount">
</div>
<div class="form-group">
<label for="">Mobile Number</label>
<input type="text" name="mobile_number" class="form-control" id="" placeholder="Mobile Number">
</div>
<input type="submit" class="btn btn-primary" name="submit" value="Pay Now">
</form>
请指导我这个。有关REST API和CURL的一些知识很有帮助。
答案 0 :(得分:2)
请添加curl_error()方法,以便找到生产者中的错误。
$ch = curl_init();
curl_setopt($ch, CURLOPT_URL, $service_url);
curl_setopt($ch, CURLOPT_POST, 1);// set post data to true
curl_setopt($ch, CURLOPT_POSTFIELDS,$curl_post_data); // post data
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$json = curl_exec($ch);
$error = curl_error($ch);
echo '<pre>';print_r($error);die;
curl_close ($ch);
与SSL证书问题有关:无法获得本地颁发者证书&#39;错误。显然,这适用于发送CURL请求的系统(并且没有服务器接收请求)
1)从http://curl.haxx.se/ca/cacert.pem
下载最新的cacert.pem2)将以下行添加到php.ini(如果这是共享主机,你不能访问php.ini,那么你可以将它添加到public_html中的.user.ini)
curl.cainfo = /路径/到/下载/ cacert.pem
3)默认情况下,FastCGI进程将每300秒解析一次新文件(如果需要,您可以通过添加这里建议的几个文件来更改频率https://ss88.uk/blog/fast-cgi-and-user-ini-files-the-new-htaccess/)