public int Editwxrefundlog(B2b_pay_wxrefundlog refundlog) { using (var helper = new SqlHelper()) { int r = new Internalb2b_pay_wxrefundlog(helper).Editwxrefundlog(refundlog); return(r); } }
protected void Button3_Click(object sender, EventArgs e) { string transaction_id = Transaction_id.Text.Trim(); string out_trade_no = Out_trade_no.Text.Trim(); string out_refund_no = Out_refund_no.Text.Trim(); string total_fee = Total_fee.Text.Trim(); string refund_fee = Refund_fee.Text.Trim(); //根据订单id得到支付信息,进而得到公司的微信支付设置信息 B2b_pay modelb2pay = new B2bPayData().GetPayByoId(out_trade_no.ConvertTo <int>(0)); if (modelb2pay == null) { Label1.Text = "支付信息不存在"; return; } B2b_finance_paytype model = new B2b_finance_paytypeData().GetFinancePayTypeByComid(modelb2pay.comid); if (model == null) { Label1.Text = "微信支付设置信息不存在"; return; } WxPayConfig config = new WxPayConfig { APPID = model.Wx_appid, APPSECRET = model.Wx_appkey, KEY = model.Wx_paysignkey, MCHID = model.Wx_partnerid, IP = CommonFunc.GetRealIP(), SSLCERT_PATH = model.wx_SSLCERT_PATH, SSLCERT_PASSWORD = model.wx_SSLCERT_PASSWORD, PROXY_URL = "http://115.28.38.65:80", LOG_LEVENL = 3, //日志级别 REPORT_LEVENL = 0 //上报信息配置 }; lock (lockobj) { ////根据商户退款单号 判断退款是否已经申请成功 //bool issuc = new B2b_pay_wxrefundlogData().JudgerefundByout_refund_no(out_refund_no); //string r = ""; //if (issuc) //{ // r = "退款已经申请成功"; //} //else //{ //r = Refund.Run(transaction_id, out_trade_no, total_fee, refund_fee, out_refund_no, config); //} B2b_pay_wxrefundlog refundlog = new B2b_pay_wxrefundlog { id = 0, out_refund_no = out_refund_no, out_trade_no = out_trade_no, transaction_id = transaction_id, total_fee = int.Parse(total_fee), refund_fee = int.Parse(refund_fee), send_xml = "", send_time = DateTime.Parse("1970-01-01 00:00:00"), return_code = "", return_msg = "", err_code = "", err_code_des = "", refund_id = "", return_xml = "", return_time = DateTime.Parse("1970-01-01 00:00:00"), }; try { WxPayData data = new WxPayData(); data.SetValue("transaction_id", transaction_id); data.SetValue("out_trade_no", out_trade_no); data.SetValue("total_fee", int.Parse(total_fee)); //订单总金额 data.SetValue("refund_fee", int.Parse(refund_fee)); //退款金额 data.SetValue("out_refund_no", out_refund_no); //随机生成商户退款单号 data.SetValue("op_user_id", config.MCHID); //操作员,默认为商户号 data.SetValue("appid", config.APPID); //公众账号ID data.SetValue("mch_id", config.MCHID); //商户号 data.SetValue("nonce_str", Guid.NewGuid().ToString().Replace("-", "")); //随机字符串 data.SetValue("sign", data.MakeSign(config)); //签名 string xml = data.ToXml(config); var start = DateTime.Now; refundlog.send_xml = xml; refundlog.send_time = start; int ee = new B2b_pay_wxrefundlogData().Editwxrefundlog(refundlog); refundlog.id = ee; if (ee == 0) { Label1.Text = "记录微信退款日志出错"; return; } string r = Refund.Run(transaction_id, out_trade_no, total_fee, refund_fee, out_refund_no, config); string[] str = r.Replace("<br>", ",").Split(','); Dictionary <string, string> dic = new Dictionary <string, string>(); foreach (string s in str) { if (s != "") { dic.Add(s.Split('=')[0], s.Split('=')[1]); } } string return_code = dic["return_code"]; refundlog.return_code = return_code; if (dic.ContainsKey("return_msg")) { string return_msg = dic["return_msg"]; refundlog.return_msg = return_msg; } if (dic.ContainsKey("err_code")) { string err_code = dic["err_code"]; refundlog.err_code = err_code; } if (dic.ContainsKey("err_code_des")) { string err_code_des = dic["err_code_des"]; refundlog.err_code_des = err_code_des; } if (dic.ContainsKey("refund_id")) { string refund_id = dic["refund_id"]; refundlog.refund_id = refund_id; } refundlog.return_xml = r; refundlog.return_time = DateTime.Now; new B2b_pay_wxrefundlogData().Editwxrefundlog(refundlog); Label1.Text = r; } catch (Exception ef) { Label1.Text = "记录微信退款日志出错:" + ef.Message; return; } } }
internal int Editwxrefundlog(B2b_pay_wxrefundlog m) { if (m.id == 0) { string sql = @"INSERT INTO [b2b_pay_wxrefundlog] ([out_refund_no] ,[out_trade_no] ,[transaction_id] ,[total_fee] ,[refund_fee] ,[send_xml] ,[send_time] ,[return_code] ,[return_msg] ,[err_code] ,[err_code_des] ,[refund_id] ,[return_xml] ,[return_time]) VALUES (@out_refund_no ,@out_trade_no ,@transaction_id ,@total_fee ,@refund_fee ,@send_xml ,@send_time ,@return_code ,@return_msg ,@err_code ,@err_code_des ,@refund_id ,@return_xml ,@return_time);select @@identity;"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@out_refund_no", m.out_refund_no); cmd.AddParam("@out_trade_no", m.out_trade_no); cmd.AddParam("@transaction_id", m.transaction_id); cmd.AddParam("@total_fee", m.total_fee); cmd.AddParam("@refund_fee", m.refund_fee); cmd.AddParam("@send_xml", m.send_xml); cmd.AddParam("@send_time", m.send_time); cmd.AddParam("@return_code", m.return_code); cmd.AddParam("@return_msg", m.return_msg); cmd.AddParam("@err_code", m.err_code); cmd.AddParam("@err_code_des", m.err_code_des); cmd.AddParam("@refund_id", m.refund_id); cmd.AddParam("@return_xml", m.return_xml); cmd.AddParam("@return_time", m.return_time); object o = cmd.ExecuteScalar(); return(int.Parse(o.ToString())); } else { string sql = @"UPDATE [b2b_pay_wxrefundlog] SET [out_refund_no] = @out_refund_no ,[out_trade_no] = @out_trade_no ,[transaction_id] = @transaction_id ,[total_fee] = @total_fee ,[refund_fee] = @refund_fee ,[send_xml] = @send_xml ,[send_time] = @send_time ,[return_code] = @return_code ,[return_msg] = @return_msg ,[err_code] = @err_code ,[err_code_des] = @err_code_des ,[refund_id] = @refund_id ,[return_xml] = @return_xml ,[return_time] = @return_time WHERE id=@id"; var cmd = sqlHelper.PrepareTextSqlCommand(sql); cmd.AddParam("@id", m.id); cmd.AddParam("@out_refund_no", m.out_refund_no); cmd.AddParam("@out_trade_no", m.out_trade_no); cmd.AddParam("@transaction_id", m.transaction_id); cmd.AddParam("@total_fee", m.total_fee); cmd.AddParam("@refund_fee", m.refund_fee); cmd.AddParam("@send_xml", m.send_xml); cmd.AddParam("@send_time", m.send_time); cmd.AddParam("@return_code", m.return_code); cmd.AddParam("@return_msg", m.return_msg); cmd.AddParam("@err_code", m.err_code); cmd.AddParam("@err_code_des", m.err_code_des); cmd.AddParam("@refund_id", m.refund_id); cmd.AddParam("@return_xml", m.return_xml); cmd.AddParam("@return_time", m.return_time); cmd.ExecuteNonQuery(); return(m.id); } }