Payment

วิธีการเชื่อมต่อจะแบ่งออกเป็นทั้งหมด 3 รูปแบบดังนี้

Code Template

การเชื่อมต่อแบบใช้ Code Template โดยหน้า UI การชำระเงินเป็นของ ChillPay ทางร้านค้าสามารถทำการ Copy code html template และนำไปวางบนหน้าเว็บไซต์ของร้านค้า โดยมีข้อมูล Parameter ตามตารางที่ 1 โดยส่งค่ามายังระบบของ ChillPay ตาม URL ดังต่อไปนี้

ตารางที่ 1 : รายละเอียดของ Html Tag Parameter เพื่อใช้สำหรับสร้าง Form ในการส่งค่ามายังระบบ ChillPay

No.ParameterData TypeLengthMandatory/ OptionalDescriptionRemark
1data-merchantidstring15MMerchant ID.เป็นค่าที่จะออกให้โดย ChillPay เช่น M000001
2data-ordernostring20Mเลขที่ Order หรือรหัสอ้างอิงของรายการเป็นค่าที่ออกโดยร้านค้า ต้องเป็นค่าเฉพาะที่ไม่ซ้ำกัน และต้องเป็นตัวเลขอย่างเดียว หรือตัวเลขผสมรวมกับตัวอักษรภาษาอังกฤษเท่านั้น ห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ
3data-customeridstring100Mรหัสอ้างอิงของลูกค้า(End User) หรือชื่อลูกค้าเช่น CUS000001 หรือ นายแบงก์ มีมาก สามารถเว้นวรรคตรงกลางได้เท่านั้น ไม่รองรับการเว้นวรรคตำแหน่งแรกหรือตำแหน่งสุดท้าย  และห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ
4data-amountnumber12Mจำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยมตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25  ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00
5data-mobilenostring10Oเบอร์โทรศัพท์มือถือของลูกค้า(End User)ในกรณีที่เลือกชำระผ่านช่องทาง K PLUS จำเป็นต้องระบุเบอร์มือถือของลูกค้าที่ลงทะเบียนในระบบของ K PLUS เท่านั้น
6data-descriptionstring100Oข้อมูลรายละเอียดในการชำระเงินเช่น “สินค้าไอโฟน X 64GB Color-Black”
7data-currencystring3Mข้อมูลรหัสสกุลเงิน ให้กำหนดค่าเป็น “764”เช่น 764ดูรายละเอียดในภาคผนวก ฉ.
8data-langstring2Oรหัสภาษาที่จะแสดงบนหน้าเว็บไซต์ชำระเงินของทางธนาคารTH: ภาษาไทยEN: ภาษาอังกฤษ
9data-routenonumber2MRoute No. Default: 1เป็นค่าที่จะออกให้โดยระบบ ChillPay เช่น 1 หากร้านค้าต้องการใช้งานมากกว่า 1 เว็บไซต์ สามารถติดต่อได้ที่ customersupport@chillpay.co
10data-clientipstring20Mข้อมูล IP Address ของลูกค้าเช่น 203.255.255.155
11data-apikeystring100Mรหัส API Key ที่ใช้ในการเชื่อมต่อระบบเป็นค่าที่จะออกให้โดย ChillPay
12data-tokenflagstring1Oในกรณีที่เลือกชำระเงินด้วย Credit Card หากต้องการชำระเงินโดยใช้ Token ให้ระบุค่าเป็น “Y”Y: ชำระเงินแบบใช้ TokenN: ชำระเงินแบบไม่ใช้ Token (เป็นค่า Default)
13data-cardtokenstring100Oข้อมูล Token สำหรับการชำระเงินด้วย Credit Card หากระบุข้อมูล data-tokenflag เป็น “Y” จำเป็นต้องระบุข้อมูลในส่วนนี้ด้วย ค่า Token จะเป็นค่าที่ออกให้โดยระบบ ChillPay
14data-creditmonthnumber2Oจำนวนเดือนที่ผ่อนชำระ สำหรับการทำรายการผ่อนชำระผ่าน Credit Cardเช่น 3 , 8 , 10
15data-shopidstring2Oค่า Shop ID สำหรับการทำรายการผ่อนชำระผ่าน Credit Card 01 : สำหรับร้านค้าเป็นคนรับภาระดอกเบี้ย02: สำหรับลูกค้า (End User) เป็นคนรับภาระดอกเบี้ย
16data-imageurlstring255OURL ของรูปสินค้าสำหรับแสดงบนหน้าชำระเงินของ Rabbit LINE Payเช่น https://image.com/image-product-01.jpg
17data-custemailstring100Oข้อมูล Email ของลูกค้าเช่น test@test.com

