说明:这个不是刷网课的代码,只是当年学习php的时候自己刚好帮别人刷网课就写了这么一个自助下单系统,现在来看,很low 。。。

此项目是由于本人刚刚入门php且在校代刷网课而编写的,由于在上课时间不方便接单,故特意写一个自助下单系统来实现客户自助下单。
本项目主要实现以下功能:
1.用户下单
2.用户支付
3.用户通过账号查询订单
4.管理员登录查看所有订单

设计思路:项目比较简单,基本就是与数据库之间的通信,进行数据的增删改查。支付使用的是第三方支付接口。

以下是具体代码:
用户提交订单页面
index.php

<?phpheader('Content-type: text/html; charset=UTF8');
?>
<html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no">
</head>
<body>
<div class="content" align="center">
<form action="add.php" method="post">
<span>账号:</span>
<input type="text" name="id" placeholder="账号" required><br><br>
<span>密码:</span>
<input type="password" name="pwd" placeholder="密码" required><br><br>
<span>学校全称:</span>
<input type="text" name="school" placeholder="学校全称" required><br><br>
<span>课程平台:</span>
<input type="text" name="platform" placeholder="课程平台" value="智慧树" required><br><br>
<span>课程门数:</span>
<input type="text" name="count" placeholder="课程门数" id="num" required><br><br>
<span>课程名称:</span><br>
<textarea  name="classname" placeholder="请输入课程名称,多门课程用逗号分开" required>
</textarea><br>
<div class="list">
<p class="p1">总价:</p>
<input id="price" name="sprice"class="p1" value="0"  readonly="readonly">
<p class="p1">元</p>
</div>
<br><input type="submit" value="提交" class="submit" id="button">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;<input type = "reset" value = "重置" class="reset">
</form>
</div>
</body>
<style>
body{background:url(image/bg2.jpg);
}
.list{width:120px;height:50px;background:url(image/bg5.jpg);
}
.p1{float:left;
}
#price{margin-top:15px;width:50px;color:red;
}
textarea{height:100px;padding: 5px 0px 0px 5px;width: 70%;
}
</style>
<script src="http://libs.baidu.com/jquery/1.9.1/jquery.min.js">
</script>
<script>  $(function(){       $('#num').on('input  propertychange',function(){                var num = $('#num').val();var price = num*15;$("#price").val(price);})});
</script>
</html>

处理订单并生成支付数据页面
add.php

