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

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

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

ภาพประจำตัวสมาชิก
bankjittapol
PHP Super Member
PHP Super Member
โพสต์: 344
ลงทะเบียนเมื่อ: 21/10/2019 10:19 am

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

โพสต์ที่ยังไม่ได้อ่าน โดย bankjittapol »

ขั้นตอนนี้คือขั้นตอนหลังจากที่เราได้ 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/
  • Similar Topics
    ตอบกลับ
    แสดง
    โพสต์ล่าสุด

ผู้ใช้งานขณะนี้

สมาชิกกำลังดูบอร์ดนี้: ไม่มีสมาชิกใหม่ และบุคลทั่วไป 60