├── .profile ├── LICENSE.md ├── MinsaPayDesignSystem.css ├── README.md ├── add_account.php ├── add_account_check.php ├── balance_check.php ├── charge.php ├── charge_check.php ├── db.php ├── image ├── MinsaPayHeader.png ├── MinsaPayHeader@2x.png └── MinsaPayLogo.png ├── include ├── boothSignupAgreement.js ├── footer.js ├── head.js └── header.js ├── index.php ├── login.html ├── login_check.php ├── logout.php ├── main.php ├── payment_check.php ├── refund.php ├── refund_check.php ├── signUp.html └── signUp_check.php /.profile: -------------------------------------------------------------------------------- 1 | chmod -R 777 Storage -------------------------------------------------------------------------------- /LICENSE.md: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2019 MinsaPay 4 | 5 | Permission is hereby granted, free of charge, to any person obtaining a copy 6 | of this software and associated documentation files (the "Software"), to deal 7 | in the Software without restriction, including without limitation the rights 8 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 9 | copies of the Software, and to permit persons to whom the Software is 10 | furnished to do so, subject to the following conditions: 11 | 12 | The above copyright notice and this permission notice shall be included in all 13 | copies or substantial portions of the Software. 14 | 15 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 16 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 17 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 18 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 19 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 20 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 21 | SOFTWARE. 22 | -------------------------------------------------------------------------------- /MinsaPayDesignSystem.css: -------------------------------------------------------------------------------- 1 | * { 2 | margin-top: 10px; 3 | margin-bottom: 10px; 4 | font-family: -apple-system, system-ui, BlinkMacSystemFont,"Segoe UI",Roboto,"Helvetica Neue",Arial,sans-serif; 5 | padding-top: 10px; 6 | padding-bottom: 10px; 7 | color: black; 8 | } 9 | 10 | body { 11 | text-align: center; 12 | max-width: 400px; 13 | width: 95%; 14 | margin: 0; 15 | left: 50%; 16 | position: absolute; 17 | transform: translate(-50%, 0%); 18 | } 19 | 20 | img{ 21 | width:100%; 22 | } 23 | 24 | h1 { 25 | font-size: 28px; 26 | } 27 | 28 | h2 { 29 | font-size: 24px; 30 | } 31 | 32 | h3 { 33 | font-size: 20px; 34 | } 35 | 36 | h4 { 37 | font-size: 16px; 38 | } 39 | 40 | h5 { 41 | font-size: 15px; 42 | } 43 | 44 | h6 { 45 | color: #777777; 46 | font-size: 12px; 47 | } 48 | 49 | input { 50 | width: 100%; 51 | font-size: 16px; 52 | border: 0px; 53 | border-bottom: 1px solid black; 54 | border-radius: 0px; 55 | padding: 0px; 56 | padding-top: 10px; 57 | padding-bottom: 10px; 58 | } 59 | 60 | input[type=submit] { 61 | background-color: #228b22; 62 | border: none; 63 | color: white; 64 | text-align: center; 65 | text-decoration: none; 66 | display: inline-block; 67 | font-size: 16px; 68 | border-radius: 12px; 69 | } 70 | 71 | hr { 72 | padding: 0px; 73 | } 74 | 75 | a { 76 | text-decoration: none; 77 | } 78 | 79 | button { 80 | width: 100%; 81 | border: none; 82 | text-align: center; 83 | text-decoration: none; 84 | display: inline-block; 85 | font-size: 16px; 86 | border-radius: 12px; 87 | } 88 | 89 | .gap { 90 | height: 50px 91 | } 92 | 93 | .button1 { 94 | color: #228b22; 95 | background-color: #eeeeee; 96 | } 97 | 98 | .button2 { 99 | color: #B30D2B; 100 | background-color: #eeeeee; 101 | } 102 | 103 | table { 104 | width: 100%; 105 | border-spacing: 0; 106 | } 107 | 108 | th { 109 | text-align: left; 110 | margin: 0px; 111 | } 112 | 113 | td { 114 | text-align: left; 115 | margin: 0px; 116 | } 117 | 118 | input[type=radio] { 119 | width: 5% 120 | } 121 | 122 | .smallp { 123 | margin: 0px; 124 | text-align: left; 125 | font-size: 12px; 126 | color: gray; 127 | margin-left: 10px; 128 | display: inline-block; 129 | } 130 | 131 | li { 132 | text-align: left; 133 | margin: 0px; 134 | } 135 | 136 | form { 137 | padding: 0px; 138 | margin: 0px; 139 | } 140 | 141 | .BalanceRecordTable { 142 | text-align: center; 143 | font-size: 10px; 144 | } 145 | 146 | .BalanceRecordTable tr:nth-child(even) {background: #eeeeee} 147 | .BalanceRecordTable tr:nth-child(odd) {background: #ffffff} 148 | 149 | .BalanceRecordTable th{ 150 | text-align: center; 151 | background-color: #FBBC56; 152 | border: 0.5px solid black; 153 | } 154 | .BalanceRecordTable td{ 155 | text-align: center; 156 | border: .5px solid black; 157 | } 158 | 159 | .dataShowerH2 { 160 | text-align: left; 161 | padding: 0px; 162 | margin: 0px; 163 | margin-bottom: 10px; 164 | } 165 | 166 | .dataShower { 167 | font-weight: normal; 168 | text-align: left; 169 | padding: 0px; 170 | margin: 0px; 171 | margin-top: 10px; 172 | } 173 | 174 | summary { 175 | font-size: 20px; 176 | font-weight: bold; 177 | text-align: left; 178 | } 179 | 180 | label { 181 | margin: 0px; 182 | } -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ![민사페이 헤더 이미지](image/MinsaPayHeader@2x.png) 2 | 3 | ## MinsaPay 4 | 5 | 민족제(민사고 여름 축제)를 위한 결제 서버와 웹 앱입니다. 6 | 7 | Payment Server and Payment Web App for [KMLA](https://en.wikipedia.org/wiki/Korean_Minjok_Leadership_Academy) Minjok Festival (Summer Festival) 8 | 9 | ## Credits 10 | 11 | |역할|담당| 12 | |----|----| 13 | |Project Management|[KMLA](https://en.wikipedia.org/wiki/Korean_Minjok_Leadership_Academy) Department of Finances and Information| 14 | |Payment Logic + Back-End Dev|[Jueon An](https://github.com/JueonAn)| 15 | |UI/UX Design + Front-End Dev|[Sunghyun Cho](https://github.com/anaclumos)| 16 | |RFID Tech Consultation|Seung Ho Lee| 17 | 18 | ## Tech Stacks 19 | 20 | |Tech|Stacks| 21 | |----|----| 22 | |Server|Heroku + AWS Route 53| 23 | |Database|ClearDB + SQL| 24 | |Back-end Language|PHP| 25 | |Front-end|HTML5, Javascript| 26 | |Root Domain Forwarding|AWS S3| 27 | -------------------------------------------------------------------------------- /add_account.php: -------------------------------------------------------------------------------- 1 | query($check); 17 | $row=$result->fetch_array(MYSQLI_ASSOC); 18 | $boothname = $row['boothname']; 19 | $isAdmin = $row['admin']; 20 | 21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 22 | 23 | if($isAdmin != 1) 24 | { 25 | header ('Location: ./main.php'); 26 | exit(); 27 | } 28 | else 29 | { 30 | 31 | // 행정위 직원이 들어왔을 때(정상적인 상황) 32 | ?> 33 | 34 | 35 | 36 | 37 | 38 | 민사페이 계좌 등록 39 | 40 | 41 | 42 |

계좌 개설 · 행정위원회

43 |
44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 61 | 62 | 63 | 69 | 70 | 71 | 72 | 73 | 74 | 79 | 80 | 81 | 86 | 87 | 88 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 |

아이디

문화기획부 프리패스

56 | 60 |
64 | 68 |

가입 유형

75 | 78 |
82 | 85 |
89 | 92 |

RFID 태그

101 | 102 |
103 | 104 | 105 | 106 | -------------------------------------------------------------------------------- /add_account_check.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 계좌 등록 확인 7 | 8 | 9 | query($check); 25 | $row=$result->fetch_array(MYSQLI_ASSOC); 26 | $boothname = $row['boothname']; 27 | $isAdmin = $row['admin']; 28 | 29 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 30 | if($isAdmin != 1) 31 | { 32 | header ('Location: ./main.php'); 33 | exit(); 34 | } 35 | else 36 | { 37 | // 행정위 직원이 들어왔을 때(정상적인 상황) 38 | $numid=$_POST['id']; 39 | if (isset($_POST['freepass']) && $_POST['freepass'] == 'yes') 40 | $freepass=1; 41 | else 42 | $freepass=0; 43 | switch($_POST['info']) 44 | { 45 | case "senior": 46 | $balance=7000; 47 | break; 48 | case "teacher": 49 | $balance=10000; 50 | break; 51 | default: 52 | $balance=0; 53 | } 54 | $rfid=$_POST['rfid']; 55 | 56 | if($numid==NULL || $rfid==NULL) 57 | { 58 | echo "빈 칸을 모두 채워주세요"; 59 | echo "
"; 60 | exit(); 61 | } 62 | $check="SELECT *from account_info WHERE rfid='$rfid'"; 63 | $result=$mysqli->query($check); 64 | if($result->num_rows==1) 65 | { 66 | echo "이미 등록된 학생증입니다."; 67 | echo "
"; 68 | exit(); 69 | } 70 | $date = date("m/d h:i:s",strtotime ("+9 hours")); 71 | $query = "INSERT INTO account_info (rfid,balance,freepass,idnumber) VALUES ('$rfid','$balance','$freepass','$numid'); "; 72 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp, price) VALUES ('$numid','$boothname',0,'$balance','$date','$balance')"; 73 | 74 | if (mysqli_multi_query($mysqli, $query)) 75 | { 76 | ?> 77 | 78 | 79 | 80 | "; 84 | } 85 | 86 | 87 | ?> 88 | -------------------------------------------------------------------------------- /balance_check.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 계좌 잔액 확인 7 | 8 | 9 | 10 | query($check); 16 | $row=$result->fetch_array(MYSQLI_ASSOC); 17 | if($result->num_rows==0) 18 | { 19 | echo "등록되지 않은 계좌입니다."; 20 | exit(); 21 | } 22 | $balance = $row['balance']; 23 | $id = $row['idnumber']; 24 | echo ""; 25 | echo ""; 26 | echo ""; 27 | echo ""; 28 | if($row['freepass']) { 29 | echo ""; 30 | echo ""; 31 | } 32 | echo "

계좌 번호

", $id, "

잔액

", number_format($balance), "원

문화기획부 Freepass

Active

"; 33 | ?> 34 |

계좌 기록

35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | "); 49 | while($newrow = mysqli_fetch_array( $result ) ) 50 | { 51 | $number++; 52 | $time = $newrow['timestamp']; 53 | $booth = $newrow['booth']; 54 | switch($newrow['what']) 55 | { 56 | case 0: 57 | $what = "개설"; 58 | break; 59 | case 1: 60 | $what = "충전"; 61 | break; 62 | case 2: 63 | $what = "결제"; 64 | break; 65 | case 3: 66 | $what = "반납"; 67 | break; 68 | default: 69 | $what = "오류"; 70 | } 71 | $balance = $newrow['balance']; 72 | echo ""; 73 | echo ""; 74 | echo ""; 75 | echo ""; 76 | echo ""; 77 | echo ""; 78 | echo ""; 79 | } 80 | echo(""); 81 | ?> 82 |
번호시간부스 이름분류잔액
".$number."".$time."".$booth."".$what."".number_format($balance)."원
83 | 84 | 85 | -------------------------------------------------------------------------------- /charge.php: -------------------------------------------------------------------------------- 1 | query($check); 17 | $row=$result->fetch_array(MYSQLI_ASSOC); 18 | $boothname = $row['boothname']; 19 | $isAdmin = $row['admin']; 20 | 21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 22 | if($isAdmin != 1) 23 | { 24 | header ('Location: ./main.php'); 25 | exit(); 26 | } 27 | else 28 | { 29 | ?> 30 | 31 | 32 | 33 | 34 | 35 | 민사 페이 계좌 충전 36 | 37 | 38 | 39 |

계좌 충전 · 행정위원회

40 |
41 |
42 | 43 | 44 |
45 |
46 | 47 | 48 |
49 |
50 | 51 |
52 |
53 | 54 | 55 | 56 | -------------------------------------------------------------------------------- /charge_check.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 계좌 충전 확인 7 | 8 | 9 | query($check); 26 | $row=$result->fetch_array(MYSQLI_ASSOC); 27 | $boothname = $row['boothname']; 28 | $isAdmin = $row['admin']; 29 | 30 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 31 | if($isAdmin != 1) 32 | { 33 | header ('Location: ./main.php'); 34 | exit(); 35 | } 36 | else 37 | { 38 | $amount=$_POST['amount']; 39 | $rfid = $_POST['rfid']; 40 | //먼저 해당 rfid가 가입되어 있는지 검사 41 | $check="SELECT *from account_info WHERE rfid='$rfid'"; 42 | $result=$mysqli->query($check); 43 | if($result->num_rows==1) 44 | { 45 | //한 개 계정이 검출 46 | $current="SELECT * FROM account_info WHERE rfid='$rfid'"; 47 | $result2=$mysqli->query($current); 48 | $row2=$result2->fetch_array(MYSQLI_ASSOC); 49 | $idnum = $row2['idnumber']; 50 | $money=$row2['balance']; 51 | $total = $money + $amount; 52 | unset($_POST); 53 | $date = date("m/d h:i:s",strtotime ("+9 hours")); 54 | $query = "UPDATE account_info SET balance='$total' WHERE rfid='$rfid'; "; 55 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp, price) VALUES ('$idnum','$boothname',1,'$total','$date','$amount')"; 56 | 57 | if (mysqli_multi_query($mysqli, $query)) 58 | { 59 | echo $idnum," 계좌에 ",$amount,"원 만큼 충전하여 현재 잔액은 ",$total,"원입니다"; 60 | echo "
"; 61 | exit(); 62 | } 63 | else 64 | echo "
"; 65 | } 66 | else 67 | { 68 | echo "등록되지 않은 학생증입니다."; 69 | echo "
"; 70 | exit(); 71 | } 72 | } 73 | ?> 74 | 75 | -------------------------------------------------------------------------------- /db.php: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /image/MinsaPayHeader.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayHeader.png -------------------------------------------------------------------------------- /image/MinsaPayHeader@2x.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayHeader@2x.png -------------------------------------------------------------------------------- /image/MinsaPayLogo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/minsapay/server/5a6a6cac6d14189f4de6fc5492f99870ac8b98f7/image/MinsaPayLogo.png -------------------------------------------------------------------------------- /include/boothSignupAgreement.js: -------------------------------------------------------------------------------- 1 | document.write(""); -------------------------------------------------------------------------------- /include/footer.js: -------------------------------------------------------------------------------- 1 | document.write('
© 닷넷. 모든 권리 보유.
'); -------------------------------------------------------------------------------- /include/head.js: -------------------------------------------------------------------------------- 1 | document.write(''); 2 | document.write(''); -------------------------------------------------------------------------------- /include/header.js: -------------------------------------------------------------------------------- 1 | document.write('

민사페이

'); -------------------------------------------------------------------------------- /index.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 7 | 8 | 9 | 10 | 11 | 14 |
12 |

계좌 조회

13 |
15 |
16 |
17 |
18 |
19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /login.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 운영진 로그인 7 | 8 | 9 | 10 |
11 | 12 | 15 | 16 | 19 | 20 | 23 |
13 |

운영진 로그인

14 |
17 | 18 |
21 | 22 |
24 | 25 |
26 | 27 | 28 | 29 | -------------------------------------------------------------------------------- /login_check.php: -------------------------------------------------------------------------------- 1 | query($check); 11 | 12 | if($result->num_rows==1) 13 | { 14 | //하나의 열을 배열로 가져오기 15 | $row=$result->fetch_array(MYSQLI_ASSOC); 16 | 17 | //MYSQLI_ASSOC 필드명으로 첨자 가능 18 | if(password_verify($pw, $row['userpw'])) 19 | { 20 | //로그인 성공 시 세션 변수 만들기 21 | $_SESSION['userid']=$id; 22 | 23 | //세션 변수가 참일 때 24 | if(isset($_SESSION['userid'])) 25 | { 26 | //로그인 성공 시 페이지 이동 27 | header('Location: ./main.php'); 28 | exit(); 29 | } 30 | } 31 | } 32 | ?> 33 | 38 | -------------------------------------------------------------------------------- /logout.php: -------------------------------------------------------------------------------- 1 | 7 | -------------------------------------------------------------------------------- /main.php: -------------------------------------------------------------------------------- 1 | 12 | 13 | 14 | 15 | 16 | 17 | 민사페이 18 | 19 | 20 | 21 | query($check); 28 | $row=$result->fetch_array(MYSQLI_ASSOC); 29 | $boothname = $row['boothname']; 30 | echo ""; 31 | echo "

현재 부스

",$boothname,"

"; 32 | $isAdmin = $row['admin']; 33 | if($isAdmin==1) 34 | { 35 | ?> 36 | 37 | 38 | 39 | 44 | 45 |
46 | 47 | 48 |
49 | 50 |
51 |
52 | 53 |

결제 기록

54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | "); 68 | while($newrow = mysqli_fetch_array( $result ) ) 69 | { 70 | $number++; 71 | $time = $newrow['timestamp']; 72 | $who = $newrow['who']; 73 | $price = $newrow['price']; 74 | $total += $price; 75 | echo ""; 76 | echo ""; 77 | echo ""; 78 | echo ""; 79 | echo ""; 80 | echo ""; 81 | } 82 | echo(""); 83 | ?> 84 |
번호시간구매금액
".$number."".$time."".$who."".number_format($price)."원
85 |
86 | 총액은 87 | 88 | 원 89 | 90 | 권한이 없습니다. 관리자에게 문의하세요."; 95 | } 96 | ?> 97 |
98 | 99 | 100 | 101 | 102 | -------------------------------------------------------------------------------- /payment_check.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 결제 확인 7 | 8 | 9 | 10 | query($check); 26 | $row=$result->fetch_array(MYSQLI_ASSOC); 27 | $boothname = $row['boothname']; 28 | $isAdmin = $row['admin']; 29 | 30 | //무권한/행정위 관리자가 들어왔을 때: 자기 위치로 이동 31 | if($isAdmin == 0 || $isAdmin == 1) 32 | { 33 | header ('Location: ./main.php'); 34 | exit(); 35 | } 36 | else 37 | { 38 | $price=$_POST['price']; 39 | $rfid = $_POST['rfid']; 40 | //먼저 해당 rfid가 가입되어 있는지 검사 41 | $check="SELECT *from account_info WHERE rfid='$rfid'"; 42 | $result=$mysqli->query($check); 43 | if($result->num_rows==1) 44 | { 45 | //한 개 계정이 검출 46 | $current="SELECT * FROM account_info WHERE rfid='$rfid'"; 47 | $result2=$mysqli->query($current); 48 | $row2=$result2->fetch_array(MYSQLI_ASSOC); 49 | $idnum = $row2['idnumber']; 50 | $money=$row2['balance']; 51 | 52 | if($isAdmin == 3 && $row2['freepass'] == 1) // 프리패스 대상자가 문기부에서 결재 53 | { 54 | $date = date("m/d h:i:s",strtotime ("+9 hours")); 55 | $price = 0; 56 | $trans = mysqli_query($mysqli, "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',2,'$money','$date',0)"); 57 | if($trans) 58 | { 59 | echo "문기부 프리패스가 적용되어
", $idnum," 계좌에서 ",$price,"원 만큼 결제되었습니다."; 60 | echo "
"; 61 | exit(); 62 | } 63 | else 64 | { 65 | echo "결제에 실패했습니다."; 66 | echo "
"; 67 | exit(); 68 | } 69 | } 70 | else // 문기부에서 결재 안할때 71 | { 72 | $total = $money - $price; 73 | if($total<0) // 잔액 없을 때 74 | { 75 | echo "잔액이 부족합니다."; 76 | echo "
"; 77 | exit(); 78 | } 79 | else // 잔액 충분할 때 80 | { 81 | $date = date("m/d h:i:s",strtotime ("+9 hours")); 82 | $query = "UPDATE account_info SET balance='$total' WHERE rfid='$rfid'; "; 83 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',2,'$total','$date','$price')"; 84 | 85 | if (mysqli_multi_query($mysqli, $query)) 86 | { 87 | echo $idnum," 계좌에서 ",$price,"원 만큼 결제되었습니다."; 88 | echo "
"; 89 | exit(); 90 | } 91 | else 92 | { 93 | echo "결제에 실패했습니다."; 94 | echo "
"; 95 | exit(); 96 | } 97 | } 98 | } 99 | } 100 | else //계좌가 검색되지 않을 때 101 | { 102 | echo "등록되지 않은 학생증입니다."; 103 | echo "
"; 104 | exit(); 105 | } 106 | } 107 | 108 | ?> -------------------------------------------------------------------------------- /refund.php: -------------------------------------------------------------------------------- 1 | query($check); 17 | $row=$result->fetch_array(MYSQLI_ASSOC); 18 | $boothname = $row['boothname']; 19 | $isAdmin = $row['admin']; 20 | 21 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 22 | if($isAdmin != 1) 23 | { 24 | header ('Location: ./main.php'); 25 | exit(); 26 | } 27 | else 28 | { 29 | ?> 30 | 31 | 32 | 33 | 34 | 35 | 민사페이 36 | 37 | 38 | 39 |

잔액 환불 · 행정위원회

40 |
41 |
42 |
43 | 44 | 45 | 46 | 47 | -------------------------------------------------------------------------------- /refund_check.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 환불 확인 7 | 8 | 9 | query($check); 25 | $row=$result->fetch_array(MYSQLI_ASSOC); 26 | $boothname = $row['boothname']; 27 | $isAdmin = $row['admin']; 28 | 29 | //일반 부스 운영자가 들어왔을 때: 자기 위치로 이동 30 | if($isAdmin != 1) 31 | { 32 | header ('Location: ./main.php'); 33 | exit(); 34 | } 35 | else 36 | { 37 | $rfid = $_POST["rfid"]; 38 | $check="SELECT * FROM account_info WHERE rfid='$rfid'"; 39 | $result=$mysqli->query($check); 40 | $row=$result->fetch_array(MYSQLI_ASSOC); 41 | $idnum = $row['idnumber']; 42 | 43 | if($result->num_rows==0) 44 | { 45 | echo "등록되지 않은 계좌입니다."; 46 | echo "
"; 47 | } 48 | else 49 | { 50 | $date = date("m/d h:i:s",strtotime ("+9 hours")); 51 | $balance = $row['balance']; 52 | $query = "UPDATE account_info SET balance=0 WHERE rfid='$rfid'; "; 53 | $query .= "INSERT INTO transaction_list (who,booth,what,balance, timestamp,price) VALUES ('$idnum','$boothname',3,0,'$date',$balance)"; 54 | 55 | if (mysqli_multi_query($mysqli, $query)) 56 | { 57 | echo $idnum," 계좌에 남은 잔액 ", $balance, "원은 전부 환불 처리되었습니다."; 58 | echo "
"; 59 | } 60 | else 61 | { 62 | echo "환불에 실패했습니다."; 63 | echo "
"; 64 | } 65 | } 66 | } 67 | ?> -------------------------------------------------------------------------------- /signUp.html: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 민사페이 부스 가입 7 | 8 | 9 | 10 |

운영진 회원가입

11 |

약관

12 | 13 | 14 | 15 |
16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | 32 | 33 | 36 | 37 | 38 | 41 | 42 |

아이디

비밀번호

34 |

부스 이름

35 |
39 | 40 |
43 | 44 |
45 | 46 | 47 | 48 | -------------------------------------------------------------------------------- /signUp_check.php: -------------------------------------------------------------------------------- 1 | 돌아가기 "; 14 | exit(); 15 | } 16 | if($id==NULL || $pw==NULL || $booth==NULL) 17 | { 18 | echo "빈칸을 모두 채워주세요"; 19 | echo ""; 20 | exit(); 21 | } 22 | 23 | require('db.php'); 24 | 25 | $check="SELECT *from user_info WHERE userid='$id'"; 26 | $result=$mysqli->query($check); 27 | if($result->num_rows==1) 28 | { 29 | echo "중복된 아이디입니다."; 30 | echo ""; 31 | exit(); 32 | } 33 | 34 | $signup=mysqli_query($mysqli,"INSERT INTO user_info (userid,userpw,boothname) VALUES ('$id','$userpw','$booth')"); 35 | if($signup) 36 | { 37 | ?> 38 | 39 | 40 | 41 | 회원가입 실패, 돌아가기 "; 45 | ?> 46 | --------------------------------------------------------------------------------