<?phpheader('Content-type: text/html; charset=UTF8');
?>
<?php    require_once "connect.php";$id=$_POST["id"];$pwd=$_POST["pwd"];$school=$_POST["school"];$platform=$_POST["platform"];$count=$_POST["count"];$classname=$_POST["classname"];$price=$_POST["sprice"];if($id==null){echo "<script>alert('请输入账号!');location='index.php';</script>";};if($pwd==null){echo "<script>alert('请输入密码!');location='index.php';</script>";};if($school==null){echo "<script>alert('请输入学校全称!');location='index.php';</script>";};if($platform==null){echo "<script>alert('请输入平台名称!');location='index.php';</script>";};if($count==null){echo "<script>alert('请输入课程数量!');location='index.php';</script>";};$sql="insert into orderdetail (id,pwd,school,platform,count,classname,time)values('$id','$pwd','$school','$platform','$count','$classname',now())";mysql_query("set names 'utf8'");mysql_query($sql);mysql_close;//echo "<script>alert('信息提交成功,跳转付款页面!');location='chosetopay.html';</script>";
?><html>
<head>
<meta name="viewport" content="width=device-width, initial-scale=1, user-scalable=no"><title>刷客在线支付</title>
</head>
<body>
<center>
<h1>请您确认订单信息:</h1>
<span>账号:</span><?php echo $id ?><br>
<span>密码:</span><?php echo $pwd ?><br>
<span>学校:</span><?php echo $school ?><br>
<span>平台:</span><?php echo $platform ?><br>
<span>课程名:</span><?php echo $classname ?>
<br><br><br>
</center>
<div align="center"><form><p><input id="inputmoney" type="text" name="inputmoney" class="form-control" placeholder="请输入金额" required value="<?php echo $price.'.00'?>" readonly="readonly"></p><div class="radio"><label><p><input type="radio" name="demo1" id="demo1-alipay" value="43" checked="">支付宝支付</p></label></div><div class="radio"><label><p><input type="radio" name="demo1" id="demo1-weixin" value="44">微信支付</p></label></div><button type="button" id="demoBtn1">确认支付</button></form>
</div><form style='display:none;' id='formpay' name='formpay' method='post' action='https://api.6688pay.com:8080/?input_charset=utf-8'><input name='order_no' id='order_no' type='text' value=''/><input name='subject' id='subject' type='text' value='' /><input name='pay_type' id='pay_type' type='text' value='' /><input name='money' id='money' type='text' value=''/><input name='app_id' id='app_id' type='text' value=''/>        <input name='extra' id='extra' type='text' value=''/><input name='sign' id='sign' type='text' value=''/><input type='submit' id='submitdemo1'></form><!-- Jquery files -->
<script type="text/javascript" src="https://cdn.staticfile.org/jquery/1.11.1/jquery.min.js"></script>
<script type="text/javascript">
$().ready(function(){function getistype(){return ($("#demo1-alipay").is(':checked') ? "43" : "44" );}$("#demoBtn1").click(function(){$.get("pay.php",{money : $("#inputmoney").val(),pay_type : getistype(),},function(data){$("#order_no").val(data.order_no);$('#subject').val(data.subject);$("#pay_type").val(data.pay_type);                $('#money').val(data.money);$('#app_id').val(data.app_id);$('#extra').val(data.extra);$('#sign').val(data.sign);$('#submitdemo1').click();}, "json");});
});
</script>
<style>
body{background:url("image/bg2.jpg");
}
</style>
</body>
</html> 

数据库连接页面
connect.php

<?phpdefine('DB_HOST', 'localhost');  define('DB_USER', 'root');  define('DB_PWD', '11111111');define('DB_CHARSET', 'UTF8');  define('DB_DBNAME', 'zzxd');$con=mysql_connect(DB_HOST,DB_USER,DB_PWD);if(!$con){die('数据库连接失败!'.$mysql_error());}mysql_select_db("zzxd");
?>

支付用的是第三方支付接口,所以直接使用了它提供的Demo
以下是Demo内容(Demo中的主页被我合并到add.php中了):

pay.php

<?php
/*** ---------------------参数生成页-------------------------------*/include 'define.php';//从网页传入money:支付价格, pay_type:支付渠道:43-支付宝;44-微信支付$order_no = date('Ymd') . str_pad(mt_rand(1, 99999), 5, '0', STR_PAD_LEFT);    //订单号$subject = '商品名称';$pay_type = $_GET["pay_type"];$money = $_GET["money"];$extra = "";$sign = md5("order_no=" . $order_no . "&subject=" . $subject . "&pay_type=" . $pay_type . "&money=" . $money . "&app_id=" . $app_id . "&extra=" . $extra . "&" . $app_secret);//经常遇到有研发问为啥sign值返回错误,大多数原因:1.参数的排列顺序不对;2.上面的参数少传了,但是这里的sign值又带进去计算了,导致服务端sign算出来和你的不一样。$returndata['order_no'] = $order_no;$returndata['subject'] = $subject;$returndata['pay_type'] = $pay_type;$returndata['money'] = $money;$returndata['app_id'] = $app_id;$returndata['extra'] =$extra;$returndata['sign'] =$sign;echo jsonSuccess("OK",$returndata,"");//返回错误function jsonError($message = '',$url=null){$return['msg'] = $message;$return['data'] = '';$return['code'] = -1;$return['url'] = $url;return json_encode($return);}//返回正确function jsonSuccess($message = '',$data = '',$url=null) {return json_encode($data);}?>