HTML Form

การเชื่อมต่อแบบ HTML Form โดยร้านค้าสามารถออกแบบ UI เองได้ ในกรณีที่ร้านค้าต้องการสร้างหน้าจอ (UI) เฉพาะของร้านค้าเอง สามารถใช้ข้อมูล Parameter ตามตารางที่ 2 เพื่อสร้างฟอร์มสำหรับส่งค่า POST มายังระบบ ChillPay

ตารางที่ 2 : Request Parameter สำหรับส่งค่า POST ในการทำรายการ Payment มายังระบบ ChillPay

No.ParameterData TypeLengthMandatory/ OptionalDescriptionRemark
1MerchantCodestring15MMerchant ID.เป็นค่าที่จะออกให้โดย ChillPay เช่น M000001
2OrderNostring20Mเลขที่ Order หรือรหัสอ้างอิงของรายการเป็นค่าที่ออกโดยร้านค้า ต้องเป็นค่าเฉพาะที่ไม่ซ้ำกัน และต้องเป็นตัวเลขอย่างเดียว หรือตัวเลขผสมรวมกับตัวอักษรภาษาอังกฤษเท่านั้น ห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ
3CustomerIdstring100Mรหัสอ้างอิงของลูกค้า (End User) หรือชื่อลูกค้าเช่น CUS000001 หรือ นายแบงก์ มีมาก สามารถเว้นวรรคตรงกลางได้เท่านั้น ไม่รองรับ การเว้นวรรคตำแหน่งแรกหรือตำแหน่งสุดท้าย  และห้ามมีตัวอักษรอักขระพิเศษ เช่น +-*/-#$_ หรืออื่น ๆ
4Amountnumber12Mจำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยมตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25  ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00
5PhoneNumberstring10Oเบอร์โทรศัพท์มือถือของลูกค้า(End User)ในกรณีที่เลือกชำระผ่านช่องทาง K PLUS จำเป็นต้องระบุเบอร์มือถือของลูกค้าที่ลงทะเบียนในระบบของ K PLUS เท่านั้น
6Descriptionstring100Oข้อมูลรายละเอียดในการชำระเงินเช่น “สินค้าไอโฟน X 64GB Color-Black”
7ChannelCodestring30Mรหัสอ้างอิงแทนธนาคารที่รับชำระเช่น internetbank_bayดูรายละเอียดในภาคผนวก จ.
8Currencystring3Mข้อมูลรหัสสกุลเงิน ให้กำหนดค่าเป็น “764”เช่น 764
ดูรายละเอียดในภาคผนวก ฉ.
9LangCodestring2Oรหัสภาษาที่จะแสดงบนหน้าเว็บไซต์ชำระเงินของทางธนาคารTH: ภาษาไทยEN: ภาษาอังกฤษ
10RouteNonumber2MRoute No. Default: 1เป็นค่าที่จะออกให้โดยระบบ ChillPay เช่น 1 หากร้านค้าต้องการใช้งานมากกว่า 1 เว็บไซต์ สามารถติดต่อได้ที่ customersupport@chillpay.co
11IPAddressstring20Mข้อมูล IP Address ของลูกค้าเช่น 203.255.255.155
12ApiKeystring100Mรหัสอ้างอิงที่ใช้ในการเชื่อมต่อระบบเป็นค่าที่จะออกให้โดย ChillPay
13TokenFlagstring1Oในกรณีที่เลือกชำระเงินด้วย Credit Card หากต้องการชำระเงินโดยใช้ Token ให้ระบุค่าเป็น “Y”Y: ชำระเงินแบบใช้ TokenN: ชำระเงินแบบไม่ใช้ Token (เป็นค่า Default)
14CreditTokenstring100Oข้อมูล Token สำหรับการชำระเงินด้วย Credit Card หากระบุข้อมูล TokenFlag เป็น “Y” จำเป็นต้องระบุข้อมูลในส่วนนี้ด้วยค่า Token จะเป็นค่าที่ออกให้โดยระบบ ChillPay
15CreditMonthnumber2Oจำนวนเดือนที่ผ่อนชำระ สำหรับการทำรายการผ่อนชำระผ่าน Credit Cardเช่น 3 , 8 , 10


