การใช้ API ของไปรษณีย์ไทย

ตอบกระทู้

รูปแสดงอารมณ์
:icon_plusone: :like: :plusone: :gfb: :-D :) :( :-o 8O :? 8) :lol: :x :P :oops: :cry: :evil: :twisted: :roll: :wink: :!: :?: :idea: :arrow: :| :mrgreen: :angry: :baa: :biggrin:
รูปแสดงอารมณ์อื่นๆ

BBCode เปิด
[img] เปิด
[url] เปิด
[Smile icon] เปิด

กระทู้แนะนำ
   

มุมมองที่ขยายได้ กระทู้แนะนำ: การใช้ API ของไปรษณีย์ไทย

การใช้ API ของไปรษณีย์ไทย

โดย bankjittapol » 06/11/2019 2:51 pm

ขั้นตอนนี้คือขั้นตอนหลังจากที่เราได้ API มาแล้ว
สิ่งที่เราจะได้ คือ token ชนิด API REST

Url ส่วนของ GetToken GetItems และ Token ที่เราได้

โค้ด: เลือกทั้งหมด

$api_token_url = 'https://trackapi.thailandpost.co.th/post/api/v1/authenticate/token';
$api_track_url = 'https://trackapi.thailandpost.co.th/post/api/v1/track';
$token_key = 'Token ของเรา';

โค้ด: เลือกทั้งหมด

function api_request($url, $token, $content = null){
     
    $headers = [
        'Authorization: Token '. $token,
        'Content-Type: application/json'
    ];
     
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($content) );
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
    $result = curl_exec( $ch );
    curl_close($ch);
       
    return json_decode($result, true);  
}
 

โค้ด: เลือกทั้งหมด

$items = [
    'status' => 'all',
    'language' => 'TH',
    'barcode' => [
        ' เลขพัสดุ'
    ]
];

//หรือ ถ้ามีเลขพัสดุหลายตัว
$items = [
    'status' => 'all',
    'language' => 'TH',
    'barcode' => [
        'เลขพัสดุ1', 'เลขพัสดุ2', 'เลขพัสดุ3'
    ]
];

โค้ด: เลือกทั้งหมด

$res_token = api_request($api_token_url, $token_key);
$res_items = api_request($api_track_url, $res_token['token'], $items);
print_r($res_items);  //ผลลัพธ์


จะได้เป็น

โค้ด: เลือกทั้งหมด

<?php

$api_token_url = 'https://trackapi.thailandpost.co.th/post/api/v1/authenticate/token';
$api_track_url = 'https://trackapi.thailandpost.co.th/post/api/v1/track';
$token_key = 'Token ของเรา';

function api_request($url, $token, $content = null){
     
    $headers = [
        'Authorization: Token '. $token,
        'Content-Type: application/json'
    ];
     
    $ch = curl_init();
    curl_setopt( $ch, CURLOPT_URL, $url );
    curl_setopt( $ch, CURLOPT_POSTFIELDS, json_encode($content) );
    curl_setopt( $ch, CURLOPT_POST, true );
    curl_setopt( $ch, CURLOPT_RETURNTRANSFER, true);
    curl_setopt( $ch, CURLOPT_SSL_VERIFYPEER, false );
    curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
 
    $result = curl_exec( $ch );
    curl_close($ch);
       
    return json_decode($result, true);  
}
$items = [
    'status' => 'all',
    'language' => 'TH',
    'barcode' => [
        ' เลขพัสดุ'
    ]
];

$res_token = api_request($api_token_url, $token_key);
$res_items = api_request($api_track_url, $res_token['token'], $items);
print_r($res_items);  //ผลลัพธ์

?>

อ้างอิง

https://www.comscidev.com/886-php-thailandpost-track-api-demo-code/
http://www.somkiat.cc/thailandpost-tracking-api/

ข้างบน