Omise อ่านว่า "โอมิเซะ" เป็นระบบชำระเงินออนไลน์ที่รองรับช่องทางการชำระเงินหลากหลาย เช่น บัตรเครดิต/เดบิต, TrueMoney Wallet, PromptPay, Alipay เป็นต้น คุณสามารถศึกษารายละเอียดเพิ่มเติมเกี่ยวกับ Omise Payment Method ได้ที่เว็บไซต์อย่างเป็นทางการของ Omise
ขั้นตอนการติดตั้งและใช้งาน Omise กับ CodeIgniter
1. ดาวน์โหลดไลบรารี Omise PHP
คุณสามารถดาวน์โหลด omise.php
ได้จาก Omise PHP GitHub Repository
2. โครงสร้างไฟล์ HTML และการเขียน JavaScript ตัวอย่างฟอร์ม HTML สำหรับการชำระเงินผ่าน TrueMoney Wallet:
3. โค้ด PHP สำหรับการจัดการการเรียกชำระเงิน
Code HTML
<form id="checkoutTrueWallet" method="POST" action="omise/charge">
<input type="hidden" name="omiseToken">
<input type="hidden" name="omiseSource">
<input type="text" name="money" value="300" class="form-control mb-3" placeholder="จำนวนเงิน">
<button type="submit" id="checkoutButton" class="btn btn-primary">Checkout</button>
</form>
Code ๋Javascript
<script src="https://cdn.omise.co/omise.js"></script>
<script>
$(document).ready(function() {
OmiseCard.configure({
publicKey: "pkey_test_xxxxxx" // ใส่ Public Key ที่ได้จาก Omise
});
var button = document.querySelector("#checkoutButton");
var form = document.querySelector("#checkoutTrueWallet");
button.addEventListener("click", (event) => {
event.preventDefault();
OmiseCard.open({
amount: 300 * 100, // จำนวนเงิน (300) ต้องระบุเป็นหน่วยสตางค์
currency: "THB",
locale: "th",
defaultPaymentMethod: "truemoney", // วิธีการชำระเงิน
frameDescription: "ร้าน Matumweb",
image: "img/logo.img",
onCreateTokenSuccess: (nonce) => {
if (nonce.startsWith("tokn_")) {
form.omiseToken.value = nonce;
} else {
form.omiseSource.value = nonce;
}
form.submit();
}
});
});
});
</script>
Code PHP
require_once APPPATH.'third_party/omise-php/lib/Omise.php';
define('OMISE_API_VERSION', "2019-05-29");
define('OMISE_PUBLIC_KEY', "pkey_test_xxxxxx"); // ใส่ Public Key ที่ได้จาก Omise
define('OMISE_SECRET_KEY', "skey_test_xxxxxx"); // ใส่ Secret Key ที่ได้จาก Omise
class Omise extends MY_Controller {
public function __construct() {
parent::__construct();
}
public function charge() {
$source = $this->input->post('omiseSource'); // รับค่า Source/Token ที่ส่งมาจาก Omise form
$money = $this->input->post('money');
$amount_conv = $money * 100; // แปลงเป็นหน่วยสตางค์
// สร้าง return URI เพื่อใช้ในขั้นตอนการตรวจสอบ
$topup_id = uniqid(); // สร้าง ID อ้างอิง (อาจใช้ Order ID)
$return_uri = base_url("omise/check/".$topup_id);
$charge = OmiseCharge::create([
'amount' => $amount_conv,
'currency' => "THB",
'return_uri' => $return_uri,
'source' => $source,
]);
$charge_id = $charge['id'];
$authorize_uri = $charge['authorize_uri'];
// บันทึกข้อมูล charge_id และ topup_id ไว้ในฐานข้อมูล (ยังไม่ได้เขียนในตัวอย่างนี้)
redirect($authorize_uri, 'refresh'); // ไปยังหน้าการยืนยันตัวตน
}
public function check($topup_id) {
sleep(5); // รอให้ Omise ดำเนินการเสร็จสิ้น
// ดึง charge_id จากฐานข้อมูลโดยอ้างอิงจาก topup_id
$charge = OmiseCharge::retrieve($charge_id);
if ($charge['status'] === 'successful') {
// การชำระเงินสำเร็จ
} else {
// การชำระเงินล้มเหลวหรืออยู่ระหว่างรอดำเนินการ
}
}
}
?>
16 December 2024
21 November 2024
25 September 2021
23 September 2021
23 September 2021
26 March 2020
19 January 2020
© 2018 Matumweb.com | Template by Inovatik