Site icon บริษัท โค๊ดบี จำกัด

ติดตั้งใช้งาน Omise [ PHP ] ระบบชำระเงินออนไลน์

ติดตั้งใช้งาน-Omise-PHP-ระบบชำระเงินออนไลน์

ติดตั้งใช้งาน-Omise-PHP-ระบบชำระเงินออนไลน์

Omise อ่านว่า โอมิเซะ คือ ระบบชำระเงินออนไลน์ ( Online Payment Gateway ) รองรับช่องทางการชำระเงินที่หลากหลาย บัตรเครดิต / เดบิต  Truemoney Wallet / PromptPay / Alipay เป็นต้น ดูเพิ่มเติมได้ที่ Omise Payment Method

สิ่งที่ควรทราบก่อนใช้งาน Omise

เริ่มติดตั้งใช้งาน Omise กับ Codeigniter

require_once APPPATH.'third_party/omise-php/vendor/autoload.php';
require_once APPPATH.'third_party/omise-php/lib/Omise.php';

สร้าง​ UI การชำระเงินด้วยบัตรเครดิต / เดบิต

ส่วนของ html ในไฟล์ payment_view.php

// ไฟล์ payment_view.php ส่วนของ form การกรอกข้อมูลบัตรเครดิต
">

ส่วนของ Javascript ในไฟล์ payment_view.php


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 อยู่
        }
	}
	
}

ทดสอบใช้งานระบบได้ที่ www.ivomaker.com สมัครสมาชิกและเลือกเติมเครดิต

Exit mobile version