public void GetRefund(string openID) { var managebll = new BLL.wx_diancai_tuidan_manage(); DataSet dr = managebll.GetRefundList(openID); if (dr.Tables[0].Rows.Count > 0) { var builder = new StringBuilder(); for (int i = 0; i < dr.Tables[0].Rows.Count; i++) { builder.Append("<ul>"); builder.Append("<li>"); builder.AppendFormat("<a href=\"diancai_RefundOrderDetail.aspx?wid={0}&shopid={1}&dingdan={2}&refundCode={3}&openid={4}\">", dr.Tables[0].Rows[i]["wid"].ToString(), dr.Tables[0].Rows[i]["shopinfoid"].ToString(), dr.Tables[0].Rows[i]["dingdan"].ToString(), dr.Tables[0].Rows[i]["refundCode"].ToString(), openId); builder.Append("<div class=\"info_01\">"); builder.AppendFormat("<h3>{0}</h3>", dr.Tables[0].Rows[i].Field <string>("hotelName")); builder.AppendFormat("<p>退款<b>¥{0}</b>共<b>{1}</b>件商品</p>", dr.Tables[0].Rows[i]["refundAmount"].ToString(), dr.Tables[0].Rows[i]["RefundCount"].ToString()); builder.Append("<span class=\"wave_blue_icon\"></span>"); builder.Append("</div>"); builder.Append("<div class=\"info_02\">"); builder.Append("<dl>"); builder.AppendFormat("<dd><b class=\"i_gray_icon\"></b>订单编号 {0}</dd>", dr.Tables[0].Rows[i]["orderNumber"].ToString()); builder.AppendFormat("<dd><b class=\"i_gray_icon\"></b>退单编号 {0}</dd>", dr.Tables[0].Rows[i]["refundCode"].ToString()); builder.AppendFormat("<dd><b class=\"time_gray_icon\"></b>退单日期 {0}</dd>", dr.Tables[0].Rows[i]["createDate"].ToString()); //此处应该有购票日期 builder.Append("</dl>"); builder.Append("</div>"); builder.Append("<div class=\"info_03\">"); var refundStatus = Convert.ToInt32(dr.Tables[0].Rows[i]["refundStatus"]); var statusDict = StatusManager.DishStatus.GetStatusDict(refundStatus); builder.AppendFormat("<span>{0}</span>", statusDict.StatusName); builder.Append("</div>"); builder.Append("</a>"); builder.Append("</li>"); builder.Append("</ul>"); } str = builder.ToString(); } }
/// <summary> /// 绑定订单详情 /// </summary> /// <param name="orderDetail"></param> public void BindOrderDetaile() { var manage = new BLL.wx_diancai_tuidan_manage(); var result = manage.GetRefundDetailWithOrderDetail(shopid, dingdan, refundCode); if (result != null && result.Tables.Count > 1) { var table0 = result.Tables[0]; var table1 = result.Tables[1]; if (table0.Rows.Count > 0) { orderRange = string.Format("{0}-{1}", table0.Rows[0]["beginDate"], table0.Rows[0]["endDate"]); GoodsName = table0.Rows[0].Field <string>("cpName"); GoodsPrice = table0.Rows[0].Field <double>("price"); PayAmount = (table0.Rows[0].Field <double>("refundAmount") / 100).ToString(); } if (table1.Rows.Count > 0) { OrderNumber = table1.Rows[0]["OrderNumber"].ToString(); GoodsCount = table1.Rows.Count; customeName = table1.Rows[0].Field <string>("customerName"); customerTel = table1.Rows[0].Field <string>("customerTel"); refundReason.InnerHtml = table1.Rows[0].Field <string>("refundReason"); } var detailBuilder = new StringBuilder(); detailBuilder.AppendFormat(@"<p>订单号:{0}</p> <p>退款商品:{1}</p> <p>退款数量:{2}</p> <p>商品单价:{3}元</p>", OrderNumber, GoodsName, GoodsCount, GoodsPrice); this.detail.InnerHtml = detailBuilder.ToString(); } }
protected void btnAgreeRefund_Click(object sender, EventArgs e) { try { var refundBll = new BLL.wx_diancai_tuidan_manage(); var refundResult = refundBll.GetWeChatRefundParams(shopid, orderID, refundCode); //使用系统订单号退单 if (refundResult != null && refundResult.Tables.Count > 0 && refundResult.Tables[0].Rows.Count > 0) { var orderNumber = refundResult.Tables[0].Rows[0]["orderNumber"].ToString(); var transaction_id = refundResult.Tables[0].Rows[0]["transaction_id"].ToString(); var refundAmount = Convert.ToInt32(refundResult.Tables[0].Rows[0]["refundAmount"]); var payAmount = Convert.ToInt32(refundResult.Tables[0].Rows[0]["payAmount"]); var shopInfo = new BLL.wx_diancai_shopinfo().GetModel(shopid); var wxModel = new BLL.wx_userweixin().GetModel((int)shopInfo.wid); var payInfo = new BLL.wx_payment_wxpay().GetModelByWid((int)shopInfo.wid); var requestHandler = new RequestHandler(null); requestHandler.SetParameter("out_trade_no", orderNumber); //requestHandler.SetParameter("transaction_id", transaction_id); requestHandler.SetParameter("out_refund_no", refundCode); requestHandler.SetParameter("appid", wxModel.AppId); requestHandler.SetParameter("mch_id", payInfo.mch_id);//商户号 requestHandler.SetParameter("nonce_str", Guid.NewGuid().ToString().Replace("-", "")); //退款金额 if (PayHelper.IsDebug) { requestHandler.SetParameter("total_fee", (payAmount / 100).ToString()); requestHandler.SetParameter("refund_fee", (refundAmount / 100).ToString()); } else { requestHandler.SetParameter("total_fee", payAmount.ToString()); requestHandler.SetParameter("refund_fee", refundAmount.ToString()); } requestHandler.SetParameter("op_user_id", wxModel.AppId); requestHandler.SetParameter("sign", requestHandler.CreateMd5Sign("key", payInfo.paykey)); var refundInfo = TenPayV3Helper.Refund(requestHandler.ParseXML(), string.Format(@"{0}{1}", AppDomain.CurrentDomain.BaseDirectory, payInfo.certInfoPath), payInfo.cerInfoPwd); var refundOrderResponse = new RefundOrderResponse(refundInfo); if (refundOrderResponse.IsSuccess) { new BLL.wx_diancai_tuidan_manage().RefundComplete(refundCode, this.txtRefundReason.Value.Trim()); Response.Redirect("diancai_dingdanRefund_manage.aspx"); } else { Response.Write(refundOrderResponse.return_msg); List(); } } } catch (Exception exception) { Response.Write(exception.Message); Response.Write(exception.StackTrace); List(); } }