在设计完订单表之后,就要整理一下订单处理的流程了

首先,用户在购物车界面点击结算的时候,跳到一个结算确认页面(这时候只是确认,让用户填写收货地址等,没有真正的下订单),显示用户的地址等信息和要买的物品,总价等,当用户点击确定的时候,调用存储过程下订单(向订单表和订单明细表插入数据,并删除相应的购物车项,这里用到事务和批量插入的sql语句),去网上支付

存储过程如下,mssql2005:

create proc pro_pay
@orderId nvarchar(200),--订单号,这里是根据当前时间(精确到毫秒)+用户Id
@userId int, --用户Id
@address nvarchar(200),--收货地址
@totalPrice decimal(10, 2) output--输出参数,总金额
as
--记录错误信息的变量
declare @error int
set @error=0
--计算总价格
select @totalPrice=sum(UnitPrice*[Count]) from T_Car inner join T_Books on T_Car.BookId=T_Books.Id
where UserId=@UserId
--开始事务
begin transaction
--插入主表
insert into T_Orders(Id,OrderDate,UserId,TotalPrice,[Address]) values(@orderId,getdate(),@UserId,@totalPrice,@address)
set @error=@error+@@error
--插入明细表
insert into T_OrderBook(OrderId,BookId,[Count],UnitPrice) select @orderId,BookId,[Count],UnitPrice
from T_Car inner join T_Books on T_Car.BookId=T_Books.Id where UserId=@userId
set @error=@error+@@error
--删除购物车选项
delete from T_Car where UserId=@userId
set @error=@error+@@error
--完成事务
if(@error>0)
begin
rollback transaction
end
else
begin
commit transaction
end

调用完存储过程之后,就是跳转到支付宝支付了,需要说明的是,使用ado.net调用存储过程的时候会遇到一些问题,主要是要将SqlCommand的CommandType属性设置为CommandType.StoredProcedure,然后将存储过程名传入(之前不懂以为是要写exec+存储过程名,结果只要存储过程名就好了,是不是我太天真了= =。。。)

asp.net购物车,订单以及模拟支付宝支付(三)---提交订单的更多相关文章

  1. asp.net购物车,订单以及模拟支付宝支付(四)---模拟支付宝支付

    下完订单之后到支付宝付款,成功之后再返回来修改订单状态.由于只是测试,所以就没有真正的连接到支付宝,用的是一个模拟支付宝的程序 下载地址:支付宝模拟程序 这是一个vs2010的项目,本来网上找了一个模 ...

  2. asp.net购物车,订单以及模拟支付宝支付(二)---订单表

    购物车准备完毕之后,就要着手订单表的设计了 表结构如下: T_Orders T_OrderBooks 为什么这里要分为两个表? 仔细想想,现实生活中的发票 特地去网上找了一张,不是很清晰 但是,正常人 ...

  3. asp.net购物车,订单以及模拟支付宝支付(一)---购物车表及添加购物车流程

    在开发一个Web程序的时候用到了网购这个功能,上来分享并记录一下,以便以后忘记了可以自己看看(电脑东西太多,笔记都不知道放哪里去了啊啊啊啊啊!!!) 没有什么高并发量,什么什么技术理论,只是一个最最基 ...

  4. JAVAWEB进行PC支付宝支付、查询订单支付状态

    官方文档:https://opendocs.alipay.com/open/270/105899 本地开发环境支付回调调试方法可以参考:https://www.cnblogs.com/pxblog/p ...

  5. [转]一步一步asp.net_购物车订单与支付宝

    本文转自:http://www.cnblogs.com/mysweet/archive/2012/05/19/2508534.html 最近这几天很忙,一边忙着准备一堆课程设计(8门专业课.....伤 ...

  6. Luffy之支付宝支付开发API

    发起支付 接入支付宝 支付的大致流程如下图:                                                      部分节点详解: 沙箱环境 是支付宝提供给开发者的 ...

  7. django中使用事务以及接入支付宝支付功能

    之前一直想记录一下在项目中使用到的事务以及支付宝支付功能,自己一直犯懒没有完,趁今天有点兴致,在这记录一下. 商城项目必备的就是支付订单的功能,所以就会涉及到订单的保存以及支付接口的引入.先来看看订单 ...

  8. iOS - AliPay 支付宝支付

    1.支付宝支付申请 支付宝支付官方签约集成指引 支付宝APP支付官方集成指引 蚂蚁金服开放平台 1.1 支付宝 APP 支付申请步骤 APP 支付:APP 支付是商户通过在移动端应用 APP 中集成开 ...

  9. ThinkPHP5.0 实现 app支付宝支付功能

    前几天做项目,要求要用到支付宝接口,第一次做,弄了好几天 各种坑啊,简单写一下我做支付宝支付的过程,希望对也是第一次做支付宝支付的童鞋有帮助, 不懂的可以先去支付平台看一下支付宝支付的文档,我是下的d ...

随机推荐

  1. Hash表模板

    namespace Hash { ; ; struct adj { ll nxt,v,num,val; }e[N]; ll head[H],ecnt=; void init() { ecnt=; me ...

  2. POJ 3264 Balanced Lineup | st表

    题意: 求区间max-min st表模板 #include<cstdio> #include<algorithm> #include<cstring> #inclu ...

  3. ubuntu启动报错 Errors were found while checking the disk-drive for /

    开机报这个错误,主要原因是硬盘检测不通过导致的,下面介绍两种方法规避该问题: 修改grub 这个方法网上比较多,直接贴过来: 进入Ubuntu启动菜单时,光标选中 *Ubuntu 后,按键盘上的 e ...

  4. 用IE滤镜实现的一些特效

    CSS3是当下非常火的一个话题,很多浏览器都已经开始支持这一特性,然后IE这个拥有庞大用户群体的平台,却无法提供这样的支持,即便是IE9发布,也无法改变这一事实,然而,幸运的是,IE并非在这方面毫无作 ...

  5. HDU 1841 Find the Shortest Common Superstring----KMP

    题意:给两个字符串,问包含这两个字符串的最小的字符串的长度 kmp返回匹配串长度 #include "iostream" #include<cstdio> #inclu ...

  6. 汕头市队赛 SRM1X T2 ——扫描线

    绵津见-终 SRM 13 背景 “西瓜也是可以种在海上的!”——绵津见 然而种在海上的西瓜最需要防范的,是时不时会涌向瓜田的阵阵海浪. 幸好,身为海神的绵津见可以释放魔法“水平如镜”来阻止海浪拍打西瓜 ...

  7. [ CodeVS冲杯之路 ] P1116

    不充钱,你怎么AC? 题目:http://codevs.cn/problem/1116/ 数据很小,DFS可A,每层枚举颜色,判断相邻的点是否有重复的颜色,记得回溯时把颜色染回0,即无颜色 这里我使用 ...

  8. app:compileDebugNdk,NDK

    Error:Execution failed for task ':app:compileDebugNdk'. > Error: Your project contains C++ files ...

  9. ajax验证前端页面

    1.html页面 用ajax验证表单的时候不需要form标签,并把提交按钮由type=“submit ”改为type=“button” 数据表结构 ajax.html <!DOCTYPE htm ...

  10. 处理下最近的file_id小写问题

    update t_resource_info set FILE_ID = UPPER(FILE_ID);update t_resource_my_info set FILE_ID = UPPER(FI ...