แจก อัตราค่าบริการไปรษณีย์ด่วนพิเศษ(EMS) ในประเทศ เป็นแบบ json

อัตราค่าบริการไปรษณีย์ด่วนพิเศษ(EMS) ในประเทศ ทำเป็นแบบ json เอาไว้ใช้งานเจ้าค๊า
พอดิบพอดีช่วงนี้ต้องซื้อของออนไลน์(แก้ Hardcode ให้น้องด้วย) แล้วมันก็น่าหงุดหงิดตรงที่ เวลาซื้อของต้องไปบวกราคาค่าส่ง EMS เอง -*-

ก็เลย เอาวะ เสียเวลานิดหน่อย ทำเอาไว้ใช้เลยดีกว่าง่ายดี เวลาคำนวนเงินใน shopping cart ก็บวกๆ ค่าส่งไปเลย จบ 

(ขอบคุณเจ้าของโฮสต์ด้วยจ้าที่ให้ใช้ฟรี ไม่คิดค่าบริการ จุ๊บๆ )

จะเอาไปใช้ยังไง?
ถ้าใน PHP ก็ file_get_contents เลยจ้า เสร็จแล้วก็ json_decode ออกมา


แต่ก่อนจะเข้าตัวอย่างก็บอกก่อนว่ามันมี 2เรท นะคือ
  1. ราคาส่งพัสดุธรรมดา (normal)
  2. ราคาส่งพัสดุแบบ EMS (ems)
อื่นๆ
  • Currency เป็น THB
  • หน่วยเป็น gram(กรัม) *ก่อนคำนวณปรับให้เป็นกรัมก่อนนะ


ตัวอย่าง เช่น
// น้ำหนักสินค้าปัจจุบัน 1250กรัม
$current_weight = 1250;
// ราคาค่าส่งพัสดุ
$price = 0;
// ใส่ TRUE เราจะได้เป็น Array ไม่ใส่จะได้เป็น Object
$ems = json_decode(file_get_contents('http://maxsitepro.com/ems.php'), TRUE);
// เลือกใช้เรทแบบ ems
for($i=0; $i<count($ems['ems']); $i++){
    
    $item = $ems['ems'][$i];
    $prevent_item = $ems['ems'][$i-1];

    if($prevent_item!==NULL && $current_weight > $ems['ems'][0]['weight']){

        if($current_weight <= $item['weight'] && $current_weight > $prevent_item['weight']){
            $price = $item['price'];
        }
    }else if($prevent_item===NULL && $current_weight === $ems['ems'][0]['weight']){
        $price = $item['price'];
    }
}
// ลองแสดงราคา
var_dump($price); //int 82 (หน่วยเป็น บาท)

ทีนี้เราก็เอาราคานี้ล่ะ ไปบวกกับสินค้าของเราเลย ไม่ต้องให้คนซื้อมานั่งคิดเองบวกเองตอนจะไปจ่ายเงินที่ตู้ ATM ละ เคป่ะ

ปล.โค้ดเหี้ยมาก(ไม่ผ่าน performance) แนะนำว่าอย่าก๊อบไปใช้ทันที เอาไปปรับปรุงก่อนนะเธอว์
ปล.2 อัพเดทราคาจาก ไปรษณีย์ไทย ครั้งสุดท้าย วันที่ 2 เดือน 2 ปี2556

ขอบคุณที่อุดหนุนครับ
ปล.3 มีอะไรแจ้งมาได้ครับ จะได้ปรับปรุงต่อไป
ปล.4 ทำเป็น API แจกแม่งเลยดีมั้ย? #ห๊ะ
ปล.5 จะต่อยอดขึ้นไปไว้บน github ยินดีร่วมอุดมการณ์ครับ ฮ่าาาาาา

มีปล่อยเพิ่มที่ไทยเสียวบอร์ดครับ (สมัครไว้นานแล้ว พึ่งจะมาเข้าสังคมเค้า อิอิ)

ลิ้งด้านล่างนี้เป็น Demo ครับ เขียน Class ตัวเล็กๆ ตัวหนึ่งไว้ใช้งาน
http://ems-thai-json.googlecode.com/files/EMS-IN-TH.rar

ส่วนตัวนี้เป็นโค้ดของ JSON ครับเผื่อใครอยากได้เอาไปใช้ที่ Host ของตัวเอง เป็น SVN ครับผม
https://ems-thai-json.googlecode.com/svn/trunk/






Comments