十八哥教会我们怎么下订单----.NET过程
来源:互联网 发布:华为云计算ie待遇 编辑:程序博客网 时间:2024/04/29 08:14
添加购物车一般步骤:
1查看是否有改商品
2判断当前用户是否已经将该书添加到购物车中,如果添加了只是
改变该商品的数量,否则就把该商品的信息添加到购物车表中
3怎么去查询用户是否购买了该商品呢
通过用户id和商品id
4.绑定购物车中的商品项 要获取当前用户的购物车的商品项
5当用户点击添加商品数量的时候更新文本框中的数字 和总价格
6计算商品的总价格 通过jquery.ajax发送异步请求
//总价格
var totMoney=0;
//循环遍历购物车订单数据
$("#id").each(function(){
//获取单价的值
var price=$(this).find(".price").text();
//获取数量
var count=$(this).find("input").val();
totMoney=parseInt(count)*parsefloat(price)+ toMoney;
});
下订单创建存储过程
创建存储过程
create proc usp_OrderConfirm
@orderid nvarchar(30), 订单号
@userId varchar(20),用户编号
@address nvarchar,用户地址信息
@totalPrice money output--总金额 是计算出来的
as
declare @error int--记录错误信息
set @error=0
--计算商品的总价 当前登录用户
select @totalPrice=sum([count]*price) from cart inner join books on cart.bookid=books.id
where cart.userid=@userId
--往订单详细表中插入数据
insert into Orders(orderid,orderDate,userid,totalprice,postaddress,state)
values(@orderid,getdate(),@userid,@totalmoney,@address,0)
set @error=@error+@@error--记录错误信息
--向订单明细表中插入
insert into orderbook(orderid,bookid,quentity,price)
select @orderid,bookid,[count],price from cart inner join books on cart.bookid=books.id
where cart.userid=@userid
set @error=@error+@@error--记录错误信息
--删除购物车的商品项
delete from cart where userid=@userid
set @error=@error+@@error--记录错误信息
if(@error>0)--出错了 回滚事务
begin
roolback tranaction--回滚事务
end
else
begin
commit transaction--提交事务
end
进入确认购买的时候 判断购物车是否有商品
如果没有商品项禁止访问订单页面 跳转到消息界面 然后跳转到商品界面
开始支付:做这2件事
1调用存储过程
2往支付宝发送数据
收货人的地址格式问题:
string address=string.Format("收货人:{0},地址:{1},电话:{2},邮编:{3}",name,address,tel,postcode);
商城网站:
1.完成下订单
2.按照支付宝的文档要求组织数据,并对一些敏感的数据进行加密(密钥)
3将加密组织好的数据发送给支付宝通过get发送 不会不安全 因为加密了
支付宝:
4支付宝接收商城网站发送过来的数据并且校验数据是否正确
5如果数据没有串改出现支付宝的登录界面开始支付
6不管是否支付成功度会将数据返回给商城网站。
商城:
7接收从支付宝返回的数据 并且校验数据是否被串改。
8如果用户支付成功了修改订单的状态
订单号的作用:在发送给支付宝的数据中包含订单号,订单号对支付宝没有作用,所以当订单完成以后,支付宝将订单号返回给商城
商城根据返回的订单确定是哪个订单支付了
//这里要配置一下配置文件因为要加密数据给支付宝
由于这些数据如果要改动直接在配置文件中修改就可以了
<appSettings>
商户ID <add key='partner' value='1'/>
返回URL<add key='return_url' value='http:localhost/ashx/GetPay.ashx'/>
卖家邮箱<add key='sller_email' value='xx.qq.com'/>
密钥<add key='key' value='miyue@$z'/>
发送给支付宝哪个页面<add key="payGateUrl" value='zhifubao.taobao.com'/>
</appSettings>
然后写一个类存放其他数据
private string partner;//商户编号 1 --
public string Partner
{
get { return partner; }
set { partner = value; }
}
private string return_url;//回调商户地址(通过商户网站的哪个页面来通知支付成功!)1 -- 支付宝将数据返回给这个属性所指定的我们商城网站中的某个页面。
public string Return_url
{
get { return return_url; }
set { return_url = value; }
}
private string subject;//商品名称
public string Subject
{
get { return subject; }
set { subject = value; }
}
private string body;//商品描述
public string Body
{
get { return body; }
set { body = value; }
}
private string out_trade_no;//订单号!!!(由商户网站生成,支付宝不确保正确性,只负责转发。)
public string Out_trade_no
{
get { return out_trade_no; }
set { out_trade_no = value; }
}
private decimal total_fee;//总金额
public decimal Total_fee
{
get { return total_fee; }
set { total_fee = value; }
}
private string seller_email;//卖家邮箱1--
public string Seller_email
{
get { return seller_email; }
set { seller_email = value; }
}
private string sign;//数字签名。为按顺序连接 总金额、 商户编号、订单号、商品名称、商户密钥的MD5值。(小写值)
public string Sign
{
get { return sign; }
set { sign = value; }
}
private string key;//密钥 --1
public string Key
{
get { return key; }
set { key = value; }
}
private string payGateUrl;//支付地址 1
public string PayGateUrl
{
get { return payGateUrl; }
set { payGateUrl = value; }
}
然后给参数赋值 通过构造函数
可以从配置文件中取出部分数据
然后把这些数据构成一个URL发送给支付宝(要MD5加密)
然后再你的页面接收支付宝回传回来的数据
然后修改订单的状态
1查看是否有改商品
2判断当前用户是否已经将该书添加到购物车中,如果添加了只是
改变该商品的数量,否则就把该商品的信息添加到购物车表中
3怎么去查询用户是否购买了该商品呢
通过用户id和商品id
4.绑定购物车中的商品项 要获取当前用户的购物车的商品项
5当用户点击添加商品数量的时候更新文本框中的数字 和总价格
6计算商品的总价格 通过jquery.ajax发送异步请求
//总价格
var totMoney=0;
//循环遍历购物车订单数据
$("#id").each(function(){
//获取单价的值
var price=$(this).find(".price").text();
//获取数量
var count=$(this).find("input").val();
totMoney=parseInt(count)*parsefloat(price)+ toMoney;
});
下订单创建存储过程
创建存储过程
create proc usp_OrderConfirm
@orderid nvarchar(30), 订单号
@userId varchar(20),用户编号
@address nvarchar,用户地址信息
@totalPrice money output--总金额 是计算出来的
as
declare @error int--记录错误信息
set @error=0
--计算商品的总价 当前登录用户
select @totalPrice=sum([count]*price) from cart inner join books on cart.bookid=books.id
where cart.userid=@userId
--往订单详细表中插入数据
insert into Orders(orderid,orderDate,userid,totalprice,postaddress,state)
values(@orderid,getdate(),@userid,@totalmoney,@address,0)
set @error=@error+@@error--记录错误信息
--向订单明细表中插入
insert into orderbook(orderid,bookid,quentity,price)
select @orderid,bookid,[count],price from cart inner join books on cart.bookid=books.id
where cart.userid=@userid
set @error=@error+@@error--记录错误信息
--删除购物车的商品项
delete from cart where userid=@userid
set @error=@error+@@error--记录错误信息
if(@error>0)--出错了 回滚事务
begin
roolback tranaction--回滚事务
end
else
begin
commit transaction--提交事务
end
进入确认购买的时候 判断购物车是否有商品
如果没有商品项禁止访问订单页面 跳转到消息界面 然后跳转到商品界面
开始支付:做这2件事
1调用存储过程
2往支付宝发送数据
收货人的地址格式问题:
string address=string.Format("收货人:{0},地址:{1},电话:{2},邮编:{3}",name,address,tel,postcode);
商城网站:
1.完成下订单
2.按照支付宝的文档要求组织数据,并对一些敏感的数据进行加密(密钥)
3将加密组织好的数据发送给支付宝通过get发送 不会不安全 因为加密了
支付宝:
4支付宝接收商城网站发送过来的数据并且校验数据是否正确
5如果数据没有串改出现支付宝的登录界面开始支付
6不管是否支付成功度会将数据返回给商城网站。
商城:
7接收从支付宝返回的数据 并且校验数据是否被串改。
8如果用户支付成功了修改订单的状态
订单号的作用:在发送给支付宝的数据中包含订单号,订单号对支付宝没有作用,所以当订单完成以后,支付宝将订单号返回给商城
商城根据返回的订单确定是哪个订单支付了
//这里要配置一下配置文件因为要加密数据给支付宝
由于这些数据如果要改动直接在配置文件中修改就可以了
<appSettings>
商户ID <add key='partner' value='1'/>
返回URL<add key='return_url' value='http:localhost/ashx/GetPay.ashx'/>
卖家邮箱<add key='sller_email' value='xx.qq.com'/>
密钥<add key='key' value='miyue@$z'/>
发送给支付宝哪个页面<add key="payGateUrl" value='zhifubao.taobao.com'/>
</appSettings>
然后写一个类存放其他数据
private string partner;//商户编号 1 --
public string Partner
{
get { return partner; }
set { partner = value; }
}
private string return_url;//回调商户地址(通过商户网站的哪个页面来通知支付成功!)1 -- 支付宝将数据返回给这个属性所指定的我们商城网站中的某个页面。
public string Return_url
{
get { return return_url; }
set { return_url = value; }
}
private string subject;//商品名称
public string Subject
{
get { return subject; }
set { subject = value; }
}
private string body;//商品描述
public string Body
{
get { return body; }
set { body = value; }
}
private string out_trade_no;//订单号!!!(由商户网站生成,支付宝不确保正确性,只负责转发。)
public string Out_trade_no
{
get { return out_trade_no; }
set { out_trade_no = value; }
}
private decimal total_fee;//总金额
public decimal Total_fee
{
get { return total_fee; }
set { total_fee = value; }
}
private string seller_email;//卖家邮箱1--
public string Seller_email
{
get { return seller_email; }
set { seller_email = value; }
}
private string sign;//数字签名。为按顺序连接 总金额、 商户编号、订单号、商品名称、商户密钥的MD5值。(小写值)
public string Sign
{
get { return sign; }
set { sign = value; }
}
private string key;//密钥 --1
public string Key
{
get { return key; }
set { key = value; }
}
private string payGateUrl;//支付地址 1
public string PayGateUrl
{
get { return payGateUrl; }
set { payGateUrl = value; }
}
然后给参数赋值 通过构造函数
可以从配置文件中取出部分数据
然后把这些数据构成一个URL发送给支付宝(要MD5加密)
然后再你的页面接收支付宝回传回来的数据
然后修改订单的状态
- 十八哥教会我们怎么下订单----.NET过程
- 大学教会我们怎么饿死
- 初恋教会我们爱
- 十八哥简单MySQL类封装
- 十八哥Mysql笔记之基础篇
- 十八哥Mysql笔记之提高篇
- 生活教会了我们什么?
- 时代教会了我们什么
- 工作到底是要教会我们什么?
- 《欢乐颂》教会我们的10个道理
- 十八哥视频教程中html和css的tips
- 下订单
- asp.net 我们应该怎么用? 以及我们有了asp.net 我们还需模版引擎吗?
- 订单事务-存储过程
- 订单表---存储过程
- 销售订单转成生成订单过程
- 当今高等教育教会了我们什么?排版?做面子工程?
- 好莱坞名导:魔兽世界教会我们的7个人生哲理
- 黑马程序员——Java基础---GUI
- flash 无刷新上传文件 图片缩略图 前台
- HashSet存储自定义对象如何保证唯一性
- Scanner
- CFNetwork Concepts(译)
- 十八哥教会我们怎么下订单----.NET过程
- 计算字符串的后缀数组算法
- linux_2.6.30.4_Makefile_4--make zImage流程
- 授权的六大关键
- 汉字转拼音练习
- linux下的C语言开发(多线程编程)
- 关于bind函数和connect函数的测试结论
- Codeforces Round #197 (Div. 2)(完全)
- 号码归属地查询---------------