protected void Page_Load(object sender, EventArgs e) { //可以在页面加载时设置页面的缓存为“SetNoStore()”,即无缓存 Response.Cache.SetNoStore(); if (CurrentShopCart == null) { Response.Write("购物车已清空,页面将<a href='../member/MyOrderList.aspx'>跳转</a>至账户中心!"); Response.AddHeader("REFRESH", "3;URL='../member/MyOrderList.aspx'"); Response.End(); } if (!IsPostBack) { litSavedOrderId.Text = CurrentShopCart.RecentSavedOrderId.ToString(); Context.Items.Remove("SavedOrderId"); CommOrderBll cobll = new CommOrderBll(); CommOrderModel model = cobll.GetModel(litSavedOrderId.Text); if (model != null && String.IsNullOrEmpty(model.PayorderId) && model.PayMethod == PayMethType.支付宝) { string url = "../alipay/StandardPay.aspx?orderId=" + litSavedOrderId.Text; Response.Write("订单已生成,页面将<a href='" + url + "'>跳转</a>支付页面!"); Response.AddHeader("REFRESH", "3;URL='" + url + "'"); } } }
private void ShowOrderInfo(string orderId) { NoName.NetShop.ShopFlow.CommOrderBll bll = new NoName.NetShop.ShopFlow.CommOrderBll(); CommOrderModel order = bll.GetModel(orderId, CurrentUser.UserId); if (order != null) { gvProducts.DataSource = bll.GetOrderItems(orderId); gvProducts.DataBind(); gvActionLog.DataSource = bll.GetChangeLogs(orderId); gvActionLog.DataBind(); lblOrderId.Text = order.OrderId; lblUserId.Text = order.UserId; lblOrderStatus.Text = order.OrderStatus.ToString(); lblPayStatus.Text = order.PayStatus.ToString(); lblCreateTime.Text = order.CreateTime.ToString("yyyy-MM-dd HH:mm"); lblPayTime.Text = order.PayTime == null ? "" : (order.PayTime ?? default(DateTime)).ToString("yyyy-MM-dd HH:mm"); lblPayMethod.Text = order.PayMethod.ToString(); lblShipMethod.Text = order.ShipMethod.ToString(); lblProductFee.Text = order.ProductFee.ToString("F2"); lblShipFee.Text = order.ShipFee.ToString("F2"); lblDerateFee.Text = order.DerateFee.ToString("F2"); lblPaySum.Text = order.Paysum.ToString("F2"); lblAddress.Text = order.RecieverProvince + order.RecieverCity + order.RecieverCounty + " " + order.AddressDetial + " 邮编:" + order.Postalcode; lblInvoice.Text = order.IsNeedInvoice ? "需要发票,抬头为:" + order.InvoiceTitle : "不需要发票"; lblUserNotes.Text = order.UserNotes; lblTelePhone.Text = order.RecieverPhone; lblReceName.Text = order.RecieverName; lblEmail.Text = order.RecieverEmail; ShowActions(order); } }
protected void Page_Load(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); string orderId = Request.QueryString["orderId"]; CommOrderModel model = obll.GetModel(orderId); List <CommOrderItemModel> items = obll.GetOrderItems(orderId); string subject = String.Join(",", (from s in items select s.ProductName).ToArray()); int quantity = (from s in items select s.Quantity).Sum(); string paymethod = (model.ShipMethod == ShipMethodType.EMS?"EMS":"Express"); subject = String.IsNullOrEmpty(subject)?null:subject; string agent = null; string body = null; AliPay ap = new AliPay(); StandardGoods bp = new StandardGoods(PayServiceType.trade_create_by_buyer.Key, AlipaySetting.Partner, AlipaySetting.NotifyUrl, AlipaySetting.ReturnUrl, agent, AlipaySetting.EncodeType, AlipaySetting.Key, AlipaySetting.SignType, subject, body, model.OrderId, model.Paysum, quantity, null, AlipaySetting.SellerEmail, null, null, null, null, "POST", model.ShipFee, LogisticsPayment.SELLER_PAY.Key, "1"); bp.Notify_Url = AlipaySetting.NotifyUrl; bp.Return_Url = AlipaySetting.ReturnUrl; bp.Receive_Address = model.FullAddress; bp.Receive_Phone = model.RecieverPhone; bp.Receive_Zip = model.Postalcode; bp.Receive_Name = model.RecieverName; ap.CreateStandardTrade(AlipaySetting.PushUrl, bp, this); }
/// <summary> /// 显示允许管理员操作的按钮 /// 在线支付 /// 未支付 —— 关闭订单 /// 支付成功,—— 审核通过,开始备货 /// 支付成功,—— 退款给买家,交易失败 /// 开始备货,—— 发货 /// 开始备货 —— 退款给买家,交易失败 /// 已发货,—— 物流确认到货 /// 已发货,—— 买家拒收,退款给买家,交易失败 /// 物流确认到货,买家确认收货或超时 —— 交易完成 /// /// 银行转帐,邮件汇款 /// 未支付 —— 关闭订单 /// 未支付 —— 买家付款成功 /// 支付成功,—— 审核通过,开始备货 /// 支付成功,—— 退款给买家,交易失败 /// 开始备货,—— 发货 /// 开始备货 —— 退款给买家,交易失败 /// 已发货,—— 物流确认到货,交易完成 /// 已发货,—— 买家拒收,退款给买家,交易失败 /// 货到付款 /// 未支付 —— 关闭订单 /// 未支付 —— 审核通过,备货 /// 备货中 —— 发货 /// 发货中 —— 物流确认收货收款,交易成功 /// 发货中 —— 买家未签收,交易失败 /// </summary> /// <param name="order"></param> private void ShowActions(CommOrderModel order) { btnAskRefund.Visible = false; btnCherrys.Visible = false; btnGoPay.Visible = false; txtActionRemark.Visible = false; if ((order.OrderStatus == OrderStatus.交易关闭 || order.OrderStatus == OrderStatus.交易失败 || order.OrderStatus == OrderStatus.交易完成) && (order.PayStatus == PayStatus.支付成功)) { return; } if (order.PayMethod == PayMethType.支付宝) { if (order.PayStatus == PayStatus.等待付款) { btnGoPay.Visible = true; } } if (order.PayStatus == PayStatus.支付成功) { btnAskRefund.Visible = true; txtActionRemark.Visible = true; } if (order.OrderStatus == OrderStatus.已发货) { btnCherrys.Visible = true; } }
/// <summary> /// 买家申请退款 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_WaitSellerAgree(object sender, NotifyEventArgs e) { log.Info("买家申请退款,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangePayStatus(e.Out_Trade_No, PayStatus.退款申请中)) { lbll.Add(e.Out_Trade_No, e.Trade_Status + " " + e.Refund_Status, PayStatus.退款申请中.ToString(), "alipay"); } } }
/// <summary> /// 退款成功 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_RefundSuccess(object sender, NotifyEventArgs e) { log.Info("退款成功,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangePayStatus(e.Out_Trade_No, PayStatus.退款完成)) { lbll.Add(e.Out_Trade_No, e.Trade_Status + " " + e.Refund_Status, PayStatus.退款完成.ToString(), "alipay"); } } }
/// <summary> /// 置为订单完成,前置条件:物流已到货,且支付成功 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnFinish_Click(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); OrderChangeLogBll lbll = new OrderChangeLogBll(); CommOrderModel order = obll.GetModel(lblOrderId.Text); if (order != null && order.OrderStatus == OrderStatus.物流到货 && order.PayStatus == PayStatus.支付成功) { obll.ChangeOrderStatus(order.OrderId, OrderStatus.交易完成); lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.交易完成.ToString(), Context.User.Identity.Name); ShowOrderInfo(lblOrderId.Text); } }
/// <summary> /// 等待买家确认收货中 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_WaitBuyerConfirmGoods(object sender, NotifyEventArgs e) { log.Info("等待买家确认收货中,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangeOrderStatus(e.Out_Trade_No, OrderStatus.买家确认)) { string remark = e.Trade_Status + " " + e.Refund_Status; lbll.Add(e.Out_Trade_No, remark, OrderStatus.买家确认.ToString(), "alipay"); } } }
/// <summary> /// 交易中途关闭(未完成) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_TradeClosed(object sender, NotifyEventArgs e) { log.Info("交易中途关闭(未完成),订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangeOrderStatus(e.Out_Trade_No, OrderStatus.交易关闭)) { string remark = e.Trade_Status + " " + e.Refund_Status; lbll.Add(e.Out_Trade_No, remark, OrderStatus.交易关闭.ToString(), "alipay"); } } }
/// <summary> /// 置为退款完成,前置条件:退款申请中订单,不包括货到付款订单 /// 如果是线上支付订单,需要调用接口完成退款操作(目前暂无接口) /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnAskRefund_Click(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); OrderChangeLogBll lbll = new OrderChangeLogBll(); CommOrderModel order = obll.GetModel(lblOrderId.Text); if (order != null && order.PayMethod != PayMethType.货到付款 && order.PayStatus == PayStatus.支付成功) { obll.ChangePayStatus(order.OrderId, PayStatus.退款申请中); lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), PayStatus.退款申请中.ToString(), Context.User.Identity.Name); ShowOrderInfo(lblOrderId.Text); } }
/// <summary> /// 退款关闭 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_RefundClose(object sender, NotifyEventArgs e) { log.Info("退款关闭,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangePayStatus(e.Out_Trade_No, PayStatus.支付成功)) { string remark = "退款关闭,订单重置为支付成功," + e.Trade_Status + " " + e.Refund_Status; lbll.Add(e.Out_Trade_No, remark, PayStatus.支付成功.ToString(), "alipay"); } } }
/// <summary> /// 买家付款成功 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> private void ap_WaitSellerSendGoods(object sender, NotifyEventArgs e) { log.Info("买家付款成功,等待卖家发货,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangePayStatus(e.Out_Trade_No, PayStatus.支付成功)) { string remark = e.Trade_Status + " " + e.Refund_Status; lbll.Add(e.Out_Trade_No, remark, OrderStatus.交易关闭.ToString(), "alipay"); } } }
/// <summary> /// 交易创建,等待买家付款 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_WaitBuyerPay(object sender, NotifyEventArgs e) { log.Info("交易创建,等待买家付款,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (obll.ChangeOrderStatus(e.Out_Trade_No, OrderStatus.已创建) && obll.SetPayOrderId(e.Out_Trade_No, e.Trade_No)) { string remark = e.Trade_Status + " " + e.Refund_Status; lbll.Add(e.Out_Trade_No, remark, OrderStatus.已创建.ToString(), "alipay"); } } }
/// <summary> /// 置为备货状态,前置条件为:订单为初始创建,如果是货到付款,不需要判断支付状态,其他的需要为已支付状态 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnPrepareGoods_Click(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); OrderChangeLogBll lbll = new OrderChangeLogBll(); CommOrderModel order = obll.GetModel(lblOrderId.Text); if (order != null && order.OrderStatus == OrderStatus.已创建 && (order.PayMethod == PayMethType.货到付款 || order.PayStatus == PayStatus.支付成功)) { obll.ChangeOrderStatus(order.OrderId, OrderStatus.备货中); lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.备货中.ToString(), Context.User.Identity.Name); ShowOrderInfo(lblOrderId.Text); } }
/// <summary> /// 置为交易失败,前置条件为:货到付款订单,已发货;其他订单,已退款 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnFail_Click(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); OrderChangeLogBll lbll = new OrderChangeLogBll(); CommOrderModel order = obll.GetModel(lblOrderId.Text); if (order != null && ((order.PayMethod == PayMethType.货到付款 && order.OrderStatus == OrderStatus.已发货) || (order.PayMethod != PayMethType.货到付款 && order.PayStatus == PayStatus.退款完成))) { obll.ChangeOrderStatus(order.OrderId, OrderStatus.交易失败); lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.交易失败.ToString(), Context.User.Identity.Name); ShowOrderInfo(lblOrderId.Text); } }
/// <summary> /// 修改交易价格 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> void ap_ModifyTradeBaseTotalFee(object sender, NotifyEventArgs e) { log.Info("修改交易价格,订单号为:" + e.Out_Trade_No); CommOrderModel omodel = obll.GetModel(e.Out_Trade_No); if (omodel.PayMethod == PayMethType.支付宝) { if (e.Is_Total_Fee_Adjust == "T") { if (obll.ModifyTotalFee(e.Out_Trade_No, e.Total_Fee ?? 0)) { string remark = String.Format("修改订单金额,修改前总价为:{0},修改后的的总价为:{1},相关状态为:{2}", omodel.Paysum, e.Total_Fee, e.Trade_Status + " " + e.Refund_Status); lbll.Add(e.Out_Trade_No, remark, "议价", "alipay"); } } } }
/// <summary> /// 置为买家签收(买家确认),隐含实现,如果为线上支付,则同时跳转至结算页面,前置条件:订单已发货 /// 如果是货到付款订单,同时设置订单支付状态为已支付 /// </summary> /// <param name="sender"></param> /// <param name="e"></param> protected void btnCherrys_Click(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); OrderChangeLogBll lbll = new OrderChangeLogBll(); CommOrderModel order = obll.GetModel(lblOrderId.Text); if (order.OrderStatus == OrderStatus.已发货 || order.OrderStatus == OrderStatus.物流到货) { obll.ChangeOrderStatus(order.OrderId, OrderStatus.买家确认); lbll.Add(order.OrderId, txtActionRemark.Text.Trim(), OrderStatus.买家确认.ToString(), Context.User.Identity.Name); if (order.PayMethod == PayMethType.支付宝) { // 转向支付结算页面 } ShowOrderInfo(lblOrderId.Text); } }
protected void Page_Load(object sender, EventArgs e) { CommOrderBll obll = new CommOrderBll(); string orderId = Request.QueryString["orderId"]; CommOrderModel model = obll.GetModel(orderId); List <CommOrderItemModel> items = obll.GetOrderItems(orderId); string subject = "test product"; int quantity = 1; string paymethod = (model.ShipMethod == ShipMethodType.EMS ? "EMS" : "EXPRESS"); // StandardGoods bp = new StandardGoods(PayServiceType.trade_create_by_buyer.Key, AlipaySetting.Partner, //AlipaySetting.Key, //AlipaySetting.SignType, //subject, model.OrderId, model.Paysum, quantity, AlipaySetting.SellerEmail, AlipaySetting.SellerId, //"POST", model.ShipFee, LogisticsPayment.BUYER_PAY.Key, "1"); //string logistics_type = "POST"; //string logistics_fee = TextBox2.Text; //string logistics_payment = "BUYER_PAY"; //string logistics_type_1 = "EXPRESS"; //string logistics_fee_1 = TextBox3.Text; //string logistics_payment_1 = "BUYER_PAY"; //bp.Notify_Url = AlipaySetting.NotifyUrl; //bp.Return_Url = AlipaySetting.ReturnUrl; //按时构造订单号; string out_trade_no = model.OrderId; //业务参数赋值; string gateway = AlipaySetting.PushUrl; //'支付接口 string service = PayServiceType.trade_create_by_buyer.Key; string partner = AlipaySetting.Partner; //partner 合作伙伴ID 保留字段 string sign_type = AlipaySetting.SignType; string body = "test order"; //body 商品描述 string payment_type = "1"; //支付类型 string price = model.Paysum.ToString("f2"); string show_url = "http://dingding.uncc.cn/"; string seller_email = AlipaySetting.SellerEmail; //卖家账号 string key = AlipaySetting.Key; //partner账户的支付宝安全校验码 string return_url = AlipaySetting.ReturnUrl; //服务器通知返回接口 string notify_url = AlipaySetting.NotifyUrl; //服务器通知返回接口 string _input_charset = AlipaySetting.EncodeType; string logistics_type = "POST"; string logistics_fee = model.ShipFee.ToString("f2"); string logistics_payment = LogisticsPayment.BUYER_PAY.Key; string logistics_type_1 = null; string logistics_fee_1 = null; string logistics_payment_1 = null; MyAliPay ap = new MyAliPay(); string aliay_url = ap.CreatUrl( gateway, service, partner, sign_type, out_trade_no, subject, body, payment_type, price, show_url, seller_email, key, return_url, _input_charset, notify_url, logistics_type, logistics_fee, logistics_payment, logistics_type_1, logistics_fee_1, logistics_payment_1, quantity.ToString() ); Response.Redirect(aliay_url); }
/// <summary> /// 显示允许管理员操作的按钮 /// 在线支付 /// 未支付 —— 关闭订单 /// 支付成功,—— 审核通过,开始备货 /// 支付成功,—— 退款给买家,交易失败 /// 开始备货,—— 发货 /// 开始备货 —— 退款给买家,交易失败 /// 已发货,—— 物流确认到货 /// 已发货,—— 买家拒收,退款给买家,交易失败 /// 物流确认到货,买家确认收货或超时 —— 交易完成 /// /// 银行转帐,邮件汇款 /// 未支付 —— 关闭订单 /// 未支付 —— 买家付款成功 /// 支付成功,—— 审核通过,开始备货 /// 支付成功,—— 退款给买家,交易失败 /// 开始备货,—— 发货 /// 开始备货 —— 退款给买家,交易失败 /// 已发货,—— 物流确认到货,交易完成 /// 已发货,—— 买家拒收,退款给买家,交易失败 /// 货到付款 /// 未支付 —— 关闭订单 /// 未支付 —— 审核通过,备货 /// 备货中 —— 发货 /// 发货中 —— 物流确认收货收款,交易成功 /// 发货中 —— 买家未签收,交易失败 /// </summary> /// <param name="order"></param> private void ShowActions(CommOrderModel order) { btnClose.Visible = false; btnPrepareGoods.Visible = false; btnFail.Visible = false; btnSend.Visible = false; btnCherrys.Visible = false; btnFinish.Visible = false; btnPaySucc.Visible = false; btnRefund.Visible = false; txtActionRemark.Visible = false; if (order.OrderStatus == OrderStatus.交易关闭 || order.OrderStatus == OrderStatus.交易失败 || order.OrderStatus == OrderStatus.交易完成) { return; } if (order.PayMethod == PayMethType.货到付款) { if (order.OrderStatus == OrderStatus.已创建) { btnPrepareGoods.Visible = true; btnClose.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.备货中) { btnSend.Visible = true; btnClose.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.已发货) { btnCherrys.Visible = true; btnFail.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.物流到货) { btnFinish.Visible = true; txtActionRemark.Visible = true; } } if (order.PayMethod == PayMethType.银行转账 || order.PayMethod == PayMethType.邮局汇款) { if (order.PayStatus == PayStatus.等待付款) { if (order.OrderStatus == OrderStatus.已创建) { btnClose.Visible = true; btnPaySucc.Visible = true; txtActionRemark.Visible = true; } } else if (order.PayStatus == PayStatus.支付成功) { if (order.OrderStatus == OrderStatus.已创建) { btnRefund.Visible = true; btnPrepareGoods.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.备货中) { btnRefund.Visible = true; btnSend.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.已发货) { btnCherrys.Visible = true; txtActionRemark.Visible = true; } else if (order.OrderStatus == OrderStatus.物流到货 || order.OrderStatus == OrderStatus.买家确认) { btnFinish.Visible = true; txtActionRemark.Visible = true; } } else if (order.PayStatus == PayStatus.退款申请中) { btnRefund.Visible = true; txtActionRemark.Visible = true; } else if (order.PayStatus == PayStatus.退款完成) { btnFail.Visible = true; txtActionRemark.Visible = true; } } #region 支付宝 if (order.PayMethod == PayMethType.支付宝) { if (order.PayStatus == PayStatus.等待付款 && String.IsNullOrEmpty(order.PayorderId)) { txtActionRemark.Visible = true; btnClose.Visible = true; } } //if (order.PayMethod == PayMethType.支付宝) //{ // if (order.PayStatus == PayStatus.等待付款 && String.IsNullOrEmpty(order.PayorderId)) // { // txtActionRemark.Visible = true; // btnClose.Visible = true; // } // else if (order.PayStatus == PayStatus.支付成功) // { // btnRefund.Visible = true; // if (order.OrderStatus == OrderStatus.已创建) // { // btnRefund.Visible = true; // btnPrepareGoods.Visible = true; // txtActionRemark.Visible = true; // btnClose.Visible = true; // } // else if (order.OrderStatus == OrderStatus.备货中) // { // btnSend.Visible = true; // txtActionRemark.Visible = true; // if (order.PayStatus == PayStatus.退款申请中) // { // btnRefund.Visible = true; // } // } // else if (order.OrderStatus == OrderStatus.已发货) // { // if (order.PayStatus == PayStatus.退款申请中) // { // btnRefund.Visible = true; // } // btnCherrys.Visible = true; // txtActionRemark.Visible = true; // } // else if (order.OrderStatus == OrderStatus.物流到货) // { // btnFinish.Visible = true; // txtActionRemark.Visible = true; // } // else if (order.OrderStatus == OrderStatus.买家确认) // { // btnFinish.Visible = true; // txtActionRemark.Visible = true; // } // } // else if (order.PayStatus == PayStatus.退款申请中) // { // txtActionRemark.Visible = true; // btnRefund.Visible = true; // } // else if (order.PayStatus == PayStatus.退款完成) // { // txtActionRemark.Visible = true; // btnFail.Visible = true; // } //} #endregion }