123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153 |
- using LeaRun.Application.Code;
- using LeaRun.Util.Offices;
- using LeaRun.Util;
- using System;
- using System.Collections.Generic;
- using System.Linq;
- using System.Web;
- using System.Web.Mvc;
- using LeaRun.Application.Web.Common;
- using System.Data;
- using System.Text;
- using WxPayAPI;
- namespace LeaRun.Application.Web.Areas.WeChatManage.Controllers
- {
- public class RefundController : MvcControllerBase
- {
- #region 视图功能
- /// <summary>
- /// 手机审核
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- [HandlerAuthorize(PermissionMode.Enforce)]
- public ActionResult Index()
- {
- return View();
- }
- /// <summary>
- /// 获取审核信息
- /// </summary>
- /// <returns></returns>
- [HttpGet]
- public ActionResult GetPayMentInfoJson()
- {
- StringBuilder sb = new StringBuilder();
- String sql = "select A.WxPayMentInfo_ID,B.CustomerCode,B.Username,C.PlanMoney,C.GetMoney,C.CreateDT,C.InvoiceCode,A.Is_Refund,A.ISPaySuccess,A.Transaction_id,A.Out_trade_no from BCS_WxPayMentInfo A left Join BCS_WxPayUserInfo B on B.WXOpenId = A.OpenId and B.IsDelete = 0 left join BCS_Charge C on C.Charge_ID = A.Charge_ID";
- DataTable dt = SqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
- sb.Append("{\"page\":\"1\",").Append("\"total\":2,").Append("\"records\":\"").Append(dt.Rows.Count).Append("\",");
- sb.Append("\"rows\":[");
- for (int i = 0; i < dt.Rows.Count; i++)
- {
- var row = dt.Rows[i];
- sb.Append("{\"id\":\"").Append(row["WxPayMentInfo_ID"]).Append("\",\"cell\":");
- sb.Append("[\"").Append(row["CustomerCode"].ToString()).Append("\",\"");
- sb.Append(row["Username"].ToString()).Append("\",\"");
- sb.Append(row["PlanMoney"].ToString()).Append("\",\"");
- sb.Append(row["GetMoney"].ToString()).Append("\",\"");
- sb.Append(row["CreateDT"].ToString()).Append("\",\"");
- sb.Append(row["InvoiceCode"].ToString()).Append("\",\"");
- sb.Append(row["Transaction_id"].ToString()).Append("\",\"");
- sb.Append(row["Out_trade_no"].ToString()).Append("\",\"");
- //sb.Append(row["ISPaySuccess"].ToString()).Append("\",\"");
- if (row["ISPaySuccess"].ToString() == "是")
- {
- if (row["Is_Refund"].ToString() == "1")
- {
- sb.Append("退款成功").Append("\"]");
- }
- else
- {
- sb.Append("支付成功").Append("\"]");
- }
- }
- if (row["ISPaySuccess"].ToString() == "否")
- {
- sb.Append("支付失败").Append("\"]");
- }
- //sb.Append(row["IsAllow"].ToString()).Append("\"]");
- if (i == dt.Rows.Count - 1)
- {
- sb.Append("}");
- }
- else
- {
- sb.Append("},");
- }
- }
- sb.Append("],");
- sb.Append("\"userdata\":{\"amount\":");
- sb.Append("1111111").Append(",\"tax\":");
- sb.Append("2222222").Append(",\"total\":");
- sb.Append("3333333").Append(",\"name\":\"Totals:\"}}");
- //var data = ExcelHelper.ExcelImport(Server.MapPath("~/Areas/ReportManage/Views/ReportDemo/data/Reconciliation.xlsx"));
- return Content(sb.ToString());// Content(data.ToJson());
- }
- /// <summary>
- /// 退款
- /// </summary>
- /// <param name="Id">审核条数的ID</param>
- /// <returns></returns>
- [HttpGet]
- public ActionResult RefundFee(String Id)
- {
- String json = "{\"code\":\"0\",\"Msg\":\"退款成功\"}";
- //变量定义区
- //微信订单号
- String transaction_id = "";
- //商户订单号
- String out_trade_no = "";
- //金额
- decimal money;
- //查询订单信息
- String sql = " select Transaction_id,Out_trade_no,Totol_Fee from BCS_WxPayMentInfo where WxPayMentInfo_ID = " + Id;
- DataTable dt = SqlHelper.ExecuteDataTable(sql, CommandType.Text, null);
- transaction_id = dt.Rows[0]["Transaction_id"].ToString();
- out_trade_no = dt.Rows[0]["Out_trade_no"].ToString();
- money = Convert.ToDecimal(dt.Rows[0]["Totol_Fee"].ToString()) * 100;
- string result = Refund.Run(transaction_id, out_trade_no, money.ToString().Split('.')[0], money.ToString().Split('.')[0]);
- if (result.Contains("result_code=SUCCESS"))
- {
- json = "{\"code\":\"1\",\"Msg\":\"退款成功\"}";
- //更新数据状态
- String sqlUpdate = "update BCS_WxPayMentInfo set Is_Refund = 1 where WxPayMentInfo_ID =" + Id;
- SqlHelper.ExecuteNonQuery(sqlUpdate, CommandType.Text, null);
- //插入退款记录表
- InsertWxRefundLog(transaction_id, out_trade_no, money.ToString(), "", Id.ToString());
- }
- else
- {
- json = "{\"code\":\"0\",\"Msg\":\"退款失败\"}";
- }
- return Content(json);
- }
- //插入退款记录表
- public void InsertWxRefundLog(String transaction_id, String out_trade_no, String money, String Operator, String WxPayMentInfo_ID)
- {
- StringBuilder sb = new StringBuilder();
- sb.Append("INSERT INTO BCS_WxRefundLog (Transaction_id,Out_trade_no,RefundTime,Operator,RefundFee,WxPayMentInfo_ID) VALUES ('");
- sb.Append(transaction_id);
- sb.Append("','");
- sb.Append(out_trade_no);
- sb.Append("','");
- sb.Append(DateTime.Now);
- sb.Append("','");
- sb.Append(OperatorProvider.Provider.Current().UserName);
- sb.Append("',");
- sb.Append(money);
- sb.Append(",");
- sb.Append(WxPayMentInfo_ID);
- sb.Append(")");
- SqlHelper.ExecuteNonQuery(sb.ToString(), CommandType.Text, null);
- }
- #endregion
- }
- }
|