iT邦幫忙

2018 iT 邦幫忙鐵人賽
DAY 6
3
自我挑戰組

使用PHP串接金流相關API系列 第 6

Day 05 - 使用 curl

cURL 函式

這次範例中使用的是 cURL (Client URL Library) ,透過 GET/POST 協定和 LINE Pay 伺服器溝通。使用的方法只需要「初始化、設定、執行、關閉 」這四個步驟。

  • 初始化
    curl_init($url);初始化 一個新的 session,回傳 cURL handle。
    $url 也可以在下一個步驟設定參數時給予, curl_setopt($ch, CURLOPT_URL, $url);

  • 設定
    curl_setopt(); 設定 cURL 發送請求時的參數,詳細可使用參數設定可以參考官方文件的說明,這邊會列舉一些之後範例會使用到的設定。

    • 若以 POST 發送 request 需要補上 POST 設定。
    curl_setopt($ch, CURLOPT_POST, true); 
    curl_setopt($ch, CURLOPT_POSTFIELDS, json_encode($params));
    
    • CURLOPT_RETURNTRANSFER 設為 true,curl 就只會將結果傳回,不會輸出在畫面上。
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);  
    
    • 發送 request 時,LINE Pay 所需的驗證資訊如下:
          (1) channel id
          (2) channel secret key
          (可以在這裡取得):
      $header = array(
        'Content-Type: application/json; charset=UTF-8'
        , 'X-LINE-ChannelId: 1234567890'
        , 'X-LINE-ChannelSecret: iamrutenbackendeddie',
      );
      curl_setopt($ch, CURLOPT_HTTPHEADER, $header);
    

                            linepay_header

  • 執行
    $result = json_decode(curl_exec($ch), true);
    執行設定好參數的 cURL session,成功 return TRUE, 失敗 return FALSE ,若有設定 CURLOPT_RETURNTRANSFER=TRUE ,成功則會 return 執行的結果。

  • 關閉
    curl_close($ch); 關閉指定的 cURL session,並釋放所有資源。


上一篇
Day 04 - Linepay (3) 提供哪些 API ?
下一篇
Day 06 - Linepay (4) 付款 reserve API
系列文
使用PHP串接金流相關API30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

2 則留言

0
Summer
iT邦新手 3 級 ‧ 2017-12-16 23:55:08

棒棒 :)

2
掰掰工程師
iT邦新手 5 級 ‧ 2017-12-17 00:02:13
<?php
jason_encode();
?>
rutentest iT邦新手 5 級 ‧ 2017-12-17 01:24:26 檢舉
$result = json_decode(curl_exec($ch), true);

&

$result = json_decode(curl_exec($ch), 1);

return ?

我要留言

立即登入留言