ระบบเติมทรูมันนี่ เค้าทำกันยังไง มันยากไหม มาดูกันครับ
ระบบเติมเงินด้วยบัตรทรูมันนี่ สามารถทำไปใช้งานได้หลายอย่างมากๆ เช่น เติมแต้มในเกมส์, เติม VIP เว็บ..., เติมนู้นเติมนี่เติมนั้น บลาๆ
พอดีผมว่างๆก็เลยศึกษาเรื่องนี้ดู ประกอบกับมีน้องคนนึงที่ให้ผมทำโปรเจคให้เค้าได้ทิ้งมรดกไว้ให้ผม เป็นอุปกรณ์ที่สำคัญมากๆสำหรับโปรเจคที่เรากำลังจะทำกัน
ขอบอกว่าผมไม่ได้มาจากเว็บไหน หรือเป็นคู่แข่งใคร ทุกอย่างที่ผมทำเองคิดระบบเอง น่ะจ้ะ
มาเริ่มกันเลย!
อย่างแรกคือฐานข้อมูลก่อนเป็นที่ๆเก็บเลขบัตรทรูมันนี่ที่เติมแล้วและยังไม่ได้เติม
ผมใช้ Web Hosting ปกติๆ ไม่ใช่ VPS หรือ COLO สร้างตามผม
Code (SQL)
-- phpMyAdmin SQL Dump
-- version 2.11.11.3
-- http://www.phpmyadmin.net
--
-- Host: localhost
-- Generation Time: Oct 24, 2014 at 12:01 PM
-- Server version: 5.5.40
-- PHP Version: 5.3.3
SET SQL_MODE="NO_AUTO_VALUE_ON_ZERO";
--
-- Database: `web`
--
-- --------------------------------------------------------
--
-- Table structure for table `truemoney`
--
CREATE TABLE IF NOT EXISTS `truemoney` (
`ID` int(10) NOT NULL AUTO_INCREMENT,
`TranID` varchar(12) NOT NULL,
`TM` varchar(14) NOT NULL,
`CusID` varchar(10) NOT NULL,
`Ref1` varchar(50) CHARACTER SET tis620 NOT NULL,
`Ref2` varchar(50) CHARACTER SET tis620 NOT NULL,
`Ref3` varchar(50) CHARACTER SET tis620 NOT NULL,
`Status` enum('WAIT','SUCCESS','INVALID','USED') NOT NULL DEFAULT 'WAIT',
`Amount` enum('NO','50','90','150','300','500','1000') NOT NULL DEFAULT 'NO',
`Time` datetime NOT NULL,
`IP` varchar(15) NOT NULL,
PRIMARY KEY (`ID`),
UNIQUE KEY `TranID` (`TranID`)
) ENGINE=InnoDB DEFAULT CHARSET=latin1 AUTO_INCREMENT=227 ;
--
-- Dumping data for table `truemoney`
--
TranID = ค่าที่ระบบ Random ขึ้นมา
TM = คือเลขบัตรทรูมันนี่ 14 หลัก
เพื่อที่ว่าถ้ามีคนใส่เลขบัตรทรูมันนี่ชุดเดียวกัน2ครั้งหรือมากกว่า เราจะได้แยกออกว่ามันไม่ได้เข้ามาครั้งเดียว,
CusID คล้ายๆกับหมายเลขร้านค้า(สำหรับเอาไปเปิดเป็นธุรกิจไม่ได้ใช้เอง)
ส่วน Ref1,2,3 ก็คล้ายๆกับระบบทั่วๆจำเป็นไปต้องมี อธิบายแค่นี้พอ ที่เหลือผมว่าหลายท่านเข้าใจกันดีอยู่แล้ว
ขั้นต่อมาทำหน้าต่างเติมเงินสำหรับทดสอบกันเลย
Config database ทั้วๆไป
conf.php
<?php
$SQL_host = 'localhost';
$SQL_user = 'root';
$SQL_pass = 'password';
$SQL_db = 'web';
?>
หน้าต่างเทส ที่มันจะสุ่ม TranID, TM, CusID, Ref1,2,3
test.php
<?php
function generateID($length) {
$characters = '0123456789abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
function generateTM($length) {
$characters = '0123456789';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
function generateRef($length) {
$characters = 'abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ';
$randomString = '';
for ($i = 0; $i < $length; $i++) {
$randomString .= $characters[rand(0, strlen($characters) - 1)];
}
return $randomString;
}
?>
<html>
<head>
<title>True money Tutorials</title>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"></head>
<body>
<form name="form1" method="post" action="test_sc.php">
<table width="400" border="1" style="width: 400px">
<tbody>
<tr>
<td width="125"> ID</td>
<td width="180">
<input name="TranID" type="text" id="TranID" size="20" value="<?php echo generateID(12);?>">
</td>
</tr>
<tr>
<td width="125"> TM</td>
<td width="180">
<input name="TM" type="text" id="TM" size="20" value="<?php echo generateTM(14);?>">
<input name="CusID" type="hidden" id="CusID" size="20" value="<?php echo generateRef(10);?>">
<input name="Ref1" type="hidden" id="Ref1" size="20" value="<?php echo generateRef(10);?>">
<input name="Ref2" type="hidden" id="Ref2" size="20" value="<?php echo generateRef(10);?>">
<input name="Ref3" type="hidden" id="Ref3" size="20" value="<?php echo generateRef(10);?>">
</td>
</tr>
</tbody>
</table>
<br>
<input type="submit" name="Submit" value="Add">
</form>
</body>
</html>
test_sc.php
<?php
include 'conf.php';
mysql_connect($SQL_host,$SQL_user,$SQL_pass);
mysql_select_db($SQL_db);
$TranID = $_POST["TranID"];
$TM = $_POST["TM"];
$CusID = $_POST["CusID"];
$Ref1 = $_POST["Ref1"];
$Ref2 = $_POST["Ref2"];
$Ref3 = $_POST["Ref3"];
$Time = date("Y-m-d H:i:s");
$strSQL = "INSERT INTO truemoney (ID,TranID,TM,CusID,Ref1,Ref2,Ref3,Status,Amount,Time,IP) VALUES ('','".$TranID."','".$TM."','".$CusID."','".$Ref1."','".$Ref2."','".$Ref3."','WAIT','NO','".$Time."','".$_SERVER['REMOTE_ADDR']."')";
$objQuery = mysql_query($strSQL);
echo "OK";
mysql_close();
?>
ขอพักไว้ก่อน เดี๋ยวกลับมาต่อเรื่องอุปกรณ์และการเขียนโปรแกรมเชื่อมต่อกับ TruemoveTag : PHP, MySQL, WebService, VB.NET, VS 2010 (.NET 4.x)
ประวัติการแก้ไข 2014-10-24 19:28:57
Date :
2014-10-24 19:22:33
By :
stbungaof
View :
3690
Reply :
7
รอชมครับ
Date :
2014-10-25 07:33:00
By :
mr.win
มาแล้วครับ พาทนี้จะพูดถึงการเตรียมอุปกรณ์
อุปกรณ์มีแค่ 2 อย่าง
อย่างที่1 Arduino MEGA 2560 R3
อย่างที่2 SIM900 GSM/GPRS Shield for Arduino UNO MEGA 2560
ขั้นแรกเราก็อัดโปรแกรมใส่ Arduino MEGA กันก่อนเลย
โปรแกรมที่ใช้ในการเบิร์น AVR ตามลิ้งค์นี้เลยครับ
http://downloads.arduino.cc/arduino-1.0.6-windows.exe
เริ่มจากเอาเจ้า Arduino MEGA เสียบกับคอมเราก่อน จากนั้นเปิดโปรแกรม Arduino ขึ้นมา
เข้าไปที่ Tools -> Board -> Arduino MEGA 2560 or MEGA ADK
จากนั้นเลือก Serial Port ตามรูป
วางโค้ดนี้ลงไป แล้วกด Upload
Code (Java)
#define GSM_ON 9
#define GSM_RESET 10
void setup()
{
Serial1.begin(9600); // the GPRS baud rate
Serial.begin(9600); // the GPRS baud rate
pinMode(GSM_ON, OUTPUT); // sets pin 9 as output
pinMode(GSM_RESET, OUTPUT);
digitalWrite(GSM_ON, HIGH);
delay(1200);
digitalWrite(GSM_ON, LOW);
delay(5000);
}
void loop()
{
if (Serial1.available()>0)
Serial.write(Serial1.read());
if (Serial.available()>0)
Serial1.write(Serial.read());
}
ถ้าขึ้นแบบนี้แสดงว่าผ่านครับ
จากนั้นเอาอุปกรณ์ทั้งหมดมาต่อเข้าด้วย พร้อมเสียบสาย tx rx ตามรูป
Date :
2014-10-25 12:51:04
By :
stbungaof
สุดยอดครับ รอชมว่าจะเอาเจ้าเครื่องนี้ไปต่อกับ hosting ยังไงเพราะเช่าเขามาๆม่ได้วางเอง :)
Date :
2014-10-26 01:28:58
By :
รอ
หายไปนาน กลับมาแล้วครับ
อันนี้เป็น php ที่เอาไว้ติดต่อกับโปรแกรม
cmd.php
<?php
include 'conf.php';
$Key = $_GET["pass"];
$Do = $_GET["do"];
$Pass = "thongramai";
if ($Key == $Pass && $Do == "get")
{
mysql_connect($SQL_host,$SQL_user,$SQL_pass);
mysql_select_db($SQL_db);
$strSQL1 = "SELECT * FROM truemoney WHERE Status = 'WAIT'";
$objQuery1 = mysql_query($strSQL1);
$objResult1 = mysql_fetch_array($objQuery1);
if(!$objResult1)
{
echo "STANDBY";
}
else
{
$objConnect = mysql_connect($SQL_host,$SQL_user,$SQL_pass);
$objDB = mysql_select_db($SQL_db);
$strSQL = "SELECT * FROM truemoney WHERE Status = 'WAIT'";
$objQuery = mysql_query($strSQL);
while($objResult = mysql_fetch_array($objQuery))
{
$TranID = $objResult["TranID"];
$TM = $objResult["TM"];
$CusID = $objResult["CusID"];
$Ref1 = $objResult["Ref1"];
$Ref2 = $objResult["Ref2"];
$Ref3 = $objResult["Ref3"];
$Time = $objResult["Time"];
echo '<TranID>'.$TranID.'</TranID><TM>'.$TM.'</TM><CusID>'.$CusID.'</CusID><Ref1>'.$Ref1.'</Ref1><Ref2>'.$Ref2.'</Ref2><Ref3>'.$Ref3.'</Ref3><Time>'.$Time.'</Time><br/>';
}
mysql_close();
}
mysql_close();
}
else if ($Key == $Pass && $Do == "post")
{
$TranID = $_GET["TranID"];
$Status = $_GET["status"];
$Amount = $_GET["amount"];
mysql_connect($SQL_host,$SQL_user,$SQL_pass);
mysql_select_db($SQL_db);
$strSQL = "UPDATE truemoney SET Status = '".$Status."' , Amount = '".$Amount."' WHERE TranID = '".$TranID."' ";
$objQuery = mysql_query($strSQL);
$strSQL2 = "SELECT * FROM truemoney WHERE TranID = '".$TranID."' and Status = '".$Status."' and Amount = '".$Amount."'";
$objQuery2 = mysql_query($strSQL2);
$objResult = mysql_fetch_array($objQuery2);
if(!$objResult)
{
echo "ERROR|POST";
}
else
{
echo "OK";
}
mysql_close();
}
else
{
echo "ERROR";
}
?>
นี่ไฟล์ VB.NET 2010 ครับ
http://www.mediafire.com/?rkt4nal9cjey08o
แก้ที่ Port Name ก่อนน้ะครับ ให้ตรงกับเจ้าอุปรณ์ของเรา
Code (VB.NET)
Dim Portname As String = "COM3" 'แก้ตรงนี้ครับ
ประวัติการแก้ไข 2014-10-27 06:02:46
Date :
2014-10-27 05:58:31
By :
stbungaof
ไฟล์ VB ลองเอาไปเล่นกันดูน้ะครับ ผมเขียนไว้แบบง่ายๆ
ใครจะเอาไปดัดแปลงไปทำอะไรก็ตามใจน้ะครับ แต่ขออย่างเดียวห้ามนำไปขายต่อ
ใครเอาไปขายต่อขอให้ไม่เจริญ!!
อุปกรณ์หาซื้อได้ที่
http://www.arduino.in.th/
http://www.arduinoall.com/
บายๆครับ
Date :
2014-10-27 06:01:41
By :
stbungaof
สเต็บเทพครับ
Date :
2014-10-27 08:55:01
By :
mr.win
เดี๋ยวผมทำโปรเจคอะไรเจ๋งๆ จะเอามาแจกอีกครับ
Date :
2014-10-27 10:48:52
By :
stbungaof
Load balance : Server 03