Jumat, 13 Oktober 2023

CURL tidak berfungsi pada web HTTPS

Saya ingin membuat fungsi untuk menampilkan halaman getToken dengan url dari BKN dengan memasukkan beberapa parameter. Saya menggunakan library dari cURL. Saat di jalankan hasilnya error dikarenakan masalah certificate pada web HTTPS. 

Beberapa kali di coba untuk dijalankan, namun tetap saja tidak berhasil. Kemudian saya mencoba browsing untuk mencari solusi dari permasalahan yang saya alami. Dan alhamdulillah solusi ditemukan, yaitu dengan mematikan (disable/false) Verifikasi SSL nya.

Sebagai contoh :


$options = array(
      CURLOPT_RETURNTRANSFER => true, // to return web page
      CURLOPT_FOLLOWLOCATION => TRUE ,
      CURLOPT_URL            => $url,
      CURLOPT_USERAGENT      => $_SERVER['HTTP_USER_AGENT'],
      CURLOPT_TIMEOUT        => 40,
      CURLOPT_COOKIEJAR      => $tmpfname,
      CURLOPT_COOKIEFILE     => $tmpfname,

      ##Disable verify SSL##
      CURLOPT_SSL_VERIFYHOST => 0, // or false
      CURLOPT_SSL_VERIFYPEER => 0, // or false
  );

Jika merujuk pada fungsi yang saya buat, maka akan tampak kode program sebagai berikut :

       <?php
         $username ='??????';
        $password ='??????';
        $curl = curl_init();


        curl_setopt_array($curl, array(
          CURLOPT_URL => 'https://url......',
          CURLOPT_RETURNTRANSFER => true,
          CURLOPT_ENCODING => '',
          CURLOPT_MAXREDIRS => 10,
          CURLOPT_TIMEOUT => 0,
          CURLOPT_FOLLOWLOCATION => true,
          CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
          CURLOPT_CUSTOMREQUEST => 'POST',
          CURLOPT_POSTFIELDS => 'grant_type=client_credentials',
          ##Disable verify SSL##
          CURLOPT_SSL_VERIFYHOST => 0, // or false
          CURLOPT_SSL_VERIFYPEER => 0, // or false
          CURLOPT_HTTPHEADER => array(
            'Content-Type: application/x-www-form-urlencoded',
            'Authorization: Basic ??????',
            'Cookie: pdns=1091068938.58148.0000'
          ),
        ));
       
        $response = curl_exec($curl);
       
        curl_close($curl);
        // echo $response;
        $jsonp= json_decode($response,1);
        $token  =$jsonp["access_token"];// kode Provider peserta, bukan kdPPK
        echo $token;

        ?>



Alhamdulillah token bisa tampil...

sumber : https://app.sko.dev/post/curl-tidak-berfungsi-pada-web-https

Tidak ada komentar:

Posting Komentar