Payment Gateway

API Documentation v1.0

Production Ready

សេចក្តីផ្តើម

ស្វាគមន៍មកកាន់ឯកសារណែនាំស្តីពីការប្រើប្រាស់ **Payment Gateway API**។ ប្រព័ន្ធនេះអនុញ្ញាតឱ្យអ្នកបង្កើត KHQR Code សម្រាប់ទទួលការទូទាត់ប្រាក់ពីអតិថិជន និងពិនិត្យមើលស្ថានភាពនៃការបង់ប្រាក់ពីធនាគារបានភ្លាមៗ និងមានសុវត្ថិភាពខ្ពស់។


ការកំណត់បឋម (Configuration)

Payment Base URL
https://www.payment-system.dev/api/v1/
Your API Token
5644795371:V4NSVyqjn9VtAt0GWU7hwQdAN0BCRSU5Kxc

GET

១. បង្កើត QR Code (Generate QR)

ប្រើប្រាស់ Endpoint នេះដើម្បីបង្កើតរូបភាព KHQR សម្រាប់បង្ហាញទៅកាន់អតិថិជនស្កេនបង់ប្រាក់។

ប៉ារ៉ាម៉ែត្រតម្រូវ (URL Parameters)៖

ប៉ារ៉ាម៉ែត្រ ប្រភេទ ការពិពណ៌នា
type string តម្លៃថេរត្រូវតែដាក់: generate_qr
api_token string លេខកូដសម្ងាត់ API Token របស់អ្នក
amount float / decimal ចំនួនទឹកប្រាក់ដែលត្រូវទូទាត់ (ឧទាហរណ៍៖ 0.01)

លីងឧទាហរណ៍ជាក់ស្តែង (Example URL)៖

https://www.payment-system.dev/api/v1/?type=generate_qr&api_token=5644795371:V4NSVyqjn9VtAt0GWU7hwQdAN0BCRSU5Kxc&amount=0.01

លទ្ធផលទទួលបាន (JSON Response)៖

{
  "code": 201,
  "status": "success",
  "message": "បង្កើតបាន Qr Code ជោគជ័យ。",
  "data": [
    {
      "qr": "00020101021229210017chean_punlok@aclb52045999530384054040.015802KH5913CHEAN PUNLORK6010Phnom Penh62690313CHEAN PUNLORK021008833320150119INV-1782986991000440711Terminal 01993400131782986991825011317830733918256304C192",
      "md5": "57414f137d1a137c5b475dcca5b9782c",
      "bill_number": "INV-178298699100044",
      "merchant_name": "CHEAN PUNLORK",
      "status": "pending",
      "credit_balance": "150",
      "link_qr_code": "https://www.payment-system.dev/api/v1/qr/57414f137d1a137c5b475dcca5b9782c.png",
      "expire_date": "2026-07-02 17:14:52"
    }
  ],
  "errors": null
}
**ចំណាំ:** អ្នកត្រូវរក្សាទុកតម្លៃ md5 ទុកក្នុង Database ដើម្បីយកទៅឆែកមើលស្ថានភាពបង់ប្រាក់នៅជំហានបន្ទាប់។

GET

២. ពិនិត្យស្ថានភាពបង់ប្រាក់ (Check MD5)

ប្រើប្រាស់សម្រាប់ហៅទៅឆែកជាបន្តបន្ទាប់ (Polling រៀងរាល់ ៣ ទៅ ៥ វិនាទីម្តង) ដើម្បីដឹងថាអតិថិជនបានបង់ប្រាក់រួចរាល់ហើយឬនៅ។

ប៉ារ៉ាម៉ែត្រតម្រូវ (URL Parameters)៖

ប៉ារ៉ាម៉ែត្រ ប្រភេទ ការពិពណ៌នា
type string តម្លៃថេរត្រូវតែដាក់: check_md5
api_token string លេខកូដសម្ងាត់ API Token របស់អ្នក
md5 string តម្លៃកូដ md5 ដែលទទួលបានពីការបង្កើត QR កូដកាលពីជំហានទី១

លីងឧទាហរណ៍ជាក់ស្តែង (Example URL)៖

https://www.payment-system.dev/api/v1/?type=check_md5&api_token=5644795371:V4NSVyqjn9VtAt0GWU7hwQdAN0BCRSU5Kxc&md5=57414f137d1a137c5b475dcca5b9782c

ស្ថានភាពឆ្លើយតបផ្សេងៗ (Response Scenarios)

Pending ករណី៖ កំពុងរង់ចាំការស្កេនបង់ប្រាក់ពីអតិថិជន
{
  "code": 200,
  "status": "pending",
  "message": "កំពុងរង់ចាំការបង់ប្រាក់...",
  "bakong_response": {
    "responseCode": 1,
    "responseMessage": "Transaction could not be found. Please check and try again.",
    "errorCode": 1,
    "data": null
  }
}
Expired ករណី៖ ហួសពេលកំណត់ (លើសពី ៥ នាទី)
{
  "code": 400,
  "status": "expired",
  "message": "QR Code នេះបានផុតកំណត់ ៥ នាទីហើយ",
  "credit_balance": "150",
  "bakong_response": {
    "responseCode": 1,
    "responseMessage": "Transaction could not be found. Please check and try again.",
    "errorCode": 1,
    "data": null
  }
}
Failed ករណី៖ ប្រតិបត្តិការរអាក់រអួល ឬបរាជ័យ
{
  "status": "failed",
  "credit_balance": "92",
  "bakong_response": {
    "responseCode": 0,
    "responseMessage": "Success",
    "data": {
      "hash": "6595fe7796f6999c7b063b8cbe08855b0696d9f8b18a4fa81ab18f00f8666cd8",
      "currency": "USD",
      "amount": 0.01,
      "description": "61874098349 | KHQR"
    }
  }
}
Success ករណី៖ អតិថិជនបានបង់ប្រាក់ជោគជ័យ 🎉
{
  "status": "success",
  "credit_balance": "144",
  "bakong_response": {
    "responseCode": 0,
    "responseMessage": "Success",
    "errorCode": null,
    "data": {
      "hash": "6aa5bd7de6214338b72bd512057db9cbdd61837c04698f61301f2fa1a48f4da6",
      "fromAccountId": "aclbkhppxxx@aclb",
      "toAccountId": "chean_punlok@aclb",
      "currency": "USD",
      "amount": 0.01,
      "description": "test",
      "createdDateMs": 1782991482000,
      "acknowledgedDateMs": 1782991485000,
      "externalRef": "61834949466"
    }
  }
}