Exemple #1
0
        public static VIEW_TG_order ToViewModel(TG_order model)
        {
            VIEW_TG_order item = new VIEW_TG_order();

            item.Id             = model.Id;
            item.orderNum       = model.orderNum;
            item.ThingNum       = model.ThingNum;
            item.transaction_id = model.transaction_id;
            item.trade_type     = model.trade_type;
            item.total_fee      = model.total_fee;
            item.yunPrice       = model.yunPrice;
            item.fenxiaoId      = model.fenxiaoId;
            item.UserId         = model.UserId;
            item.userOpenId     = model.userOpenId;
            item.userName       = model.userName;
            item.userSex        = model.userSex;
            item.UserTel        = model.UserTel;
            item.UserAddress    = model.UserAddress;
            item.UserPostNum    = model.UserPostNum;
            item.ispay          = model.ispay;
            item.orderTime      = model.orderTime;
            item.payTime        = model.payTime;
            item.sendTime       = model.sendTime;
            item.GetTime        = model.GetTime;
            item.tuiHuoTime     = model.tuiHuoTime;
            item.kdName         = model.kdName;
            item.kdNum          = model.kdNum;
            item.kdMailNum      = model.kdMailNum;
            item.years          = model.years;
            item.months         = model.months;
            item.remark1        = model.remark1;
            item.remark2        = model.remark2;
            item.remark3        = model.remark3;
            item.flat1          = model.flat1;
            item.flat2          = model.flat2;
            item.remark4        = model.remark4;
            item.remark5        = model.remark5;
            item.remark6        = model.remark6;
            item.flat7          = model.flat7;
            item.flat8          = model.flat8;
            item.RegTim1        = model.RegTim1;
            item.RegTim2        = model.RegTim2;
            item.ssh_status     = model.ssh_status;
            item.VERSION        = model.VERSION;
            item.SYNCOPERATION  = model.SYNCOPERATION;
            item.SYNCVERSION    = model.SYNCVERSION;
            item.SYNCFLAG       = model.SYNCFLAG;
            return(item);
        }
        public ActionResult Notify()
        {
            MODEL.TG_order order = new TG_order();
            LogHelper.WriteLog("XXXXXXXXXXXXXXXX");
            //创建ResponseHandler实例
            ShengUI.Helper.payCls.ResponseHandler resHandler = new ShengUI.Helper.payCls.ResponseHandler(HttpContext);
            resHandler.setKey(PayConfig.AppKey);

            //判断签名
            try
            {
                string error = "";
                if (resHandler.isWXsign(out error))
                {
                    #region 协议参数=====================================
                    //--------------协议参数--------------------------------------------------------
                    //SUCCESS/FAIL此字段是通信标识,非交易标识,交易是否成功需要查
                    string return_code = resHandler.getParameter("return_code");
                    //返回信息,如非空,为错误原因签名失败参数格式校验错误
                    string return_msg = resHandler.getParameter("return_msg");
                    //微信分配的公众账号 ID
                    string appid = resHandler.getParameter("appid");

                    //以下字段在 return_code 为 SUCCESS 的时候有返回--------------------------------
                    //微信支付分配的商户号
                    string mch_id = resHandler.getParameter("mch_id");
                    //微信支付分配的终端设备号
                    string device_info = resHandler.getParameter("device_info");
                    //微信分配的公众账号 ID
                    string nonce_str = resHandler.getParameter("nonce_str");
                    //业务结果 SUCCESS/FAIL
                    string result_code = resHandler.getParameter("result_code");
                    //错误代码
                    string err_code = resHandler.getParameter("err_code");
                    //结果信息描述
                    string err_code_des = resHandler.getParameter("err_code_des");

                    //以下字段在 return_code 和 result_code 都为 SUCCESS 的时候有返回---------------
                    //-------------业务参数---------------------------------------------------------
                    //用户在商户 appid 下的唯一标识
                    string openid = resHandler.getParameter("openid");
                    //用户是否关注公众账号,Y-关注,N-未关注,仅在公众账号类型支付有效
                    string is_subscribe = resHandler.getParameter("is_subscribe");
                    //JSAPI、NATIVE、MICROPAY、APP
                    string trade_type = resHandler.getParameter("trade_type");
                    //银行类型,采用字符串类型的银行标识
                    string bank_type = resHandler.getParameter("bank_type");
                    //订单总金额,单位为分
                    string total_fee = resHandler.getParameter("total_fee");
                    //货币类型,符合 ISO 4217 标准的三位字母代码,默认人民币:CNY
                    string fee_type = resHandler.getParameter("fee_type");
                    //微信支付订单号
                    string transaction_id = resHandler.getParameter("transaction_id");
                    //商户系统的订单号,与请求一致。
                    string out_trade_no = resHandler.getParameter("out_trade_no");
                    //商家数据包,原样返回
                    string attach = resHandler.getParameter("attach");
                    //支 付 完 成 时 间 , 格 式 为yyyyMMddhhmmss,如 2009 年12 月27日 9点 10分 10 秒表示为 20091227091010。时区为 GMT+8 beijing。该时间取自微信支付服务器
                    string time_end = resHandler.getParameter("time_end");

                    #endregion
                    //支付成功
                    if (!out_trade_no.Equals("") && return_code.Equals("SUCCESS") && result_code.Equals("SUCCESS"))
                    {
                        LogHelper.WriteLog("Notify 页面  支付成功,支付信息:商家订单号:" + out_trade_no + "、支付金额(分):" + total_fee + "、自定义参数:" + attach);

                        /**
                         *  这里输入用户逻辑操作,比如更新订单的支付状态
                         *
                         * **/
                        LogHelper.WriteLog("============ 单次支付结束 ===============");
                        var orderid = "";
                        if (out_trade_no.Contains("_"))
                        {
                            orderid = out_trade_no.Substring(0, out_trade_no.Length - 5);
                        }
                        else
                        {
                            orderid = out_trade_no;
                        }
                        LogHelper.WriteLog("============ 获取订单:" + orderid + "===============");
                        order = orderB.GetModelWithOutTrace(o => o.orderNum == orderid);
                        if (order != null)//代表
                        {
                            //  string sql = "update TG_order set ispay=1,transaction_id='" + transaction_id + "',payTime='" + DateTime.Now + "' where orderNum='" + out_trade_no + "'";//支付成功,更新订单状态

                            LogHelper.WriteLog(out_trade_no.Substring(0, out_trade_no.Length - 5));
                            order.payTime        = DateTime.Now;
                            order.transaction_id = transaction_id;
                            order.ispay          = 3;
                            order.ssh_status     = 3;
                            orderB.Modify(order, "ispay", "transaction_id", "payTime", "ssh_status");
                            LogHelper.WriteLog("============ 修改订单:" + orderid + "===============");
                        }
                        total_fee = (Convert.ToInt32(total_fee) / 100).ToString();
                    }
                    else
                    {
                        LogHelper.WriteLog("Notify 页面  支付失败,支付信息   total_fee= " + total_fee + "、err_code_des=" + err_code_des + "、result_code=" + result_code);
                    }
                }
                else
                {
                    LogHelper.WriteLog("Notify 页面  isWXsign= false ,错误信息:" + error);
                }
            }
            catch (Exception ee)
            {
                LogHelper.WriteLog("Notify 页面  发送异常错误:" + ee.Message);
            }

            return(Content("Notify 页面 "));
        }