วิธีการเชื่อมต่อจะแบ่งออกเป็นทั้งหมด 3 รูปแบบดังนี้
Code Template
การเชื่อมต่อแบบใช้ Code Template โดยหน้า UI การชำระเงินเป็นของ ChillPay ทางร้านค้าสามารถทำการ Copy code html template และนำไปวางบนหน้าเว็บไซต์ของร้านค้า โดยมีข้อมูล Parameter ตามตารางที่ 1 โดยส่งค่ามายังระบบของ ChillPay ตาม URL ดังต่อไปนี้
- URL สำหรับ POST ข้อมูลบน Sandbox: https://sandbox-cdnv3.chillpay.co/Payment/
- URL สำหรับ POST ข้อมูลบน Production: https://cdn.chillpay.co/Payment/

ตารางที่ 1 : รายละเอียดของ Html Tag Parameter เพื่อใช้สำหรับสร้าง Form ในการส่งค่ามายังระบบ ChillPay
No. | Parameter | Data Type | Length | Mandatory/ Optional | Description | Remark |
1 | data-merchantid | string | 15 | M | Merchant ID. | เป็นค่าที่จะออกให้โดย ChillPay เช่น M000001 |
2 | data-orderno | string | 20 | M | เลขที่ Order หรือรหัสอ้างอิงของรายการ | เป็นค่าที่ออกโดยร้านค้า ต้องเป็นค่าเฉพาะที่ไม่ซ้ำกัน และต้องเป็นตัวเลขอย่างเดียว หรือตัวเลขผสมรวมกับตัวอักษรภาษาอังกฤษเท่านั้น ห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ |
3 | data-customerid | string | 100 | M | รหัสอ้างอิงของลูกค้า(End User) หรือชื่อลูกค้า | เช่น CUS000001 หรือ นายแบงก์ มีมาก สามารถเว้นวรรคตรงกลางได้เท่านั้น ไม่รองรับการเว้นวรรคตำแหน่งแรกหรือตำแหน่งสุดท้าย และห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ |
4 | data-amount | number | 12 | M | จำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยม | ตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25 ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00 |
5 | data-mobileno | string | 10 | O | เบอร์โทรศัพท์มือถือของลูกค้า(End User) | ในกรณีที่เลือกชำระผ่านช่องทาง K PLUS จำเป็นต้องระบุเบอร์มือถือของลูกค้าที่ลงทะเบียนในระบบของ K PLUS เท่านั้น |
6 | data-description | string | 100 | O | ข้อมูลรายละเอียดในการชำระเงิน | เช่น “สินค้าไอโฟน X 64GB Color-Black” |
7 | data-currency | string | 3 | M | ข้อมูลรหัสสกุลเงิน ให้กำหนดค่าเป็น “764” | เช่น 764ดูรายละเอียดในภาคผนวก ฉ. |
8 | data-lang | string | 2 | O | รหัสภาษาที่จะแสดงบนหน้าเว็บไซต์ชำระเงินของทางธนาคาร | TH: ภาษาไทยEN: ภาษาอังกฤษ |
9 | data-routeno | number | 2 | M | Route No. Default: 1 | เป็นค่าที่จะออกให้โดยระบบ ChillPay เช่น 1 หากร้านค้าต้องการใช้งานมากกว่า 1 เว็บไซต์ สามารถติดต่อได้ที่ customersupport@chillpay.co |
10 | data-clientip | string | 20 | M | ข้อมูล IP Address ของลูกค้า | เช่น 203.255.255.155 |
11 | data-apikey | string | 100 | M | รหัส API Key ที่ใช้ในการเชื่อมต่อระบบ | เป็นค่าที่จะออกให้โดย ChillPay |
12 | data-tokenflag | string | 1 | O | ในกรณีที่เลือกชำระเงินด้วย Credit Card หากต้องการชำระเงินโดยใช้ Token ให้ระบุค่าเป็น “Y” | Y: ชำระเงินแบบใช้ TokenN: ชำระเงินแบบไม่ใช้ Token (เป็นค่า Default) |
13 | data-cardtoken | string | 100 | O | ข้อมูล Token สำหรับการชำระเงินด้วย Credit Card หากระบุข้อมูล data-tokenflag เป็น “Y” จำเป็นต้องระบุข้อมูลในส่วนนี้ด้วย | ค่า Token จะเป็นค่าที่ออกให้โดยระบบ ChillPay |
14 | data-creditmonth | number | 2 | O | จำนวนเดือนที่ผ่อนชำระ สำหรับการทำรายการผ่อนชำระผ่าน Credit Card | เช่น 3 , 8 , 10 |
15 | data-shopid | string | 2 | O | ค่า Shop ID สำหรับการทำรายการผ่อนชำระผ่าน Credit Card | 01 : สำหรับร้านค้าเป็นคนรับภาระดอกเบี้ย02: สำหรับลูกค้า (End User) เป็นคนรับภาระดอกเบี้ย |
16 | data-imageurl | string | 255 | O | URL ของรูปสินค้าสำหรับแสดงบนหน้าชำระเงินของ Rabbit LINE Pay | เช่น https://image.com/image-product-01.jpg |
17 | data-custemail | string | 100 | O | ข้อมูล Email ของลูกค้า | เช่น test@test.com |
HTML Form
การเชื่อมต่อแบบ HTML Form โดยร้านค้าสามารถออกแบบ UI เองได้ ในกรณีที่ร้านค้าต้องการสร้างหน้าจอ (UI) เฉพาะของร้านค้าเอง สามารถใช้ข้อมูล Parameter ตามตารางที่ 2 เพื่อสร้างฟอร์มสำหรับส่งค่า POST มายังระบบ ChillPay
ตารางที่ 2 : Request Parameter สำหรับส่งค่า POST ในการทำรายการ Payment มายังระบบ ChillPay
No. | Parameter | Data Type | Length | Mandatory/ Optional | Description | Remark |
1 | MerchantCode | string | 15 | M | Merchant ID. | เป็นค่าที่จะออกให้โดย ChillPay เช่น M000001 |
2 | OrderNo | string | 20 | M | เลขที่ Order หรือรหัสอ้างอิงของรายการ | เป็นค่าที่ออกโดยร้านค้า ต้องเป็นค่าเฉพาะที่ไม่ซ้ำกัน และต้องเป็นตัวเลขอย่างเดียว หรือตัวเลขผสมรวมกับตัวอักษรภาษาอังกฤษเท่านั้น ห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ |
3 | CustomerId | string | 100 | M | รหัสอ้างอิงของลูกค้า (End User) หรือชื่อลูกค้า | เช่น CUS000001 หรือ นายแบงก์ มีมาก สามารถเว้นวรรคตรงกลางได้เท่านั้น ไม่รองรับ การเว้นวรรคตำแหน่งแรกหรือตำแหน่งสุดท้าย และห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ |
4 | Amount | number | 12 | M | จำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยม | ตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25 ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00 |
5 | PhoneNumber | string | 10 | O | เบอร์โทรศัพท์มือถือของลูกค้า(End User) | ในกรณีที่เลือกชำระผ่านช่องทาง K PLUS จำเป็นต้องระบุเบอร์มือถือของลูกค้าที่ลงทะเบียนในระบบของ K PLUS เท่านั้น |
6 | Description | string | 100 | O | ข้อมูลรายละเอียดในการชำระเงิน | เช่น “สินค้าไอโฟน X 64GB Color-Black” |
7 | ChannelCode | string | 30 | M | รหัสอ้างอิงแทนธนาคารที่รับชำระ | เช่น internetbank_bayดูรายละเอียดในภาคผนวก จ. |
8 | Currency | string | 3 | M | ข้อมูลรหัสสกุลเงิน ให้กำหนดค่าเป็น “764” | เช่น 764 ดูรายละเอียดในภาคผนวก ฉ. |
9 | LangCode | string | 2 | O | รหัสภาษาที่จะแสดงบนหน้าเว็บไซต์ชำระเงินของทางธนาคาร | TH: ภาษาไทยEN: ภาษาอังกฤษ |
10 | RouteNo | number | 2 | M | Route No. Default: 1 | เป็นค่าที่จะออกให้โดยระบบ ChillPay เช่น 1 หากร้านค้าต้องการใช้งานมากกว่า 1 เว็บไซต์ สามารถติดต่อได้ที่ customersupport@chillpay.co |
11 | IPAddress | string | 20 | M | ข้อมูล IP Address ของลูกค้า | เช่น 203.255.255.155 |
12 | ApiKey | string | 100 | M | รหัสอ้างอิงที่ใช้ในการเชื่อมต่อระบบ | เป็นค่าที่จะออกให้โดย ChillPay |
13 | TokenFlag | string | 1 | O | ในกรณีที่เลือกชำระเงินด้วย Credit Card หากต้องการชำระเงินโดยใช้ Token ให้ระบุค่าเป็น “Y” | Y: ชำระเงินแบบใช้ TokenN: ชำระเงินแบบไม่ใช้ Token (เป็นค่า Default) |
14 | CreditToken | string | 100 | O | ข้อมูล Token สำหรับการชำระเงินด้วย Credit Card หากระบุข้อมูล TokenFlag เป็น “Y” จำเป็นต้องระบุข้อมูลในส่วนนี้ด้วย | ค่า Token จะเป็นค่าที่ออกให้โดยระบบ ChillPay |
15 | CreditMonth | number | 2 | O | จำนวนเดือนที่ผ่อนชำระ สำหรับการทำรายการผ่อนชำระผ่าน Credit Card | เช่น 3 , 8 , 10 |
16 | ShopID | string | 2 | O | ค่า Shop ID สำหรับการทำรายการผ่อนชำระผ่าน Credit Card | 01 : สำหรับร้านค้าเป็นคนรับภาระดอกเบี้ย02: สำหรับลูกค้า (End User) เป็นคนรับภาระดอกเบี้ย |
17 | ProductImageUrl | string | 255 | O | URL ของรูปสินค้าสำหรับแสดงบนหน้าชำระเงินของ Rabbit LINE Pay | เช่น https://image.com/image-product-01.jpg |
18 | CustEmail | string | 100 | O | ข้อมูล Email ของลูกค้า | เช่น test@test.com |
19 | CardType | string | 50 | O | ข้อมูล Card Type | ข้อมูล Card Type ที่ลูกค้าต้องการชำระ (เฉพาะ Krungsri Consumer และ Krungsri Frist Choice) ดูข้อมูลตาม ภาคผนวก ฌ. |
20 | CheckSum | string | 32 | M | ผลลัพธ์ที่ได้จากการนำค่าทั้งหมดไปเข้ารหัส MD5 | ใช้เพื่อยืนยันความถูกต้องของรายการ |
ระบบ ChillPay Payment Gateway ได้เพิ่มระดับความปลอดภัยและความเชื่อมั่นในการรับ-ส่งข้อมูลจากระบบของร้านค้ามายัง ChillPay โดยให้ร้านค้าทำการเข้ารหัสของข้อมูลด้วยวิธีการ MD5 Checksum ข้อมูลก่อนส่งเข้ามาที่ระบบของ ChillPay โดยดำเนินการดังนี้
- นำค่าข้อมูลจาก Parameter ทั้งหมดจากข้อ 1 – 19 จากตารางที่ 2 มาเรียงต่อกัน
- เพิ่มค่าสุดท้าย MD5 Secret Key ที่ทาง ChillPay กำหนดให้มาต่อท้ายตัวแปรในตารางที่ 2 (ร้านค้าจะต้องเก็บข้อมูล MD5 Secret Key ไว้เป็นความลับระหว่างร้านค้า และ ระบบ ChillPay เท่านั้น ห้ามเปิดเผยข้อมูล MD5 Secret Key ให้กับผู้ไม่เกี่ยวข้องทราบเป็นอันขาด)
- ทำการ Hash ข้อมูลด้วยวิธีการ MD5 ดูรายละเอียดได้จาก https://en.wikipedia.org/wiki/MD5 เมื่อ Hash แล้วจะได้ค่า MD5 Hash นำมาใช้เป็นค่า Parameter สำหรับตัวแปร CheckSum (ตามข้อ 20 ในตารางที่ 2.2) เพื่อ POST รายการมาที่ระบบ ChillPay Payment Gateway
** หมายเหตุ **
- ค่า CheckSum เป็นการนำค่าจาก Parameter ต่าง ๆ ตามตารางที่ 2 (ข้อ 1 – 19) มาเรียงต่อกัน แล้วต่อท้ายด้วย MD5 Secret Key (ที่ได้รับจากทาง ChillPay) ดังนี้
- MerchantCode + OrderNo + CustomerId + Amount + PhoneNumber + Description + ChannelCode + Currency + LangCode + RouteNo + IPAddress + ApiKey + TokenFlag + CreditToken + CreditMonth + ShopID + ProductImageUrl + CustEmail + CardType + MD5 Secret Key
- จากนั้นนำข้อมูลที่เรียงกันทั้งหมดนี้ไปเข้ารหัสด้วยฟังก์ชั่น MD5 Hashing จึงจะได้เป็นค่า CheckSum
- ตัวอย่าง การนำข้อมูลมาเรียงต่อกันเพื่อเข้าฟังก์ชั่น MD5
- XXXX180523154918100001200000888889999TestPaymentcreditcard764TH1205.55.66.177XXXXbbbbddddssssaaaabbbbssssXXXXMDSECRETKEYXXXX
ตัวอย่าง การสร้างฟอร์มในการชำระเงิน เพื่อ POST ข้อมูลมายังหน้าเว็บไซต์ของ ChillPay Payment Gateway
<!DOCTYPE html>
<html><head>
<meta charset="utf-8" />
<title>Payment</title>
</head>
<body>
<form id="form1" action="https://sandbox-cdnv3.chillpay.co/Payment/" method="post">
<input type="hidden" name="MerchantCode" value="XXXX">
<input type="hidden" name="OrderNo" value="00001">
<input type="hidden" name="CustomerId" value="00003">
<input type="hidden" name="Amount" value="20000">
<input type="hidden" name="PhoneNumber" value="0888889999">
<input type="hidden" name="Description" value="Test Payment">
<input type="hidden" name="ChannelCode" value="creditcard ">
<input type="hidden" name="Currency" value="764">
<input type="hidden" name="LangCode" value="TH">
<input type="hidden" name="RouteNo" value="1">
<input type="hidden" name="IPAddress" value="192.1.1.177">
<input type="hidden" name="ApiKey" value="XXXX">
<input type="hidden" name="TokenFlag" value="N">
<input type="hidden" name="CreditToken" value="">
<input type="hidden" name="CreditMonth" value="6">
<input type="hidden" name="ShopID" value="">
<input type="hidden" name="ProductImageUrl" value="">
<input type="hidden" name="CustEmail" value="">
<input type="hidden" name="CardType" value="">
<input type="hidden" name="CheckSum" value="XXXX">
</form>
</body></html>
API
การเชื่อมต่อแบบ API โดยร้านค้าสามารถออกแบบ UI เองได้ ในกรณีที่ร้านค้าต้องการเชื่อมต่อเป็นแบบ API สามารถใช้ข้อมูล Parameter ตามตารางที่ 2 เพื่อใช้สำหรับส่งข้อมูลในรูปแบบ Method POST มายังระบบ ChillPay โดยทำการเรียกมายัง URL ดังต่อไปนี้
- URL สำหรับ POST ข้อมูลบน Sandbox : https://sandbox-appsrv2.chillpay.co/api/v2/Payment/
- URL สำหรับ POST ข้อมูลบน Production : https://appsrv.chillpay.co/api/v2/Payment/
ตัวอย่าง การเรียก Request Payment Service (Code ภาษา PHP)
<?php
$curl = curl_init();
curl_setopt_array($curl, array(
CURLOPT_URL => "https://sandbox-appsrv2.chillpay.co/api/v2/Payment/",
CURLOPT_RETURNTRANSFER => true,
CURLOPT_ENCODING => "",
CURLOPT_MAXREDIRS => 10,
CURLOPT_TIMEOUT => 30,
CURLOPT_HTTP_VERSION => CURL_HTTP_VERSION_1_1,
CURLOPT_CUSTOMREQUEST => "POST",
CURLOPT_POSTFIELDS => "MerchantCode=XXXX&OrderNo=00001&CustomerId=100001&Amount=25000&PhoneNumber=0890000000&Description=Test-Payment&ChannelCode=internetbank_bay&Currency=764&LangCode=TH&RouteNo=1&IPAddress=127.0.0.1&ApiKey=XXXX&CustEmail=test@test.com&CheckSum=XXXX",
CURLOPT_HTTPHEADER => array(
"Cache-Control: no-cache",
"Content-Type: application/x-www-form-urlencoded"
),
));
$response = curl_exec($curl);
$err = curl_error($curl);
curl_close($curl);
if ($err) {
echo "cURL Error #:" . $err;
} else {
echo $response;
}
ตัวอย่าง การเรียก Request Payment Service (Code ภาษา C# .NET)
var client = new RestClient("https://sandbox-appsrv2.chillpay.co/api/v2/Payment/");
var request = new RestRequest(Method.POST);
request.AddHeader("cache-control", "no-cache");
request.AddHeader("Content-Type", "application/x-www-form-urlencoded");
request.AddParameter("form-data", "MerchantCode=XXXX&ChannelCode=internetbank_bay&RouteNo=1&OrderNo=00001&Amount=5000&CustomerId=C000001&Description=test-payment&PhoneNumber=0880999999&LangCode=TH&ApiKey=XXXX&CustEmail=test@test.com&CheckSum=XXXX", ParameterType.RequestBody);
IRestResponse response = client.Execute(request);
ตารางที่ 3 : Response Parameter ที่ส่งกลับไปให้ Server ของทางร้านค้า
No. | Parameter | Data Type | Length | Description | Remark |
1 | Status | number | 1 | รหัสผลของการทำรายการ(ลำดับที่ 1) | อ้างอิง ภาคผนวก ก. |
2 | Code | number | 5 | รหัสผลของการทำรายการ(ลำดับที่ 2) | อ้างอิง ภาคผนวก ข. |
3 | Message | string | 255 | คำอธิบายผลของการทำรายการ(ลำดับที่ 2) | อ้างอิง ภาคผนวก ข. |
4 | TransactionId | number | 20 | เลขที่อ้างอิงรายการสำหรับร้านค้า | เพื่อใช้สำหรับตรวจสอบรายการอ้างอิงระหว่างร้านค้า กับ ChillPay เช่น 10071 |
5 | Amount | number | 12 | จำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยม | ตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25 ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00 |
6 | OrderNo | string | 20 | เลขที่ Order หรือรหัสอ้างอิงของรายการ | ค่าที่ได้รับมาจากร้านค้า |
7 | CustomerId | string | 100 | รหัสอ้างอิงของลูกค้า(End User) หรือชื่อลูกค้า | ค่าที่ได้รับมาจากร้านค้า |
8 | ChannelCode | string | 20 | รหัสอ้างอิงแทนธนาคารที่รับชำระ | เช่น internetbank_bayดูรายละเอียดในภาคผนวก จ. |
9 | ReturnUrl | string | 255 | URL ที่จะแสดงเมื่อลูกค้าทำรายการสำเร็จ | เป็นหน้าเว็บไซต์ของทางร้านค้า (Result URL) |
10 | PaymentUrl | string | 255 | URL ที่จะทำการ Redirect ไปหน้าชำระเงินของธนาคาร | ทางร้านค้าจะต้องเขียนโปรแกรมให้ Redirect ไปที่ URL นี้ |
11 | IpAddress | string | 20 | IP Address ของลูกค้าที่ทำรายการ | เช่น 20.25.55.20 |
12 | Token | string | 60 | รหัส Token สำหรับอ้างอิงรายการ | ใช้สำหรับ ChillPay |
13 | CreatedDate | string | 20 | วันที่ทำรายการ | รูปแบบ: YYYYMMDDHHMMSS เช่น 20180712173122 |
14 | ExpiredDate | string | 20 | วันที่รายการหมดอายุ | รูปแบบ: YYYYMMDDHHMMSSเช่น 20180713173122 |
ตัวอย่าง ข้อมูล JSON Response Message ที่ได้รับจากการเรียก API
{
"Status": 0,
"Code": 200,
"Message": "Success",
"TransactionId": 210,
"Amount": 5000,
"OrderNo": "20170929070743",
"CustomerId": "000001",
"ChannelCode": "internetbank_bay",
"ReturnUrl": "http://localhost:8000/chillpay/response/success.php",
"PaymentUrl": "https://sandbox-cdnv3.chillpay.co/payment/XXXX/internetbank",
"IpAddress": "127.0.0.1",
"Token": "XXXX",
"CreatedDate": "20180712173122",
"ExpiredDate": "20180713173122"
}