คู่มือการใช้งาน
หัวข้อทั้งหมดในหน้านี้
คู่มือฉบับนี้จะช่วยแนะนำการใช้งานระบบรับชำระเงินของ Opn Payments ตั้งแต่ขั้นตอนแรกไปถึงวิธีเขียนเว็บไซต์เพื่อเรียกใช้งาน API โดยเราได้จัดเรียงเนื้อหาพร้อมแนบตัวอย่างตามลำดับการใช้งานจริง ดังนี้:
1. สร้างบัญชีผู้ใช้
เริ่มต้นที่ Registration
บนเว็บไซต์ Opn Payments
เมื่อกดปุ่มจะเข้าสู่หน้า Register โดยจะปรากฏช่องให้กรอกอีเมล์และตั้งรหัสผ่าน
รหัสผ่านจะต้องประกอบด้วย:
- ตัวอักษรภาษาอังกฤษทั้งตัวพิมพ์เล็ก ตัวพิมพ์ใหญ่ และตัวเลข
- อักขระพิเศษอย่างน้อยหนึ่งตัว เช่น @ & # ?
- มีความยาวอย่างน้อย 10 ตัวอักษร
เมื่อลงทะเบียนเรียบร้อยเว็บไซต์จะพาไปยังแดชบอร์ดพร้อมแจ้งเตือนให้เช็คอีเมล์เพื่อยืนยันตัวตน หากไม่ได้รับอีเมล์ให้กด Request another email
เพื่อให้ระบบส่งอีเมล์อีกครั้ง
ที่ด้านบนสุดของแดชบอร์ดจะพบ โหมดทดสอบ
และ โหมดใช้งานจริง
ซึ่งเป็นตัวเลือกโหมดการทำงานของระบบ
- โหมดทดสอบ ใช้เพื่อทดสอบและให้ผู้ใช้ได้ทำความคุ้นเคยกับการทำงานของระบบ
- โหมดใช้งานจริง เป็นการทำรายการจริง
โหมดการทำงานทั้ง 2 นี้จะแยกออกจากกันโดยสิ้นเชิง
วิธีการเปิดใช้งานโหมดทดสอบ จะอยู่ในลำดับสุดท้ายของคู่มือฉบับนี้
2. การรับชำระเงิน
ในการรับชำระเงินจากลูกค้า (ผู้ถือบัตร) ให้เลือกที่ Charges
สำหรับการใช้งานครั้งแรกระบบจะแจ้งว่ายังไม่มีรายการใดๆ ให้เริ่มต้นทดสอบการสร้างรายการด้วยตนเองโดยเรียก API ผ่าน command line
สำหรับผู้ใช้ mac: ให้เปิดโปรแกรม Terminal
ไปที่ Finder และเข้าไปที่ Application > Utilities > Terminal
เมื่อเปิดโปรแกรมจะปรากฏหน้าจอดังภาพทางขวา
สำหรับผู้ใช้ Windows: แนะนำให้ใช้โปรแกรม Git-Bash เพื่อเรียกใช้คำสั่ง curl
สามารถดาวน์โหลดโปรแกรมได้จาก Git-SCM หลังจากติดตั้งแล้ว โปรแกรมจะมีรูปแบบการใช้งานดังภาพ
เมื่อเตรียมโปรแกรมเรียบร้อย ให้กดที่ Create a charge with a token
เพื่อเรียกดูคำสั่งรับชำระเงินทั้งหมด
เมื่อเปิดจะปรากฏ code ทั้งหมด 2 ชุด ชุดแรกใช้เพื่อสร้าง Token ส่วนชุดที่ 2 เป็นคำสั่งที่ใช้รับชำระเงิน (สร้าง charge)
เริ่มโดยคัดลอกตัวอย่าง code ชุดแรกลงโปรแกรม terminal (Code ชุดนี้มีข้อมูลบัตรและ key บันทึกไว้แล้ว) เมื่อนำไปเรียกผ่าน Terminal จะปรากฏผลลัพธ์ดังภาพ
ดูตัวอย่างเป็น ภาพเคลื่อนไหว บน youtube
ข้อมูลที่ส่งกลับมาจะอยู่ในรูปแบบ JSON โดย Token ซึ่งจะถูกนำไปใช้เป็นตัวแทนของบัตรจะแสดงอยู่ที่ “id” ให้คัดลอกตัวอย่าง code ชุดที่ 2 ลงโปรแกรม terminal แล้วจึงคัดลอก Token ที่ได้รับมาแทนที่ token_id
ในหัวข้อ card=token_id
พร้อมทั้งใส่เครื่องหมาย " ปิดท้าย ตัวอย่างดังภาพ
ข้อมูลที่ส่งให้กับ Opn Payments ประกอบด้วย
- user id:: เป็น key ที่ได้จากแดชบอร์ดใช้อ้างอิงตัวผู้เรียกใช้ API
- Description: เพื่อใช้อ้างอิงกับร้านค้า เช่นหมายเลย invoice หรือหมายเลขสินค้า และสามารถใช้ตรวจสอบข้อมูลภายหลังได้
- Amount: เป็นจำนวนเงินที่ตัดบัตรเครดิต โดยมีหน่วยเป็นสตางค์ เช่นใส่ 100000 จะมีค่าเท่ากับ 1,000 บาท
- Currency: เป็นหน่วยของเงิน ปัจจุบันรองรับแค่
thb
- return_url: คือ URL ที่ระบบจะเรียกเมื่อทำรายการสำเร็จ
- card: เป็น token ที่ได้จากคำสั่งแรก ใช้เพื่ออ้างอิงตัวบัตรเครดิต
ตรวจสอบสถานะรายการได้จาก Status ซึ่งในภาพมีสถานะเป็น Successful
เมื่อกลับไปยังหน้า Charge จะพบรายการเรียกเก็บเงินหนึ่งรายการ ดังภาพ
สามารถถอนเงินออกจากบัญชีผู้ใช้ได้จาก Transfers ในกรณีที่ไม่มีการยกเลิกรายการ ซึ่งการยกเลิกรายการเกิดขึ้นได้จาก 2 กรณีคือ ร้านค้าทำการคืนเงิน (Refund) หรือผู้ถือบัตรปฏิเสธรายการ (chargeback)
3. การถอนเงิน
เมื่อร้านค้าได้รับชำระ ยอดเงินที่ได้รับมาจะปรากฏในบัญชีผู้ใช้ทันทีที่ On hold ซึ่งยังไม่สามารถถอนออกมาได้ ระบบจะรักษายอดเงินไว้เป็นเวลา 7 วัน แล้วจึงจะย้ายยอดดังกล่าวไปยัง Transferable Balance หรือ “ยอดที่ถอนได้”
หมายเหตุ: ในการใช้งานโหมดทดสอบ ระบบจะไม่รักษายอดเงินไว้เป็นยอด On hold เหมือนกับการใช้งานในโหมดใช้งานจริง แต่ยอดที่ได้รับชำระจะไปปรากฏที่ Transferable Balance ทันที ดังภาพ
เมื่อต้องการถอนเงินให้กดที่ Setup a transfer
การถอนเงินมี 2 แบบคือ Full Transfer (ถอนทั้งหมด) หรือ Partial Transfer (ถอนแบบระบุจำนวน) ดังภาพ
เมื่อ Setup Transfer แล้วระบบจะสร้างรายการขึ้น โดยในเบื้องต้นจะมีสถานะเป็น Pending กระทั่งถึงรอบ Transfer (ระบบจะถอนเงินวันละ 1 ครั้งตามกำหนดเวลา)
เมื่อธนาคารโอนเงินให้กับร้านค้าแล้ว จะส่งรายการ Transfer Success
หรือหากไม่สำเร็จจะเป็น Transfer Failed
มายัง Opn Payments โดยเราจะทำการแจ้งเตือนร้านค้าต่อไป ในการใช้โหมดทดสอบ สามารถจำลองการส่งข้อมูลไปยังธนาคารได้โดยกดที่ Mark as sent
และ จำลองการตอบรับจากธนาคารได้โดยกดที่ Mark as paid
เมื่อส่งคำสั่งถอนเงินไปยังธนาคาร ยอดเงินจาก Transferable Balance จะถูกหักออกไป
เมื่อธนาคารได้รับคำสั่ง Transfer จะทำการโอนเงินเข้าบัญชีในวันทำการถัดไป ส่วนการทดสอบระบบสามารถจำลองการตอบรับจากธนาคารได้โดยกดที่ Mark as paid
**หากยอดเงินที่ต้องการถอนจากบัญชีผู้ใช้มีจำนวนมากกว่ายอดคงเหลือใน Transferable Balance (ยอดที่ถอนได้) ระบบจะดำเนินการอีกครั้งในวันถัดไปและรายการจะสำเร็จเมื่อมียอดเงินเพียงพอ
4. การติดตั้ง Opn Payments บนเว็บไซต์
ร้านค้าที่ใช้งานระบบอีคอมเมิร์ซ สามารถอ่านวิธีการติดตั้งปลั๊กอินของเราได้จากคู่มือต่อไปนี้:
หากเป็นไซต์คอมเมิร์ซที่ปลั๊กอินของเรายังไม่รองรับหรือเป็นเว็บไซต์ที่สร้างขึ้นเอง สามารถเรียกใช้งาน SDK ในภาษาต่างๆ ของเราได้
- Ruby: github.com/omise/omise-ruby
- NodeJS: github.com/omise/omise-node
- PHP (Composer): github.com/omise/omise-php
- Java Script: github.com/omise/omise.js
- Go: github.com/omise/omise-go
- Java: github.com/omise/omise-java
- Python: github.com/omise/omise-python
การติดตั้งบนแอปพลิเคชันมือถือ
- Android: github.com/omise/omise-android
- iOS: github.com/omise/omise-ios
การติดตั้งบนเว็บไซต์
- Omise.js: github.com/omise/omise.js
ตัวอย่างการใช้งาน Omise API ผ่านเว็บไซต์ภาษา PHP โดยไม่ผ่านปลั๊กอิน หรือ Composer ใดๆ
เริ่มจากการสร้างไฟล์ index.html และใส่ตัวอย่างโปรแกรมด้านล่างลงไป
<html>
<head>
</head>
<body>
<form name="checkoutForm" method="POST" action="checkout.php">
<script type="text/javascript" src="https://cdn.omise.co/omise.js"
data-key="pkey_test_52jyu0r8o4307z0zz00"
data-image="http://bit.ly/customer_image"
data-frame-label="Merchant site name"
data-button-label="Pay now"
data-submit-label="Submit"
data-location="no"
data-amount="10025"
data-currency="thb"
>
</script>
<!--the script will render <input type="hidden" name="omiseToken"> for you automatically-->
</form>
<!-- data-key="YOUR_PUBLIC_KEY" -->
</body>
</html>
จะเห็นว่าเราไม่ต้องสร้างฟอร์มสำหรับกรอกข้อมูลบัตรเครดิตเลย เพราะว่า Omise.js ได้เตรียมฟอร์มสำเร็จรูปไว้ให้แล้ว เพียงเปลี่ยน YOUR_PUBLIC_KEY
เป็น Key ของคุณที่ได้จากแดชบอร์ดและเปลี่ยน PATH_TO_LOGO_IMAGE
เป็น URL ของรูปภาพ เช่น http://bit.ly/customer_image
ก็สามารถใช้งานได้เลย
กรณีที่ต้องการสร้างฟอร์มเองสามารถดูตัวอย่างได้ที่ การรับข้อมูลบัตร
เมื่อสร้างไฟล์ index.html เพื่อใช้เป็นฟอร์มสำหรับการรับข้อมูลบัตรแล้ว ให้สร้างไฟล์ checkout.php เพื่อทำการ charge บัตร โดยโปรแกรมสามารถเรียกใช้งาน library omise.php เพื่อความสะดวกในการพัฒนา
นักพัฒนาสามารถดาวน์โหลด library ได้จาก github.com/omise/omise-php โดยแตก zip ไฟล์และเปลี่ยนชื่อ folder เป็น omise-php
ในการใช้งานจริง แนะนำให้ใช้ git clone แทนการ download เพื่อความสะดวกในการปรับปรุง code ให้ทันสมัย
<?php
require_once dirname(__FILE__).'/omise-php/lib/Omise.php';
define('OMISE_API_VERSION', '2015-11-17');
// define('OMISE_PUBLIC_KEY', 'PUBLIC_KEY');
// define('OMISE_SECRET_KEY', 'SECRET_KEY');
define('OMISE_PUBLIC_KEY', 'pkey_test_52jyu0r8o4307z0zz00');
define('OMISE_SECRET_KEY', 'skey_test_52jyu0r8mim84ylp454');
$charge = OmiseCharge::create(array(
'amount' => 10025,
'currency' => 'thb',
'card' => $_POST["omiseToken"]
));
echo($charge['status']);
print('<pre>');
print_r($charge);
print('</pre>');
นำ PUBLIC_KEY
และ SECRET_KEY
จากแดชบอร์ดมาเปลี่ยนใน code PHP แล้วทดลองเรียกไฟล์ index.html
ในหน้าจอแรกจะมีปุ่ม Pay now
ซึ่งสร้างขึ้นด้วยโปรแกรม Omise.js เมื่อกดจะปรากฏแบบฟอร์มสำหรับกรอกข้อมูลบัตร ในการทดสอบสามารถใช้บัตรเครดิตเป็น
Name: JOHN DOE
Number: 4242424242424242
Expired month: 12
Expired year: 2020
Security code: 123
เมื่อกด Submit และระบบสามารถ Charge บัตรได้ จะปรากฏข้อความ Success
อ่านเพิ่มเติมเกี่ยวกับข้อมูลทางเทคนิคได้ที่ Documentation หรือหากมีข้อสงสัยเกี่ยวกับการทำงานไปที่ส่วนช่วยเหลือ
เมื่อพร้อมใช้งานในโหมดใช้งานจริง อ่านขั้นตอนการส่งเอกสารได้ในบทต่อไป
5. การเปิดโหมดใช้งานจริง
เมื่อพร้อมรับชำระเงินจากลูกค้าแล้ว สิ่งที่ต้องทำต่อไปคือขอเปิดโหมดใช้งานจริงกับเจ้าหน้าที่ของเรา
สิ่งที่ต้องเตรียม:
- บัญชีผู้ใช้ Opn Payments ที่มีอีเมล์ซึ่งได้รับการยืนยันแล้ว
- เว็บไซต์ร้านค้าที่เสร็จสมบูรณ์และสามารถเข้าชมได้
- เว็บไซต์ของร้านค้าจะต้องชี้แจงนโยบายการคืนเงิน (refund) ไว้อย่างชัดเจนที่ใดที่หนึ่ง:
- ในลำดับหน้าก่อนขั้นตอนเช็คเอาท์สุดท้าย โดยจะต้องมีปุ่ม “คลิกเพื่อยอมรับ” หรือปุ่มอื่นๆ เพื่อให้ผู้ถือบัตรกดเพื่อยืนยันการรับทราบข้อมูล หรือ
- ในหน้าเช็คเอาท์ใกล้กันกับปุ่ม “ยืนยัน” หรือ ปุ่ม “คลิกเพื่อยอมรับ”
หมายเหตุ: คำชี้แจงจะต้องไม่เป็นลิงก์ที่ redirect ผู้ใช้ไปยังหน้าอื่น - เอกสารตามคำแนะนำด้านล่างสำหรับอัพโหลด ในรูปแบบไฟล์ PDF JPG หรือ PNG
หากเป็นธุรกิจต้องใช้เอกสารดังนี้
- หนังสือรับรองบริษัท (DBD) มีอายุไม่เกิน 60 วัน
- แบบ บอจ. 3 รายการจดทะเบียนจัดตั้ง
แบบ บอจ. 5 สำเนาบัญชีรายชื่อผู้ถือหุ้น
- สำเนาบัตรประชาชนผู้ถือหุ้นตั้งแต่ 25% ขึ้นไป (สำหรับชาวต่างชาติ ใช้พาสปอร์ต)
ใบทะเบียนภาษีมูลค่าเพิ่ม ภ.พ. 20 (ถ้ามี)
สำเนาบัตรประชาชนคณะกรรมการผู้มีอำนาจลงนาม
สำหรับชาวต่างชาติ ใช้พาสปอร์ต ใบอนุญาตทำงานในประเทศไทย และหลักฐานยืนยันที่อยู่:
- ทะเบียนบ้าน ท.ร. 13 (เล่มสีเหลือง) หรือ
- ใบแจ้งยอดบัตรเครดิต หรือใบแจ้งยอดสาธารณูปโภค ซึ่งระบุชื่อและที่อยู่ปัจจุบัน
หน้าแรกของสมุดบัญชีธนาคารที่ต้องการใช้เชื่อมกับบัญชีโอมิเซะ เพื่อรับเงินโอนเข้า โดยบัญชีจะต้องเป็นของธนาคารในประเทศไทย และชื่อบัญชีจะต้องตรงกับชื่อที่ระบุบนหนังสือรับรองบริษัท
รายการเดินบัญชีย้อนหลัง (อาจจำเป็นต้องใช้ในบางกรณี)
สำเนาเอกสารทั้งหมดต้องลงลายมือชื่อโดยคณะกรรมการผู้มีอำนาจลงนาม พร้อมรับรองสำเนาถูกต้อง และประทับตราสำคัญของบริษัท
หากเป็นบัญชีส่วนบุคคลต้องใช้เอกสารดังนี้
- บัตรประจำตัวประชาชน
สำหรับชาวต่างชาติ ใช้พาสปอร์ต ใบอนุญาตทำงานในประเทศไทย และหลักฐานยืนยันที่อยู่:
- ทะเบียนบ้าน ท.ร.13 (เล่มสีเหลือง) หรือ
- ใบแจ้งยอดบัตรเครดิต หรือใบแจ้งยอดสาธารณูปโภค ซึ่งระบุชื่อและที่อยู่ปัจจุบัน
- ทะเบียนบ้าน ท.ร.13 (เล่มสีเหลือง) หรือ
หน้าแรกของสมุดบัญชีธนาคารที่ต้องการใช้เชื่อมกับบัญชีโอมิเซะ เพื่อรับเงินโอนเข้า โดยบัญชีจะต้องเป็นของธนาคารในประเทศไทย และชื่อบัญชีจะต้องตรงกับชื่อบนบัตรประชาขน
รายการเดินบัญชีย้อนหลัง (อาจจำเป็นต้องใช้ในบางกรณี)
สำเนาเอกสารทั้งหมดต้องลงลายมือชื่อ (ไม่ใช่ลายเซ็นอิเล็กทรอนิกส์) พร้อมรับรองสำเนาถูกต้อง และประทับตราสำคัญของบริษัท
ขั้นตอน
- ลงชื่อเข้าใช้งานแล้วคลิกที่โหมดทดสอบ
- ระบบจะพาไปยังหน้า Register ให้กรอกข้อมูลพร้อมทั้งอัพโหลดไฟล์ตามประเภทบัญชีที่ได้ชี้แจงไปข้างต้น
เอกสารจะต้องเป็นไฟล์ PDF JPG หรือ PNG เท่านั้น โดยสามารถอัพโหลดไฟล์พร้อมกันทีละหลายๆ ไฟล์ หรือจะแยกอัพโหลดทีละไฟล์ก็ได้ (ไม่ต้อง zip รวมเป็นไฟล์เดียว)
เมื่อกรอกรายละเอียดครบถ้วนให้คลิก Submit for approval
หรือหากต้องการกลับมาแก้ไขอีกครั้งให้ Save as draft
ไว้ก่อน
เมื่อทีมงานของเราได้รับเอกสารครบทั้งหมดจะใช้เวลาพิจารณาอนุมัติการใช้งาน 2-3 วันทำการ โดยเราอาจต้องติดต่อคุณหากมีคำถามเพิ่มเติมหรือในกรณีที่เอกสารไม่ครบ