Skip to content

ตรวจสอบด้วย Base64

ตรวจสอบสลิป TrueMoney Wallet ด้วยรูปภาพที่เข้ารหัส Base64

Endpoint

http
POST /verify/truewallet

URL เต็ม: https://api.easyslip.com/v2/verify/truewallet

การยืนยันตัวตน

จำเป็น ดูคู่มือการยืนยันตัวตน

http
Authorization: Bearer YOUR_API_KEY
Content-Type: application/json

Request

พารามิเตอร์

พารามิเตอร์ประเภทจำเป็นคำอธิบาย
base64stringใช่รูปภาพเข้ารหัส Base64 (มีหรือไม่มี data URI prefix)
remarkstringไม่หมายเหตุ (1-255 ตัวอักษร)
matchAccountbooleanไม่จับคู่ผู้รับกับบัญชีที่ลงทะเบียน
matchAmountnumberไม่จำนวนเงินที่คาดหวัง
checkDuplicatebooleanไม่ตรวจสอบสลิปซ้ำ

รูปแบบ Base64

รองรับทั้ง 2 รูปแบบ:

# มี data URI prefix
data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA...

# ไม่มี prefix
/9j/4AAQSkZJRgABAQAA...

ข้อกำหนดรูปภาพ

ข้อกำหนดค่า
ขนาดสูงสุด (หลังถอดรหัส)4 MB
รูปแบบที่รองรับJPEG, PNG, GIF, WebP

ตัวอย่าง

bash
curl -X POST https://api.easyslip.com/v2/verify/truewallet \
  -H "Authorization: Bearer YOUR_API_KEY" \
  -H "Content-Type: application/json" \
  -d '{
    "base64": "data:image/jpeg;base64,/9j/4AAQSkZJRgABAQAA...",
    "checkDuplicate": true
  }'
javascript
// แปลงไฟล์เป็น Base64
const fileToBase64 = (file) => {
  return new Promise((resolve, reject) => {
    const reader = new FileReader();
    reader.onload = () => resolve(reader.result);
    reader.onerror = reject;
    reader.readAsDataURL(file);
  });
};

// ตรวจสอบสลิป
const verifyTrueWallet = async (base64, options = {}) => {
  const response = await fetch('https://api.easyslip.com/v2/verify/truewallet', {
    method: 'POST',
    headers: {
      'Authorization': 'Bearer YOUR_API_KEY',
      'Content-Type': 'application/json'
    },
    body: JSON.stringify({ base64, ...options })
  });

  const result = await response.json();

  if (!result.success) {
    throw new Error(result.error.message);
  }

  return result.data;
};

// การใช้งานกับ file input
const fileInput = document.getElementById('slipImage');
fileInput.addEventListener('change', async (e) => {
  const file = e.target.files[0];
  const base64 = await fileToBase64(file);

  try {
    const slip = await verifyTrueWallet(base64, { checkDuplicate: true });
    console.log('จำนวนเงิน:', slip.rawSlip.amount);
  } catch (error) {
    console.error('Error:', error.message);
  }
});
php
function verifyTrueWallet(string $base64, array $options = []): array
{
    $apiKey = getenv('EASYSLIP_API_KEY');
    $data = array_merge(['base64' => $base64], $options);

    $ch = curl_init();
    curl_setopt_array($ch, [
        CURLOPT_URL => 'https://api.easyslip.com/v2/verify/truewallet',
        CURLOPT_RETURNTRANSFER => true,
        CURLOPT_POST => true,
        CURLOPT_HTTPHEADER => [
            'Authorization: Bearer ' . $apiKey,
            'Content-Type: application/json'
        ],
        CURLOPT_POSTFIELDS => json_encode($data)
    ]);

    $response = curl_exec($ch);
    curl_close($ch);

    $result = json_decode($response, true);

    if (!$result['success']) {
        throw new Exception($result['error']['message']);
    }

    return $result['data'];
}

// การใช้งาน
$imageData = file_get_contents('/path/to/truemoney-slip.jpg');
$base64 = base64_encode($imageData);

$slip = verifyTrueWallet($base64, ['checkDuplicate' => true]);
echo "จำนวนเงิน: " . $slip['rawSlip']['amount'];
python
import requests
import base64
import os

def verify_truewallet(base64_data: str, **options) -> dict:
    response = requests.post(
        'https://api.easyslip.com/v2/verify/truewallet',
        headers={
            'Authorization': f'Bearer {os.environ["EASYSLIP_API_KEY"]}',
            'Content-Type': 'application/json'
        },
        json={'base64': base64_data, **options}
    )

    result = response.json()

    if not result['success']:
        raise Exception(result['error']['message'])

    return result['data']

# การใช้งาน
with open('./truemoney-slip.jpg', 'rb') as f:
    image_data = f.read()
    base64_data = base64.b64encode(image_data).decode('utf-8')

slip = verify_truewallet(base64_data, checkDuplicate=True)
print(f"จำนวนเงิน: {slip['rawSlip']['amount']}")

Response

สำเร็จ (200)

json
{
  "success": true,
  "data": {
    "isDuplicate": false,
    "amountInSlip": 500.00,
    "rawSlip": {
      "transactionId": "12345678901234",
      "date": "2024-01-15T14:30:00+07:00",
      "amount": 500.00,
      "sender": {
        "name": "นาย ผู้โอน ทดสอบ"
      },
      "receiver": {
        "name": "นาย รับเงิน ทดสอบ",
        "phone": "08x-xxx-4567"
      }
    }
  },
  "message": "TrueMoney Wallet slip verified successfully"
}

Error Responses

Base64 ไม่ถูกต้อง (400)

json
{
  "success": false,
  "error": {
    "code": "VALIDATION_ERROR",
    "message": "base64 must be a valid base64 encoded string"
  }
}

รูปภาพใหญ่เกินไป (400)

json
{
  "success": false,
  "error": {
    "code": "IMAGE_SIZE_TOO_LARGE",
    "message": "Image size exceeds 4MB limit"
  }
}

หมายเหตุ

  • บีบอัดรูปภาพก่อนเข้ารหัสเพื่อลดขนาด payload
  • การใส่ data URI prefix เป็นทางเลือก แต่รองรับ

Bank Slip Verification API for Thai Banking