PHP cURL不工作只给我白屏

时间:2016-05-05 12:14:18

标签: php curl

我是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的一些知识很有帮助。

1 个答案:

答案 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.pem

2)将以下行添加到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/