define.php

<?php $app_id = "*****";$app_secret = "62f949392a2b4e2f***********";
?>

notify.php

<?php
/*** ---------------------异步通知页面-------------------------------* * 此页就是接口后台的notify_url页的网址* 支付成功,平台会通知这里。* * --------------------------------------------------------------*/include 'define.php';//同步回调页面//接收参数$order_no = $_POST["order_no"];$subject = $_POST["subject"];$pay_type = $_POST["pay_type"];$money = $_POST["money"];$realmoney = $_POST["realmoney"];$result = $_POST["result"];$xddpay_order = $_POST["xddpay_order"];$app_id = $_POST["app_id"];$extra = $_POST["extra"];$sign = $_POST["sign"];//计算签名$mysign_forstr = "order_no=" . $order_no . "&subject=" . $subject . "&pay_type=" . $pay_type . "&money=" . $money . "&realmoney=" . $realmoney . "&result=" . $result . "&xddpay_order=" . $xddpay_order . "&app_id=" . $app_id . "&extra=" . $extra . "&" . $app_secret;$mysign = strtoupper(md5($mysign_forstr));if ($sign == $mysign) //验签{if ($result == "success"){//建议业务处理放在notify.asp页面,本页仅用于显示支付结果//此处在您数据库中查询:此笔订单号是否已经异步通知给您付款成功了。如成功了,就给他返回一个支付成功的展示。echo "success";}else{echo "支付失败";}}else{echo "mysign_forstr=" . $mysign_forstr; //调试时开启echo "<br>sign=" . $sign;echo "<br>mysign=" . $mysign;echo "<br><br>认证签名失败";}?>

return.php

<?php
/*** ---------------------支付成功,用户会跳转到这里-------------------------------* * 此页就是接口后台的return_url页的网址* 支付成功,平台会把用户跳转回这里。* * --------------------------------------------------------------*/include 'define.php';//同步回调页面//接收参数$order_no = $_GET["order_no"];$subject = $_GET["subject"];$pay_type = $_GET["pay_type"];$money = $_GET["money"];$realmoney = $_GET["realmoney"];$result = $_GET["result"];$xddpay_order = $_GET["xddpay_order"];$app_id = $_GET["app_id"];$extra = $_GET["extra"];$sign = $_GET["sign"];//计算签名$mysign_forstr = "order_no=" . $order_no . "&subject=" . $subject . "&pay_type=" . $pay_type . "&money=" . $money . "&realmoney=" . $realmoney . "&result=" . $result . "&xddpay_order=" . $xddpay_order . "&app_id=" . $app_id . "&extra=" . $extra . "&" . $app_secret;$mysign = strtoupper(md5($mysign_forstr));if ($sign == $mysign) //验签{if ($result == "success"){//建议业务处理放在notify.asp页面,本页仅用于显示支付结果//此处在您数据库中查询:此笔订单号是否已经异步通知给您付款成功了。如成功了,就给他返回一个支付成功的展示。echo "恭喜,支付成功!,订单号:".$order_no;}else{echo "支付失败";}}else{echo "mysign_forstr=" . $mysign_forstr;    //调试时开启echo "<br>sign=" . $sign;echo "<br>mysign=" . $mysign;echo "<br><br>认证签名失败";}?>

到这里已经实现了用户下单以及支付功能,剩下的功能在此扩展即可
管理员登录页面:
admin.php

<?php
header('Content-type:text/html;charset="UTF8"');
?>
<html>
<body>
<center>
<form action="admin_see.php" method="post"><span>账号:</span><input type="text" name="userid" placeholder="请输入账号"><br><br><span>密码:</span><input type="password" name="pwd" placeholder="请输入密码"><br><br><input type="submit" value="确定">
</form>
</center>
</body>
</html>