16ShopIDstring2Oค่า Shop ID สำหรับการทำรายการผ่อนชำระผ่าน Credit Card01 : สำหรับร้านค้าเป็นคนรับภาระดอกเบี้ย02: สำหรับลูกค้า (End User) เป็นคนรับภาระดอกเบี้ย
17ProductImageUrlstring255OURL ของรูปสินค้าสำหรับแสดงบนหน้าชำระเงินของ Rabbit LINE Payเช่น https://image.com/image-product-01.jpg
18CustEmailstring100Oข้อมูล Email ของลูกค้าเช่น test@test.com
19CardTypestring50Oข้อมูล Card Typeข้อมูล Card Type ที่ลูกค้าต้องการชำระ (เฉพาะ Krungsri Consumer และ Krungsri Frist Choice)
ดูข้อมูลตาม ภาคผนวก ฌ.
20CheckSumstring32Mผลลัพธ์ที่ได้จากการนำค่าทั้งหมดไปเข้ารหัส MD5ใช้เพื่อยืนยันความถูกต้องของรายการ

ระบบ ChillPay Payment Gateway ได้เพิ่มระดับความปลอดภัยและความเชื่อมั่นในการรับ-ส่งข้อมูลจากระบบของร้านค้ามายัง ChillPay โดยให้ร้านค้าทำการเข้ารหัสของข้อมูลด้วยวิธีการ MD5 Checksum ข้อมูลก่อนส่งเข้ามาที่ระบบของ ChillPay โดยดำเนินการดังนี้

  1. นำค่าข้อมูลจาก Parameter ทั้งหมดจากข้อ 1 – 19 จากตารางที่ 2 มาเรียงต่อกัน
  2. เพิ่มค่าสุดท้าย MD5 Secret Key ที่ทาง ChillPay กำหนดให้มาต่อท้ายตัวแปรในตารางที่ 2 (ร้านค้าจะต้องเก็บข้อมูล MD5 Secret Key ไว้เป็นความลับระหว่างร้านค้า และ ระบบ ChillPay เท่านั้น ห้ามเปิดเผยข้อมูล MD5 Secret Key ให้กับผู้ไม่เกี่ยวข้องทราบเป็นอันขาด)
  3. ทำการ 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 ดังต่อไปนี้

ตัวอย่าง การเรียก 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.ParameterData TypeLengthDescriptionRemark
1Statusnumber1รหัสผลของการทำรายการ(ลำดับที่ 1)อ้างอิง ภาคผนวก ก. 
2Codenumber5รหัสผลของการทำรายการ(ลำดับที่ 2)อ้างอิง ภาคผนวก ข. 
3Messagestring255คำอธิบายผลของการทำรายการ(ลำดับที่ 2)อ้างอิง ภาคผนวก ข. 
4TransactionIdnumber20เลขที่อ้างอิงรายการสำหรับร้านค้าเพื่อใช้สำหรับตรวจสอบรายการอ้างอิงระหว่างร้านค้า กับ ChillPay  เช่น 10071
5Amountnumber12จำนวนเงินที่ชำระของรายการ (2 หลักสุดท้ายจะเป็นค่าทศนิยม) *สกุลเงิน JPY และ KRW จะไม่มีหน่วยทศนิยมตัวอย่างเช่น ส่งค่าเข้ามาเป็น 55025 ระบบจะอ่านค่าเป็น 550.25  ส่วนสกุลเงิน JPY และ KRW ระบบจะอ่านค่าเป็น 550.00
6OrderNostring20เลขที่ Order หรือรหัสอ้างอิงของรายการค่าที่ได้รับมาจากร้านค้า
7CustomerIdstring100รหัสอ้างอิงของลูกค้า(End User) หรือชื่อลูกค้าค่าที่ได้รับมาจากร้านค้า
8ChannelCodestring20รหัสอ้างอิงแทนธนาคารที่รับชำระเช่น internetbank_bayดูรายละเอียดในภาคผนวก จ.
9ReturnUrlstring255URL ที่จะแสดงเมื่อลูกค้าทำรายการสำเร็จเป็นหน้าเว็บไซต์ของทางร้านค้า (Result URL)
10PaymentUrlstring255URL ที่จะทำการ Redirect ไปหน้าชำระเงินของธนาคารทางร้านค้าจะต้องเขียนโปรแกรมให้ Redirect ไปที่ URL นี้
11IpAddressstring20IP Address ของลูกค้าที่ทำรายการเช่น 20.25.55.20
12Tokenstring60รหัส Token สำหรับอ้างอิงรายการใช้สำหรับ ChillPay
13CreatedDatestring20วันที่ทำรายการรูปแบบ: YYYYMMDDHHMMSS เช่น 20180712173122
14ExpiredDatestring20วันที่รายการหมดอายุรูปแบบ: 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"
}
Updated on January 19, 2024

Was this article helpful?

Related Articles

Leave a Comment