using System; using System.Linq; using System.Web.Mvc; using DSWeb.Areas.Account.DAL.Chfee_Jinzhang; using DSWeb.Areas.Account.Models.Chfee_jinzhang; using DSWeb.MvcShipping.Helper; using DSWeb.MvcShipping.Comm.Cookie; using DSWeb.Areas.CommMng.DAL; using System.Collections.Generic; using HcUtility.Comm; using HcUtility.Core; using DSWeb.EntityDA; using DSWeb.Areas.Account.Models.Chfee_Exrate; using System.Data; using DSWeb.Areas.Account.Models.Chfee_Pay; using DSWeb.Areas.Account.DAL.Chfee_bankdata; using System.IO; using DSWeb.Areas.Account.Models.Chfee_Invoice; using DSWeb.Areas.Account.Models.Chfee_Settlement; using DSWeb.SoftMng.Filter; using DSWeb.MvcShipping.DAL.MsSysParamSet; using javax.crypto; using System.Security.Cryptography; using System.Text; using System.Collections.Specialized; using DSWeb.MvcShipping.DAL.OP_SERVICEBILLDAL; using DSWeb.Areas.Dispatch.Helper; using NPOI.SS.Formula.Functions; using DSWeb.MvcShipping.DAL.MsSeaeOrderDAL; using DSWeb.Areas.Account.DAL.Chfee_Pay; using DSWeb.MvcShipping.Models.MsChFee; using DSWeb.Areas.Account.DAL.Chfee_Settlement; using DSWeb.Areas.Account.Models.Chfee_Payapplication; using DSWeb.Areas.Account.Models.Chfee_payapplication; using System.Web; using java.nio.file; using DSWeb.MvcShipping.DAL.MsCompanysDAL; using DSWeb.MvcShipping.DAL.MsBaseInfoDAL; using DSWeb.MvcShipping.Models.WMSNew; using com.sun.org.apache.bcel.@internal.classfile; //using Spire.Pdf.Graphics; using System.Drawing.Imaging; using System.Drawing; using PdfiumViewer; namespace DSWeb.Areas.Account.Controllers { [JsonRequestBehavior] public class Chfee_PayController : Controller { // // GET: public ActionResult Index() { return View(); } // // GET: / public ActionResult Edit() { return View(); } public ActionResult StlIndex() { return View(); } public ActionResult StlMateIndex() { return View(); } // // GET: #region //[SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 //public ContentResult GetDataList(int start, int limit, string sort, string condition) //{ // var dataList = ChBankdataDAL.GetDataList(condition, Convert.ToString(Session["USERID"]), CookieConfig.GetCookie_UserCode(Request), Convert.ToString(Session["COMPANYID"]), sort); // var list = dataList.Skip(start).Take(limit); // var json = JsonConvert.Serialize(new { Success = true, Message = "查询成功", totalCount = dataList.Count, data = list.ToList() }); // return new ContentResult() { Content = json }; //} [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult CreatePay(string GID) { DBResult result = new DBResult(); var HeadData = ChsettlementDAL.GetData("GID='" + GID + "'"); if (HeadData.PAYSTATUS == "提交支付"|| HeadData.PAYSTATUS == "支付完成") { var jsonRespose = new JsonResponse { Success = false, Message = "当前状态不允许生成支付!",Data="0" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var PayCompanyList = ChPayDAL.GetDataList("", CompanyName); if (PayCompanyList == null || PayCompanyList.Count == 0) { var jsonRespose = new JsonResponse { Success = false, Message = "没有注册信息无法支付!", Data = "1" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } var CompanyFunName = T_ALL_DA.GetStrSQL("FULLNAME", "select [DESCRIPTION] FULLNAME from [info_client] where [SHORTNAME]='" + HeadData.CUSTOMERNAME + "'"); var newChPaymentFrom = new ChPaymentFrom(); newChPaymentFrom.Username = PayCompanyList[0].Username; newChPaymentFrom.PayeeCompanyName = CompanyFunName; newChPaymentFrom.PayeeCompanyAccount = HeadData.CUSTACCOUNT; newChPaymentFrom.PayAmount = HeadData.AMOUNT; newChPaymentFrom.PAYGID = GID; newChPaymentFrom.PAYBILLNO = HeadData.BILLNO; //newChPaymentFrom.SwiftCode = headData.SwiftCode; //newChPaymentFrom.BankName = headData.BankName; //newChPaymentFrom.BankId = headData.BankId; //newChPaymentFrom.IsAcrossBank = headData.IsAcrossBank; //newChPaymentFrom.IsQuickPay = headData.IsQuickPay; //newChPaymentFrom.IsPartialPayment = headData.IsPartialPayment; //newChPaymentFrom.IsCNYPay = headData.IsCNYPay; //newChPaymentFrom.InvoiceFileNum = headData.InvoiceFileNum; //newChPaymentFrom.BankBranchName = headData.BankBranchName; //newChPaymentFrom.PayRemark = headData.PayRemark; //newChPaymentFrom.CallBackUrl = headData.CallBackUrl; //newChPaymentFrom.IsCNYPay = headData.IsCNYPay; result.Success = true; var json = JsonConvert.Serialize(new { Success = result.Success, Message = result.Message,Data= newChPaymentFrom }); return new ContentResult() { Content = json }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult CreateReg(string GID) { DBResult result = new DBResult(); var company = MsCompanysDAL.GetNoPicData("GID='"+ Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var newChPaymentFrom = new ChRegisterFrom(); newChPaymentFrom.CompanyName = company.FULLNAME; newChPaymentFrom.CompanyCode= company.TAXCODE; newChPaymentFrom.CompanyAddress = company.ADDRESS; newChPaymentFrom.ContactName = Convert.ToString(Session["SHOWNAME"]); newChPaymentFrom.Email = company.EMAIL; newChPaymentFrom.Phone = company.OFFICEPHONE; var bankList = MsBaseInfoDAL.GetBANKList("", Convert.ToString(Session["COMPANYID"]).ToString().Trim()); if (bankList != null && bankList.Count != 0) { foreach (var bank in bankList) { if ((bank.CURRENCY == "USD" && (bank.ISDEF == "True"))){ newChPaymentFrom.CompanyBank = bank.BANKNAME; newChPaymentFrom.CompanyAccount = bank.ACCOUNT; } } } result.Success = true; var json = JsonConvert.Serialize(new { Success = result.Success, Message = result.Message, Data = newChPaymentFrom }); return new ContentResult() { Content = json }; } [SqlKeyWordsFilter(Type = "Action")]//sql 防注入过滤器 public ContentResult CreateUrl(string GID) { DBResult result = new DBResult(); var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var dspayid=MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var url = payUrl + "/User/SetDRACCNOList?AppId=" + dspayid + "&UserName=" + DSPAYUSERNAME; result.Success = true; var json = JsonConvert.Serialize(new { Success = result.Success, Message = result.Message, Data = url }); return new ContentResult() { Content = json }; } public ContentResult GetPayCityList() { DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); var NewPayGet = new PayGet(); NewPayGet.AppId=MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; NewPayGet.ApiSerialNo= Guid.NewGuid().ToString(); var secretKey= MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(NewPayGet); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付获取城市列表", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl+ "/api/GetCityList", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付获取城市列表", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var CityList = _rd.Data; var jsonRespose = new jsonresponse { success = result.Success, message = result.Message, data = CityList.ToList() }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult GetPayBankList() { DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); var NewPayGet = new PayGet(); NewPayGet.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; NewPayGet.ApiSerialNo = Guid.NewGuid().ToString(); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(NewPayGet); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付获取银行列表", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/GetBankList", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付获取银行列表", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var CityList = _rd.Data; var jsonRespose = new jsonresponse { success = result.Success, message = result.Message, data = CityList.ToList() }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult GetCompanyIsPay() { DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0,32); var NewPayGet = new PayGetCompany(); NewPayGet.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; NewPayGet.ApiSerialNo = Guid.NewGuid().ToString(); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); NewPayGet.CompanyName = CompanyName; var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(NewPayGet); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付验证公司", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/CompanyRegistered", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付验证公司", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SendReg(string data) { var headData = JsonConvert.Deserialize(data); var localurl = System.Web.HttpContext.Current.Request.Url.Host; var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var newPaymentFrom = new RegisterFrom(); newPaymentFrom.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; newPaymentFrom.Username = headData.Username; newPaymentFrom.Password = MD5Encrypt32(headData.Password); newPaymentFrom.PayPassword = MD5Encrypt32(headData.PayPassword); newPaymentFrom.ContactName = headData.ContactName; newPaymentFrom.Phone = headData.Phone; newPaymentFrom.City = headData.City; newPaymentFrom.CompanyName = headData.CompanyName; newPaymentFrom.CompanyCode = headData.CompanyCode; newPaymentFrom.CompanyAddress = headData.CompanyAddress; newPaymentFrom.CompanyBank = headData.CompanyBank; newPaymentFrom.CompanyAccount = headData.CompanyAccount; newPaymentFrom.Email = headData.Email; newPaymentFrom.LegalName = headData.LegalName; if (!string.IsNullOrEmpty(headData.ValidatePassword)) newPaymentFrom.ValidatePassword = MD5Encrypt32(headData.ValidatePassword); newPaymentFrom.ApiSerialNo = Guid.NewGuid().ToString(); DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(newPaymentFrom); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付发起公司注册", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/RegisterFromApi", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付发起公司注册", "返回"); if (_rd.Code == 0) { var blUpSQL = " update sys_param_set set PARAMVALUE='" + headData.Username + "' WHERE GID='99F5C3F6-FE80-4401-9C0E-3B5312320F26'"; bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL); headData.AppId = newPaymentFrom.AppId; headData.ApiSerialNo = newPaymentFrom.ApiSerialNo; headData.GID = NonceStr; headData.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); headData.CREATEUSER = Convert.ToString(Session["USERID"]).ToString().Trim(); headData.DbOperationType = DbOperationType.DbotIns; var modb = new ModelObjectDB(); var ss=modb.Save(headData); var msgstr = ""; if (_rd.Data.IsRecharged == 0) { if (_rd.Data.IsNewUser == 0) { msgstr = "老客户未充值!"; } else { msgstr = "新客户未充值!"; } } if (_rd.Data.RegistrationInfo.IsRegisteredUSDOne == 0) { msgstr = msgstr + "美金第一账户未备案"; } result.Success = _rd.Code == 0; result.Message = msgstr; } else { result.Success =false; result.Message = _rd.Msg; } var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SendPay(string data,string filedata) { var headData = JsonConvert.Deserialize(data); var HeadData = ChsettlementDAL.GetData("GID='" + headData.PAYGID + "'"); if (HeadData.PAYSTATUS == "提交支付" || HeadData.PAYSTATUS == "支付完成") { var jsonRespose3 = new JsonResponse { Success = false, Message = "当前状态不允许生成支付!", Data = "0" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose3) }; } var filelist = JsonConvert.Deserialize>(filedata); var localurl = "http://"+System.Web.HttpContext.Current.Request.Url.Authority; var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var path = Server.MapPath("../../UploadFiles/MsOpFiles/TmpInv"); if (!Directory.Exists(path)) { Directory.CreateDirectory(path); } var InvFiles = new List(); foreach (var invfile in filelist) { if (System.IO.File.Exists(invfile.File_Path)) { var fileExt = System.IO.Path.GetExtension(invfile.File_Path); if (fileExt == ".pdf") { string randomFileName = System.IO.Path.GetRandomFileName().Replace(".", ""); var destinationFile = path + "/" + randomFileName + ".pdf"; System.IO.File.Copy(invfile.File_Path, destinationFile); var file = new InvFiles(); file.Path = localurl + "/UploadFiles/MsOpFiles/TmpInv/" + randomFileName + ".pdf" + "?a=23451"; file.fileExtension = "pdf"; InvFiles.Add(file); using (var document = PdfiumViewer.PdfDocument.Load(invfile.File_Path)) { for (int pageIndex = 0; pageIndex < document.PageCount; pageIndex++) { var pageImage = document.Render(pageIndex, 500, 500, true); // 300 dpi string randomImgFileName = System.IO.Path.GetRandomFileName().Replace(".", ""); var destinationImgFile = path + "/" + randomImgFileName + ".jpg"; pageImage.Save(destinationImgFile, System.Drawing.Imaging.ImageFormat.Jpeg); var file2 = new InvFiles(); file2.Path = localurl + "/UploadFiles/MsOpFiles/TmpInv/" + randomImgFileName + ".jpg" + "?a=23451"; file2.fileExtension = "jpg"; InvFiles.Add(file2); } } //Spire.Pdf.PdfDocument doc = new Spire.Pdf.PdfDocument(); //doc.LoadFromFile(invfile.File_Path); //doc.Pages.Insert(0); //for (var i = 0; i < doc.Pages.Count; i++) //{ // Image image = doc.SaveAsImage(i, PdfImageType.Bitmap, 500, 500); // string randomImgFileName = System.IO.Path.GetRandomFileName().Replace(".", ""); // var destinationImgFile = path + "/" + randomImgFileName + ".jpg"; // image.Save(destinationImgFile, ImageFormat.Jpeg); // if (i != 0) // { // var file2 = new InvFiles(); // file2.Path = localurl + "/UploadFiles/MsOpFiles/TmpInv/" + randomImgFileName + ".jpg" + "?a=23451"; // file2.fileExtension = "jpg"; // InvFiles.Add(file2); // } //} } else { var jsonRespose2 = new JsonResponse { Success =false, Message ="发票文件请上传pdf文件" }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose2) }; } } } var newPaymentFrom = new PaymentFrom(); newPaymentFrom.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; newPaymentFrom.Username = DSPAYUSERNAME; newPaymentFrom.PayeeCompanyName = headData.PayeeCompanyName; newPaymentFrom.PayeeCompanyAccount = headData.PayeeCompanyAccount; newPaymentFrom.PaymentAmount =Convert.ToInt32(headData.PayAmount*100); if (headData.IsAcrossBank == 0) { newPaymentFrom.SwiftCode =""; newPaymentFrom.BankName ="中国银行"; newPaymentFrom.BankId =5; } else { newPaymentFrom.SwiftCode = headData.SwiftCode; newPaymentFrom.BankName = headData.BankName; newPaymentFrom.BankId = headData.BankId; } newPaymentFrom.IsAcrossBank = headData.IsAcrossBank; newPaymentFrom.IsQuickPay = headData.IsQuickPay; newPaymentFrom.IsPartialPayment = headData.IsPartialPayment; newPaymentFrom.IsCNYPay = headData.IsCNYPay; newPaymentFrom.InvoiceFileNum = filelist.Count; newPaymentFrom.BankBranchName = headData.BankBranchName; newPaymentFrom.PayRemark = headData.PayRemark; newPaymentFrom.CallBackUrl = localurl+ "/Dispatch/Dispatch/PaymentCallback"; newPaymentFrom.IsCNYPay = headData.IsCNYPay; newPaymentFrom.ApiSerialNo = Guid.NewGuid().ToString(); newPaymentFrom.Files = InvFiles; DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(newPaymentFrom); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付发起支付", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/PaymentFromApi", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付发起支付", "返回"); if (_rd.Code == 0) { var blUpSQL = " update ch_fee_settlement set PAYID='"+ _rd.Data.SerialNo+ "',PAYSTATUS='提交付费' WHERE GID='" + headData.PAYGID+ "'"; bool bl = T_ALL_DA.GetExecuteSqlCommand(blUpSQL); headData.GID = NonceStr; headData.CREATETIME = DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss"); headData.CREATEUSER = Convert.ToString(Session["USERID"]).ToString().Trim(); headData.DbOperationType = DbOperationType.DbotIns; var modb = new ModelObjectDB(); modb.Save(headData); } result.Success = _rd.Code == 0; result.Message = _rd.Msg; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SendBankRecord() { var GID = Guid.NewGuid().ToString().Replace("-", ""); if (GID.Length > 32) GID = GID.Substring(0, 32); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var newPaymentFrom = new Bankrecord(); newPaymentFrom.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; newPaymentFrom.Username = DSPAYUSERNAME; newPaymentFrom.SerialNo = GID; newPaymentFrom.BankCode ="0000"; newPaymentFrom.BankMsg = ""; newPaymentFrom.Username = "ds_hxt"; newPaymentFrom.CompanyName = "青岛东胜伟业软件有限公司"; newPaymentFrom.RegistrationType = 0; newPaymentFrom.ApiSerialNo = NonceStr; DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(newPaymentFrom); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付发起备案", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/ManualBankRecordCallback", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付发起备案", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SendPayReCharge() { var GID = Guid.NewGuid().ToString().Replace("-", ""); if (GID.Length > 32) GID = GID.Substring(0, 32); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var newPaymentFrom = new PayReCharge(); newPaymentFrom.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; newPaymentFrom.Username = DSPAYUSERNAME; newPaymentFrom.RechargeCode = "0000"; newPaymentFrom.RechargeAmount =10000; newPaymentFrom.Username = "ds_hxt"; newPaymentFrom.CompanyName = "青岛东胜伟业软件有限公司"; newPaymentFrom.RechargePackage = "111"; newPaymentFrom.ApiSerialNo = NonceStr; newPaymentFrom.RechargeStartTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"); newPaymentFrom.RechargeEndTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"); newPaymentFrom.RechargeTime = DateTime.Now.ToString("yyyy-MM-ddTHH:mm:ssZ"); DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(newPaymentFrom); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付发起备案", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/ManualBankRecordCallback", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付发起备案", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public ContentResult SendPaymentCallBack() { var GID = Guid.NewGuid().ToString().Replace("-", ""); if (GID.Length > 32) GID = GID.Substring(0, 32); var NonceStr = Guid.NewGuid().ToString().Replace("-", ""); if (NonceStr.Length > 32) NonceStr = NonceStr.Substring(0, 32); var DSPAYUSERNAME = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYUSERNAME'").PARAMVALUE; var newPaymentFrom = new PaymentCallBack(); newPaymentFrom.AppId = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYID'").PARAMVALUE; newPaymentFrom.SerialNo = "ff5beca2-85aa-4c02-830c-e40c5cd51214"; newPaymentFrom.BankCode = "0000"; newPaymentFrom.ChargeAmount = 30000; newPaymentFrom.BankMsg = "111"; newPaymentFrom.ApiSerialNo = NonceStr; newPaymentFrom.CallbackUrl = "http://47.104.102.13:8081/Dispatch/Dispatch/PaymentCallback"; DBResult result = new DBResult(); var Timestamp = ConvertDateTimeToInt(DateTime.Now); T_ALL_DA T_ALL_DA = new EntityDA.T_ALL_DA(); var CompanyName = T_ALL_DA.GetStrSQL("FULLNAME", "select FULLNAME from [company] where GID='" + Convert.ToString(Session["COMPANYID"]).ToString().Trim() + "'"); var secretKey = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYKEY'").PARAMVALUE; var payUrl = MsSysParamSetDAL.GetData("PARAMNAME='DSPAYURL'").PARAMVALUE; var jsonstr = Newtonsoft.Json.JsonConvert.SerializeObject(newPaymentFrom); var Signature = signatureGet(jsonstr, NonceStr, Timestamp.ToString(), secretKey); Dictionary dicData = new Dictionary(); dicData.Add("Signature", Signature); dicData.Add("Timestamp", Timestamp.ToString()); dicData.Add("NonceStr", NonceStr); BasicDataRefDAL.SaveLog(jsonstr, "admin", "快付发起备案", "发送"); var rtn = WebRequestHelper.DoPostHead(payUrl + "/api/ManualBankRecordCallback", dicData, jsonstr); var _rd = JsonConvert.Deserialize(rtn); BasicDataRefDAL.SaveLog(rtn, "", "快付发起备案", "返回"); result.Success = _rd.Code == 0; result.Message = _rd.Msg; var jsonRespose = new JsonResponse { Success = result.Success, Message = result.Message }; return new ContentResult() { Content = JsonConvert.Serialize(jsonRespose) }; } public static long ConvertDateTimeToInt(System.DateTime time) { long t = (time.Ticks - 621356256000000000) / 10000; return t; } public static string signatureGet(string bodyJson, string noncestr, string timestamp, string secretKey) { string singature = string.Empty; string md5str = $"{bodyJson}NonceStr={noncestr}Timestamp={timestamp}{secretKey}"; singature = MD5Encrypt32(md5str); return singature; } public static string MD5Encrypt32(string password) { string cl = password; string pwd = ""; MD5 md5 = MD5.Create(); //实例化一个md5对像 // 加密后是一个字节类型的数组,这里要注意编码UTF8/Unicode等的选择  byte[] s = md5.ComputeHash(Encoding.UTF8.GetBytes(cl)); // 通过使用循环,将字节类型的数组转换为字符串,此字符串是常规字符格式化所得 for (int i = 0; i < s.Length; i++) { // 将得到的字符串使用十六进制类型格式。格式后的字符是小写的字母,如果使用大写(X)则格式后的字符是大写字符 pwd = pwd + s[i].ToString("x2"); } return pwd; } #endregion #region 参照部分 #endregion } }