管理员登录成功查看数据页面:
admin_see.php

<?php
$HOST_ID=$_POST['userid'];
$HOST_PWD=$_POST['pwd'];
$con=mysql_connect("localhost",$HOST_ID,$HOST_PWD);
if(!$con){echo "<script>alert('信息有误,请重新输入!');location='admin.php';</script>";
}
mysql_select_db("zzxd", $con);
$result1=mysql_query("SELECT * from orderdetail");
echo "<table><tr><td>===账号===|</td><td>===密码===|</td><td>===学校===|</td><td>===平台===|</td><td>===课程===</td></tr>";
while($row=mysql_fetch_array($result1)){echo "<tr>";echo "<td>".$row['id']."</td>";echo "<td>".$row['pwd']."</td>";echo "<td>".$row['school']."</td>";echo "<td>".$row['platform']."</td>";echo "<td>".$row['classname']."</td>";echo "</tr>";
}
echo "</table>";mysql_close($con);?>

用户输入订单号查询订单页面
user.php

<?php
header('Content-type="text/html";charset="UTF8"');
?>
<html>
<body>
<center>
<h3>请输入账号进行订单查询</h3>
<form action="user_view.php" method="post"><span>账号:</span><input type="text" name="userid" placeholder="请输入账号"><br><br><input type="submit" value="确定">
</form>
</center>
</body>
</html>

订单查询成功显示页面:
user_view.php

<?php
header('Content-type="text/html";charset="UTF8"');
$USER_ID=$_POST['userid'];
require_once('connect.php');
$sql="select * from orderdetail where id = '$USER_ID'";
$result1=mysql_query($sql);
echo "<table><tr><td>===账号===|</td><td>===密码===|</td><td>===学校===|</td><td>===平台===|</td><td>===课程===</td></tr>";
while($row=mysql_fetch_array($result1)){echo "<tr>";echo "<td>".$row['id']."</td>";echo "<td>".$row['pwd']."</td>";echo "<td>".$row['school']."</td>";echo "<td>".$row['platform']."</td>";echo "<td>".$row['classname']."</td>";echo "</tr>";
}
echo "</table>";mysql_close($con);
?>

到这里要实现的目标功能全部实现,当然还有很多功能可以扩展,也还有很多地方可以优化和改进,此处就不再写了,有其它扩展我再来更新。

