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
ติดตั้ง
npm install @checkslip/sdkเริ่มใช้งาน
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 get github.com/Checkslip/sdk-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
ติดตั้ง
composer require checkslip/sdkถ้าโปรเจกต์ยังไม่มีไคลเอนต์ PSR-18 ให้ติดตั้งเพิ่ม ที่นิยมคือ Guzzle ไคลเอนต์จะหาตัวที่ติดตั้งไว้เอง จึงไม่ต้องตั้งค่าอะไรเพิ่ม
composer require checkslip/sdk guzzlehttp/guzzleเริ่มใช้งาน
<?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
ติดตั้ง
cargo add checkslipตัวอย่างใช้ tokio เป็น async runtime
cargo add tokio --features "macros rt-multi-thread"เริ่มใช้งาน
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 ของแต่ละภาษา
ฟิลด์ทั้งหมดของคำขอและคำตอบอยู่ที่ ตรวจสอบรายการโอนกับธนาคาร