Omise อ่านว่า โอมิเซะ คือ ระบบชำระเงินออนไลน์ ( Online Payment Gateway ) รองรับช่องทางการชำระเงินที่หลากหลาย บัตรเครดิต / เดบิต Truemoney Wallet / PromptPay / Alipay เป็นต้น ดูเพิ่มเติมได้ที่ Omise Payment Method
สิ่งที่ควรทราบก่อนใช้งาน Omise
- โอมิเซะ มี SDK ให้ใช้งานหลากหลายภาษา เช่น Go, Java, PHP, .Net, Python, NodeJS, Ruby
- โอมิเซะ มี Plug-In พร้อมสำหรับระบบ CMS ค่อนข้างครบ Magento, OpenCart, Shopify, PrestaShop, WooCommerce
- โอมิเซะ คิดค่าธรรมเนียม 3.65% ต่อรายการ ( Transaction )
- คุณสามารถสมัครใช้งาน โอมิเซะ ได้ทั้งในนามบุคคลธรรมดา และ นิติบุคคล ( บริษัทจดทะเบียน ) ใช้เวลาเบ็ดเสร็จประมาณ 2 – 4 สัปดาห์ ประมาณการณ์เวลาจากตัวผู้เขียนเองที่ได้ทดลองสมัครทั้ง 2 แบบแล้ว
- สามารถสมัครสมาชิกและใช้งานในโหมดทดสอบ ( Sandbox Mode ) ได้ทันที หากต้องการใช้งานในโหมดใช้งานจริง ( Live Mode ) ต้องยื่นเอกสารเข้าไปตรวจสอบก่อน
- ค่าธรรมเนียมการโอน หมายถึง กรณีที่เราต้องการโอนเงินจากบัญชี Omise ไปยังไปบัญชีธนาคารอื่น ถ้ายอดโอนไม่เกิน 2,000,000 บาท จะเสียค่าธรรมเนียม 30 บาทต่อรายการ ถ้ายอดเกิน 2,000,000 บาท จะเสียค่าธรรมเนียมการโอน 150 บาท
เริ่มติดตั้งใช้งาน Omise กับ Codeigniter
- สามารถติดตั้งได้ทั้งกับ PHP ธรรมดา และ Codeigniter นะครับ ติดตั้ง Omise PHP Libary ตัวนี้ https://github.com/omise/omise-php ติดตั้งไว้ที่ application/third_party สามารถติดตั้งได้ทั้งแบบผ่าน composer หรือ download ลงมาติดตั้งแบบ manual
- กรณีติดตั้งผ่าน composer จะได้โครงสร้างและวิธีเรียกใช้งานแบบนี้ จากภาพให้ดูฝั่งขวามือนะครับ ในโฟลเด้อ omise-php

require_once APPPATH.'third_party/omise-php/vendor/autoload.php';
- กรณีติดตั้งแบบ Manually คือ ดาวน์โหลดมาและวางไฟล์ไว้ใน third_party จะได้โครงสร้าง และ วิธีเรียกใช้งานแบบนี้ จากภาพให้ดูฝั่งขวามือนะครับ ในโฟลเด้อ omise-php

require_once APPPATH.'third_party/omise-php/lib/Omise.php';
สร้าง UI การชำระเงินด้วยบัตรเครดิต / เดบิต
- ตัว Omise เองมี UI ต้นแบบที่สวยงามและน่าเชื่อถืออยู่แล้ว เราสามารถใช้ต้นแบบของ Omise ได้เลย สร้างไฟล์ payment_view.php และเขียนคำสั่งใน body ดังนี้
ส่วนของ html ในไฟล์ payment_view.php
// ไฟล์ payment_view.php ส่วนของ form การกรอกข้อมูลบัตรเครดิต
ส่วนของ Javascript ในไฟล์ payment_view.php
- สร้าง Controller ตั้งชื่อว่า Payment.php และอ่านอธิบายแต่ละส่วนใน comment code ด้านล่างเลยครับ
require_once APPPATH.'third_party/omise-php/vendor/autoload.php';
//require_once APPPATH.'third_party/omise-php/lib/Omise.php';// ถ้าติดตั้ง ธรรมดาให้ เรียกใช้งานแบบนี้
define('OMISE_API_VERSION', '2019-05-29'); // เข้าระบบ omise และคลิกที่อีเมล คลิก api version เลือกระหว่าง ทดสอบ กับ ใช้งานจริง
define('OMISE_PUBLIC_KEY', 'pkey_test');
define('OMISE_SECRET_KEY', 'skey_test');
class Payment extends MX_Controller
{
public function __construct(){
parent::__construct();
}
public function index(){
$this->load->view('payment_view');
}
public function create(){
$post = $this->input->post();
$omiseToken = $post['omiseToken']; // omiseToken จะถูกส่งมาอัตโนมัติผ่าน omise form
$return_uri = base_url("payment/complete/".$ref_id); // ในขั้นตอนนี้ให้สร้าง ref_id สำหรับอ้างอิงไว้ใช้ในขั้นตอนต่อไป อาจจะใช้เป็น order id ก็ได้ ประมาณว่า order นี้กำลังจะชำระเงิน
$charge = OmiseCharge::create(array(
'amount' => $amount,
'currency' => 'THB',
'card' => $omiseToken,
'return_uri' => $return_uri, // return_uri คือ uri สุดท้ายที่จะกลับมาที่หน้าเว็บไซต์ของเรา
));
$charge_id = $charge['id'];
$authorize_uri = $charge['authorize_uri'];
// จังหวะนี้สำคัญ ก่อนที่จะ redirect ไปจากหน้านี้ ให้บันทึก ref_id และ charge_id ไว้ในฐานข้อมูลของเรา
// เพื่อใช้อ้างอิงว่า transaction นี้ สำเร็จ หรือ ไม่สำเร็จ
redirect($authorize_uri,'refresh'); // เราจะรีไปยังหน้าการยืนยันตัวตนผ่านระบบ OTP ของธนาคารนั้น ๆ
}
public function complete(){
$ref_id = $this->input->get("ref_id"); // ใช้ ref_id คิวรี่หา charge_id แล้วใช้หาค่า status ว่า transaction นี้สำเร็จหรือไม่สำเร็จ
$charge = OmiseCharge::retrieve($charge_id);
if($charge['status'] === 'successful') {
// เงินเข้าบัญชีเรียบร้อยแล้ว
}else{
// อาจจะ failed หรือ pending อยู่
}
}
}
- เราสามารถทดสอบการทำงานได้ โดยเปิดไปที่ Payment Controller เช่น http://localhost:8080/payment
- กรณีที่เราจะเปิดใช้งาน การชำระเงินจริง ๆ ต้องเข้าระบบของ omise และเปลี่ยน mode จาก Sandbox เป็น Live ก่อน และนำ publicKey และ secretKey มาเปลี่ยนใน Code ของเราด้วย
ทดสอบใช้งานระบบได้ที่ www.ivomaker.com สมัครสมาชิกและเลือกเติมเครดิต