Omise อ่านว่า โอมิเซะ คือ ระบบชำระเงินออนไลน์ ( Online Payment Gateway ) รองรับช่องทางการชำระเงินที่หลากหลาย บัตรเครดิต / เดบิต Truemoney Wallet / PromptPay / Alipay เป็นต้น ดูเพิ่มเติมได้ที่ Omise Payment Method
สามารถ Download Omise.php ได้ที่ Download omise.php
<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<link href="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/css/bootstrap.min.css">
<title>เติมเงิน</title>
</head>
<body>
<div class="container">
<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">
<button type="submit" id="checkoutButton">Checkout</button>
</form>
</div>
<script type="text/javascript" src="https://cdn.omise.co/omise.js"></script>
<script src="https://cdn.jsdelivr.net/npm/bootstrap@5.0.1/dist/js/bootstrap.bundle.min.js"></script>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.5.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
OmiseCard.configure({
publicKey: "pkey_test_xxxxxx"
});
var button = document.querySelector("#checkoutButton");
var form = document.querySelector("#checkoutTrueWallet");
button.addEventListener("click", (event) => {
event.preventDefault();
OmiseCard.open({
amount: 300*100, // จำนวนเงิน 300 ต้องระบุเป็น 30000 หรือ คูณด้วย 100
currency: "THB",
locale: "TH",
defaultPaymentMethod: "truemoney", // สามารถใช้เป็น rabbit_linepay, promptpay,credit_card
frameDescription: "ร้าน Matumweb",
image: "img/logo.img",
onCreateTokenSuccess: (nonce) => {
if (nonce.startsWith("tokn_")) {
form.omiseToken.value = nonce;
} else {
form.omiseSource.value = nonce;
};
form.submit();
}
});
});
});
</script>
</body>
</html>
<?php
defined('BASEPATH') OR exit('No direct script access allowed');
require_once APPPATH.'third_party/omise-php/lib/Omise.php';
define('OMISE_API_VERSION', "2019-05-29");
define('OMISE_PUBLIC_KEY', "pkey_test_xxxxxx");
define('OMISE_SECRET_KEY', "skey_test_xxxxxx");
class Omise extends MY_Controller {
public function __construct()
{
parent::__construct();
}
public function charge()
{
$source = $this->input->post('omiseSource'); // omiseToken จะถูกส่งมาอัตโนมัติผ่าน omise form
$money = $this->input->post('money');
$currencyCode = 764;
$amount_conv = $money * 100; //จำนวนเงิน 300 ต้องระบุเป็น 30000 หรือ คูณด้วย 100
$return_uri = base_url("omise/check/".$topup_id); // ในขั้นตอนนี้ให้สร้าง topup_id สำหรับอ้างอิงไว้ใช้ในขั้นตอนต่อไป อาจจะใช้เป็น order id ก็ได้ ประมาณว่า order นี้กำลังจะชำระเงิน
$charge = OmiseCharge::create([
'amount' => $amount_conv,
'currency' => "THB",
'return_uri' => $return_uri,
'source' => $source,
]);
$charge_id = $charge['id'];
$authorize_uri = $charge['authorize_uri'];
// จังหวะนี้สำคัญ ก่อนที่จะ redirect ไปจากหน้านี้ ให้บันทึก topup_id และ charge_id ไว้ในฐานข้อมูลของเรา
// เพื่อใช้อ้างอิงว่า transaction นี้ สำเร็จ หรือ ไม่สำเร็จ
redirect($authorize_uri,'refresh'); // เราจะรีไปยังหน้าการยืนยันตัวตนผ่านระบบ OTP ของธนาคารนั้น ๆ
}
public function check($topup_id){
sleep(5); // เพื่อรอให้ Omise ทำงานสมบูรณ์ก่อน
// ใช้ topup_id คิวรี่หา charge_id แล้วใช้หาค่า status ว่า transaction นี้สำเร็จหรือไม่สำเร็จ
$charge = OmiseCharge::retrieve($charge_id);
if($charge['status'] === 'successful') {
// เงินเข้าบัญชีเรียบร้อยแล้ว
}else{
// อาจจะ failed หรือ pending อยู่
}
}
}
?>
ที่มาโดย : https://www.omise.co/
25 September 2021
23 September 2021
23 September 2021
26 March 2020
19 January 2020
© 2018 Matumweb.com | Template by Inovatik