刷课在线支付系统(新手入门编写,大佬勿喷)相关推荐

  1. hping3的简单介绍(新手向,大佬勿喷)

    一.介绍 我是作为一款端口扫描工具了解到的hping3,与nmap类似. 二.安装 kali内置,若无可自行安装 apt install hping3 -y 三.简单使用 hping3 --help ...

  2. (附源码)springboot优课在线教学系统 毕业设计 081251

    基于Java Web的优课在线教学系统的设计与实现 摘 要 信息化社会内需要与之针对性的信息获取途径,但是途径的扩展基本上为人们所努力的方向,由于站在的角度存在偏差,人们经常能够获得不同类型信息,这也 ...

  3. TEEOS的实例-在线支付系统

    到了我最喜欢的环节了,我其实学习的过程中,对这些应用场景概念是十分的感兴趣的. 下面一起看看老师这本书的最后的一个部分应用篇-在线支付系统 内容来自<手机安全和可信应用开发指南> 1.简介 ...

  4. 系统设计:在线支付系统的需求分析报告

    在线支付系统 在线支付系统是一个第三方安全交易系统. 买方可以先向账户充值,然后系统会提醒卖方发货.一旦买方确认收货,系统会将钱转到卖方的账户,这样他们就完成了一次在线交易. 在个文档描述了支付系统的 ...

  5. 在线支付系统可信通道建立(OP-TEE侧实现)

    整理下网上的在线支付其中一种实现方式.通过学习.消化,可借鉴到自己项目重要数据的交互使用. 1 在线支付的模式 在线支付分三块:支付终端.支付服务商服务器(支付宝.微信).银行. 支付终端:如手机.p ...

  6. 新手小白开始学习verilog(学习方法有点歪门邪道的,大佬勿喷( ̄▽ ̄)“)

    新手小白开始学习verilog(学习方法有点歪门邪道的,大佬勿喷( ̄▽ ̄)") #一. 编译环境安装 我用的是Quaters,不会装的话我推荐正点原子的教程爱学习的万能B站 ##二. 基本知 ...

  7. 领课在线教育系统源码 各行业都适用的分布式在线教育系统+支持讲师入驻功能

    领课教育系统(roncoo-education)是基于领课网络多年的在线教育平台开发和运营经验打造出来的产品,致力于打造一个各行业都适用的分布式在线教育系统.系统采用前后端分离模式,前台采用vue.j ...

  8. Linux系统初学者指南,Linux系统新手入门指南(二)

    在上篇文章中介绍过Linux系统给我们带来的是一片开源的天地,大部分的服务器都是Linux的.本篇文章是针对Linux系统的新手,为新手们准备的入门指南,希望看完本篇文章能让大家无障碍的操作Linux ...

  9. 在线视频系统-EasyRTC入门

    在线视频系统初尝试-EasyRTC入门 一.引入 近几年直播平台热度不断,如何打造一简单的直播平台呢,或者说一简单的在线视频聊天系统呢,国内许多公司也有自己的方案,如乐视云推流,亲加视频推流,腾讯云等 ...

  10. zbrush常用笔刷_【建模】新手入门必学,ZBrush中常用笔刷简介!

    原标题:[建模]新手入门必学,ZBrush中常用笔刷简介! 单击左托盘的笔刷图标,弹出一个笔刷库,其中有许多常用笔刷,这也是许多初学者所头疼的问题,zbrush的笔刷非常多,而且功能很强大,好多朋友不 ...

最新文章

  1. Earth to developers: Grow up!
  2. 元素算法Bloom Filter
  3. mysql创建读写账号_mysql创建读写账号及服务相关优化配置
  4. Java设计模式之结构型:组合模式
  5. 恢复被CVS被Override and Update后的代码
  6. 关于字符编码,你所需要知道的(ASCII,Unicode,Utf-8,GB2312…)
  7. 【树链剖分】旅游(luogu 3976)
  8. WEB前端大神之路之基础篇
  9. Android 小技巧-- TextView与EditText 同步显示
  10. 【iOS】使用SQLite3的时候Swift3.、XCode8报错:Unsupported architecture - 'arm/arch.h'file not found - Could not
  11. RocketMQ开发指导之二——RocketMQ部署
  12. 图卷积网络-《深入浅出图神经网络》读书笔记
  13. html5抽奖转盘生成器
  14. 手持式自动锁螺丝机怎么操作使用
  15. r5驱动 索尼exmor_索尼Exmor APS HD CMOS弱光测试
  16. html倒计时插,JS倒计时插件
  17. 福昕阅读器如何显示pdf文件的缩略图
  18. 前端页面缓存系列之localStorage
  19. 用计算机画画的图片,如何用画图工具画画
  20. ArcGIS API for JS4.8二维地图状态控制

热门文章

  1. 一位全加器Verilog的三种不同的描述
  2. C语言练习,求x的y次方的代码
  3. 一些NLP数据/语料下载
  4. 中了Viking,抓到CONFIG.EXE,NTDLL32.dll,webpnt.exe等
  5. PMP证书考试试题有多少
  6. 文档管理专家Aspose 2017年首季更新大合集
  7. 雷神开机logo更改_开机logo以及两种修改开机动画方法
  8. 用 SIR 模型拟合疫情感染情况
  9. 检测到非法调试,F12被管理员禁用解决方法
  10. arcMap安装教程