添加购物车一般步骤: 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过程
最新推荐文章于 2020-07-10 14:45:40 发布