Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        /// <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();
            }
        }
Exemplo n.º 3
0
        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();
            }
        }