SDK

เรียก Checkslip API จากโค้ดของคุณด้วย SDK ทางการ 4 ภาษา: JavaScript/TypeScript, Go, PHP และ Rust ติดตั้งจาก registry ของแต่ละภาษา แล้วเรียก API ผ่านเมธอดของ SDK ซึ่งสร้างคำขอ HTTP ให้

ทุกตัวอย่างอ่าน API key จากตัวแปรสภาพแวดล้อม CHECKSLIP_API_KEY ให้เก็บ key ไว้ฝั่งเซิร์ฟเวอร์เท่านั้น อ่านเพิ่มที่ ยืนยันตัวตนด้วย API key

คำสั่งติดตั้งไม่ระบุเวอร์ชัน จึงได้เวอร์ชันล่าสุดตอนติดตั้ง ดูเวอร์ชันและสิ่งที่เปลี่ยนในแต่ละรุ่นได้ที่หน้าของ SDK บน registry

หักเครดิตเฉพาะเมื่อผลเป็น FOUND ใช้กับ SDK ทุกภาษา ดูความหมายของผลทุกแบบที่ ผลตรวจรายการโอน

JavaScript / TypeScript

SDK บน npm · ซอร์สโค้ดบน GitHub

ติดตั้ง

ติดตั้ง JavaScript / TypeScript
npm install @checkslip/sdk

เริ่มใช้งาน

เริ่มใช้งาน (JavaScript / TypeScript)
import { Checkslip } from "@checkslip/sdk";

const checkslip = new Checkslip({ apiKey: process.env.CHECKSLIP_API_KEY });

const check = await checkslip.slips.lookup({
  qr: "00330006000001010306902126302105340875102TH9104F86F",
});

if (check.outcome === "FOUND" && "sender" in check.slip) {
  console.log(check.slip.amount.satang / 100, "THB");
}

Go

SDK บน pkg.go.dev · ซอร์สโค้ดบน GitHub

ติดตั้ง

ติดตั้ง Go
go get github.com/Checkslip/sdk-go

เริ่มใช้งาน

เริ่มใช้งาน (Go)
package main

import (
	"context"
	"fmt"
	"log"
	"os"

	"github.com/Checkslip/sdk-go"
)

func main() {
	client := checkslip.NewClient(os.Getenv("CHECKSLIP_API_KEY"))

	res, err := client.Slips.Lookup(context.Background(), &checkslip.LookupParams{
		QR: "00330006000001010306902126302105340875102TH9104F86F",
	})
	if err != nil {
		log.Fatal(err)
	}

	switch res.Outcome {
	case checkslip.OutcomeFound:
		fmt.Println("amount:", res.Slip.Amount)
	case checkslip.OutcomeNotFound:
		fmt.Println("the bank has no transfer for this reference")
	default:
		fmt.Println("outcome:", res.Outcome)
	}
}

PHP

SDK บน Packagist · ซอร์สโค้ดบน GitHub

ติดตั้ง

ติดตั้ง PHP
composer require checkslip/sdk

ถ้าโปรเจกต์ยังไม่มีไคลเอนต์ PSR-18 ให้ติดตั้งเพิ่ม ที่นิยมคือ Guzzle ไคลเอนต์จะหาตัวที่ติดตั้งไว้เอง จึงไม่ต้องตั้งค่าอะไรเพิ่ม

ติดตั้ง PHP
composer require checkslip/sdk guzzlehttp/guzzle

เริ่มใช้งาน

เริ่มใช้งาน (PHP)
<?php

use Checkslip\Client;
use Checkslip\Model\Slip;

$checkslip = new Client(apiKey: getenv('CHECKSLIP_API_KEY'));

$check = $checkslip->slips->lookup(
    slip: '00330006000001010306902126302105340875102TH9104F86F',
);

if ($check->isFound() && $check->slip instanceof Slip) {
    echo $check->slip->amount->toBaht(), " THB\n";
}

Rust

SDK บน crates.io · ซอร์สโค้ดบน GitHub

ติดตั้ง

ติดตั้ง Rust
cargo add checkslip

ตัวอย่างใช้ tokio เป็น async runtime

ติดตั้ง Rust
cargo add tokio --features "macros rt-multi-thread"

เริ่มใช้งาน

เริ่มใช้งาน (Rust)
use checkslip::{Client, LookupRequest, Outcome};

#[tokio::main]
async fn main() -> checkslip::Result<()> {
    let client = Client::from_env()?; // reads CHECKSLIP_API_KEY

    let check = client
        .slips()
        .lookup(LookupRequest::qr("00330006000001010306902126302105340875102TH9104F86F"))
        .await?;

    match check.outcome {
        Outcome::Found => {
            let slip = check.slip.as_full().expect("FOUND carries the full record");
            println!("{} satang from {}", slip.amount.satang, slip.sender.bank.code);
        }
        other => println!("outcome {other}"),
    }
    Ok(())
}

ส่งรูปสลิปแทนข้อความ QR ก็ได้ วิธีเขียนอยู่ใน README ของแต่ละภาษา

ฟิลด์ทั้งหมดของคำขอและคำตอบอยู่ที่ ตรวจสอบรายการโอนกับธนาคาร