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

PHP Knowledge เป็น บอร์ดรวามความรู้ php เน้นบทความ แนวทางการเขียนโปรแกรม บันทึกกันลืม เพื่อให้สมาชิกได้เขียนความรู้ที่ตัวเองมีให้สมาชิกท่านอื่นๆ ได้ เข้ามาอ่าน และ ไว้อ่านเองกันลืมด้วย

Moderators: mindphp, ผู้ดูแลกระดาน

Post Reply
User avatar
bankjittapol
PHP Super Member
PHP Super Member
Posts: 344
Joined: 21/10/2019 10:19 am

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

Post by bankjittapol » 06/11/2019 2:51 pm

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

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

Code: Select all

$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 ของเรา';

Code: Select all

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);  
}
 

Code: Select all

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

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

Code: Select all

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


จะได้เป็น

Code: Select all

<?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/

Post Reply

Return to “PHP Knowledge”

Users browsing this forum: No registered users and 4 guests