/// <summary> /// 推荐人管理端Api验签 (true 验证通过, false 验证失败) /// </summary> /// <param name="signstr">签名</param> /// <param name="t">时间戳</param> /// <returns></returns> public static bool RecUserVerifySign(string signstr, string t) { string RecUser_KeyID = GetAppSettings("recuser_keyid"); string RecUser_Secret = GetAppSettings("recuser_secret"); return(signstr.Equals(SimonUtils.EnCodeMD5(RecUser_KeyID + t + RecUser_Secret), StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// 管理端Api验签 (true 验证通过, false 验证失败) /// </summary> /// <param name="signstr">签名</param> /// <param name="t">时间戳</param> /// <returns></returns> public static bool AdminVerifySign(string signstr, string t) { string Admin_KeyID = GetAppSettings("admin_keyid"); string Admin_Secret = GetAppSettings("admin_secret"); return(signstr.Equals(SimonUtils.EnCodeMD5(Admin_KeyID + t + Admin_Secret), StringComparison.OrdinalIgnoreCase)); }
/// <summary> /// 写文本日志 /// </summary> /// <param name="txtinfo">文本文件内容</param> /// <param name="txtfilepath">文本文件路径</param> /// <param name="txtfilename">文本文件名称</param> public static void WriteLog(string txtinfo, string txtfilepath, string txtfilename) { FileStream fs = null; StreamWriter sw = null; try { txtfilename = string.IsNullOrEmpty(txtfilename) ? DateTime.Now.ToString("yyyyMMdd") + ".txt" : txtfilename + ".txt"; string dirpath = AppDomain.CurrentDomain.BaseDirectory + txtfilepath; SimonUtils.CreateDir(dirpath); fs = new FileStream(dirpath + txtfilename, System.IO.FileMode.Append, System.IO.FileAccess.Write); sw = new StreamWriter(fs, Encoding.UTF8); sw.WriteLine(DateTime.Now.ToString() + " " + txtinfo + "\r\n"); } finally { if (sw != null) { sw.Flush(); sw.Dispose(); sw = null; } if (fs != null) { fs.Dispose(); fs = null; } } }
protected void Page_Load(object sender, EventArgs e) { string Admin_KeyID = GetAppSettings("api_keyid"); string Admin_Secret = GetAppSettings("api_secret"); Response.Write(SimonUtils.EnCodeMD5(Admin_KeyID + "1600000000" + Admin_Secret)); }
/// <summary> /// 裁剪图片并保存 /// </summary> public bool cropSaveAs(string fileName, string newFileName, int maxWidth, int maxHeight, int cropWidth, int cropHeight, int X, int Y) { string fileExt = SimonUtils.GetFileExt(fileName); //文件扩展名,不含“.” if (!IsImage(fileExt)) { return(false); } string newFileDir = SimonUtils.GetMapPath(newFileName.Substring(0, newFileName.LastIndexOf(@"/") + 1)); //检查是否有该路径,没有则创建 if (!Directory.Exists(newFileDir)) { Directory.CreateDirectory(newFileDir); } try { string fileFullPath = SimonUtils.GetMapPath(fileName); string toFileFullPath = SimonUtils.GetMapPath(newFileName); return(SimonThumbnail.MakeThumbnailImage(fileFullPath, toFileFullPath, 180, 180, cropWidth, cropHeight, X, Y)); } catch { return(false); } }
/// <summary> /// 生成UserName /// </summary> /// <returns></returns> public static string GenNewUserName(string nicknamestr) { nicknamestr = SimonUtils.StrCut2(nicknamestr, 5, ""); string _temp_nicknameext = string.Empty; _temp_nicknameext += DateTime.Now.ToString("fffffff").Substring(1, 3); return((nicknamestr + _temp_nicknameext).Replace("-", "_").Trim('_')); //适应UserName和NickName规则 }
/// <summary> /// 创建 /// </summary> /// <param name="FileName">原始图片路径</param> public bool SetImage(string FileName) { srcFileName = SimonUtils.GetMapPath(FileName); try { srcImage = Image.FromFile(srcFileName); } catch { return(false); } return(true); }
/// <summary> /// IP地址转换为地理位置 /// </summary> /// <param name="ipstr"></param> /// <returns></returns> public static string GetIPQQWryLocator(string ipstr) { string result = string.Empty; try { QQWry.NET.QQWryLocator qqWry = new QQWry.NET.QQWryLocator(SimonUtils.GetMapPath("/App_Data/qqwry.dat")); QQWry.NET.IPLocation ipl = qqWry.Query(ipstr); result = string.Format("{0} {1} {2}", ipl.IP, ipl.Country, ipl.Local); } catch { result = "error"; } return(result); }
/// <summary> /// 前端API验签检查(辅助方法) /// </summary> private void CheckSign() { string t = SimonUtils.Qnum("t"); //unix时间戳 (10位数字) string sign = SimonUtils.Q("sign"); //签名 if (t.Length != 10) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "时间戳错误")); } if (CurrSite.ApiCallTimeOut(t)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "请求超时")); } if (!CurrSite.VerifySign(sign, t)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "签名错误")); } }
/// <summary> /// 文字水印 /// </summary> /// <param name="imgPath">服务器图片相对路径</param> /// <param name="filename">保存文件名</param> /// <param name="watermarkText">水印文字</param> /// <param name="watermarkStatus">图片水印位置 0=不使用 1=左上 2=中上 3=右上 4=左中 9=右下</param> /// <param name="quality">附加水印图片质量,0-100</param> /// <param name="fontname">字体</param> /// <param name="fontsize">字体大小</param> public static void AddImageSignText(string imgPath, string filename, string watermarkText, int watermarkStatus, int quality, string fontname, int fontsize) { byte[] _ImageBytes = File.ReadAllBytes(SimonUtils.GetMapPath(imgPath)); Image img = Image.FromStream(new System.IO.MemoryStream(_ImageBytes)); filename = SimonUtils.GetMapPath(filename); Graphics g = Graphics.FromImage(img); Font drawFont = new Font(fontname, fontsize, FontStyle.Regular, GraphicsUnit.Pixel); SizeF crSize; crSize = g.MeasureString(watermarkText, drawFont); float xpos = 0; float ypos = 0; switch (watermarkStatus) { case 1: xpos = (float)img.Width * (float).01; ypos = (float)img.Height * (float).01; break; case 2: xpos = ((float)img.Width * (float).50) - (crSize.Width / 2); ypos = (float)img.Height * (float).01; break; case 3: xpos = ((float)img.Width * (float).99) - crSize.Width; ypos = (float)img.Height * (float).01; break; case 4: xpos = (float)img.Width * (float).01; ypos = ((float)img.Height * (float).50) - (crSize.Height / 2); break; case 5: xpos = ((float)img.Width * (float).50) - (crSize.Width / 2); ypos = ((float)img.Height * (float).50) - (crSize.Height / 2); break; case 6: xpos = ((float)img.Width * (float).99) - crSize.Width; ypos = ((float)img.Height * (float).50) - (crSize.Height / 2); break; case 7: xpos = (float)img.Width * (float).01; ypos = ((float)img.Height * (float).99) - crSize.Height; break; case 8: xpos = ((float)img.Width * (float).50) - (crSize.Width / 2); ypos = ((float)img.Height * (float).99) - crSize.Height; break; case 9: xpos = ((float)img.Width * (float).99) - crSize.Width; ypos = ((float)img.Height * (float).99) - crSize.Height; break; } g.DrawString(watermarkText, drawFont, new SolidBrush(Color.White), xpos + 1, ypos + 1); g.DrawString(watermarkText, drawFont, new SolidBrush(Color.Black), xpos, ypos); ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici = null; foreach (ImageCodecInfo codec in codecs) { if (codec.MimeType.IndexOf("jpeg") > -1) { ici = codec; } } EncoderParameters encoderParams = new EncoderParameters(); long[] qualityParam = new long[1]; if (quality < 0 || quality > 100) { quality = 80; } qualityParam[0] = quality; EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qualityParam); encoderParams.Param[0] = encoderParam; if (ici != null) { img.Save(filename, ici, encoderParams); } else { img.Save(filename); } g.Dispose(); img.Dispose(); }
protected void Page_Load(object sender, EventArgs e) { string p1_usercode = Request.Params["p1_usercode"]; string p2_order = Request.Params["p2_order"]; string p3_money = Request.Params["p3_money"]; string p4_status = Request.Params["p4_status"]; string p5_payorder = Request.Params["p5_payorder"]; string p6_paymethod = Request.Params["p6_paymethod"]; string p7_paychannelnum = Request.Params["p7_paychannelnum"]; if (p7_paychannelnum == null) { p7_paychannelnum = ""; } string p8_charset = Request.Params["p8_charset"]; string p9_signtype = Request.Params["p9_signtype"]; string p10_sign = Request.Params["p10_sign"]; string p11_remark = Request.Params["p11_remark"]; string MD5Sign = SimonUtils.EnCodeMD5(p1_usercode + "&" + p2_order + "&" + p3_money + "&" + p4_status + "&" + p5_payorder + "&" + p6_paymethod + "&" + p7_paychannelnum + "&" + p8_charset + "&" + p9_signtype + "&" + comp_key); //记录日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 旺实付 异步通知 日志-----------------------------------------------------------------------------------"); sb.Append("\r\n p1_usercode=" + p1_usercode); sb.Append("\r\n p2_order=" + p2_order); sb.Append("\r\n p3_money=" + p3_money); sb.Append("\r\n p4_status=" + p4_status); sb.Append("\r\n p5_payorder=" + p5_payorder); sb.Append("\r\n p6_paymethod=" + p6_paymethod); sb.Append("\r\n p7_paychannelnum=" + p7_paychannelnum); sb.Append("\r\n p8_charset=" + p8_charset); sb.Append("\r\n p9_signtype=" + p9_signtype); sb.Append("\r\n p10_sign=" + p10_sign); sb.Append("\r\n p11_remark=" + p11_remark); sb.Append("\r\n MD5Sign=" + MD5Sign); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_paywap_error_" + DateTime.Now.ToString("yyyyMMdd")); if (MD5Sign.Equals(p10_sign, StringComparison.OrdinalIgnoreCase) && p4_status == "1") { //交易成功 DataTable RMBCostDT = SimonDB.DataTable(@"select * from Web_RMBCost where OrderID=@OrderID", new DbParameter[] { SimonDB.CreDbPar("@OrderID", p2_order) }); if (RMBCostDT.Rows.Count <= 0) { Response.Write("订单不存在"); return; } DataRow RMBCostDR = RMBCostDT.Rows[0]; if (RMBCostDR["UpdateFlag"].ToString() == "1") { Response.Write("订单已处理"); return; } if (Convert.ToInt32(decimal.Parse(RMBCostDR["PayMoney"].ToString())) != Convert.ToInt32(decimal.Parse(p3_money))) { Response.Write("充值金额不符"); return; } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", RMBCostDR["Users_ids"]) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { Response.Write("用户不存在"); return; } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", RMBCostDR["PayMoney"].ToString()) }); if (RechargeRateDT.Rows.Count <= 0) { Response.Write("此充值金额的金币兑换率不存在"); return; } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //更新订单 List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", p2_order)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", Convert.ToInt32(decimal.Parse(p3_money)))); rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "1")); //更新状态 SimonDB.ExecuteNonQuery(@"update Web_RMBCost set InMoney=@InMoney,InSuccess=@InSuccess, PaySuccess=@PaySuccess,UpdateFlag=@UpdateFlag where OrderID=@OrderID", rmbcost_lpar.ToArray()); //充值动作 SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); //金币日志 SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@Remark", "旺实富充值,订单号:" + p3_money) }); //充值赠送金币 SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); //充值赠送金币日志 SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@Remark", "充值赠送金币,关联旺实富订单号:" + p5_payorder) }); SimonUtils.RespW("支付成功"); } }
protected void Page_Load(object sender, EventArgs e) { CheckSign(); string userid = SimonUtils.Qnum("userid"); //用户ID string rechargermb = SimonUtils.Qnum("rechargermb"); //充值金额(人民币) string payip = Request.Params["payip"]; //用户IP if (userid.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户ID错误(数字类型)")); } if (rechargermb.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "充值金额(人民币)错误(数字类型)")); } if (string.IsNullOrWhiteSpace(payip)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户IP错误")); } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", userid) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户不存在")); } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", rechargermb) }); if (RechargeRateDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "此充值金额的金币兑换率不存在")); } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //创建订单 string _orderdes = "充值金额:" + RechargeRateDR["RechargeRMB"].ToString() + " 兑换金币:" + RechargeRateDR["RechargeGold"].ToString() + " 赠送金币:" + RechargeRateDR["RegiveGold"].ToString(); string _ordernum = CurrSite.GenNewOrderNum(); while (((int)SimonDB.ExecuteScalar(@"select count(*) from Web_RMBCost where OrderID=@ordernum", new DbParameter[] { SimonDB.CreDbPar("@ordernum", _ordernum) })) > 0) { _ordernum = CurrSite.GenNewOrderNum(); } List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@Users_ids", UserDR["UserID"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@TrueName", UserDR["NickName"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString())); //rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb == "0.01" ? "6" : rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayType", "152")); //旺实富支付(http://www.paywap.cn/) 支付类型设置为152 rmbcost_lpar.Add(SimonDB.CreDbPar("@TypeInfo", "旺实富支付")); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", _ordernum)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@AddTime", DateTime.Now.ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@ExchangeRate", "1")); //充值兑换率(此字段暂时无效) rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", "0")); //提交订单时写入0,确定充值成功后需更新该字段 rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", false)); //In状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", false)); //Pay状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@MoneyFront", UserDR["WalletMoney"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "0")); //更新状态 0 未更新 1 已更新 rmbcost_lpar.Add(SimonDB.CreDbPar("@PurchaseType", "1")); //充值金币1 充值元宝2 rmbcost_lpar.Add(SimonDB.CreDbPar("@PayIP", payip)); SimonDB.ExecuteNonQuery(@"insert into Web_RMBCost (Users_ids,TrueName,UserName,PayMoney,PayType,TypeInfo,OrderID,AddTime, ExchangeRate,InMoney,InSuccess,PaySuccess,MoneyFront,UpdateFlag,PurchaseType, PayIP) values (@Users_ids,@TrueName,@UserName,@PayMoney,@PayType,@TypeInfo,@OrderID,@AddTime, @ExchangeRate,@InMoney,@InSuccess,@PaySuccess,@MoneyFront,@UpdateFlag,@PurchaseType, @PayIP)", rmbcost_lpar.ToArray()); string str_p2_order = _ordernum; string str_p3_money = string.Format("{0:N2}", int.Parse(rechargermb)); string str_p6_ordertime = DateTime.Now.ToString("yyyyMMddHHmmss"); string str_p7_sign = SimonUtils.EnCodeMD5(str_p1_usercode + "&" + str_p2_order + "&" + str_p3_money + "&" + str_p4_returnurl + "&" + str_p5_notifyurl + "&" + str_p6_ordertime + comp_key).ToUpper(); form1.Action = pay_url; p1_usercode.Value = str_p1_usercode; p2_order.Value = str_p2_order; p3_money.Value = str_p3_money; p4_returnurl.Value = str_p4_returnurl; p5_notifyurl.Value = str_p5_notifyurl; p6_ordertime.Value = str_p6_ordertime; p7_sign.Value = str_p7_sign; p9_paymethod.Value = "4"; p14_customname.Value = userid; p17_customip.Value = payip; p25_terminal.Value = "3"; p26_iswappay.Value = "3"; ScriptManager.RegisterStartupScript(this.Page, GetType(), "post1", "Post();", true); }
const string NOTIFY_URL = "http://api-mobilegame-test-000.kk838.com/a_qujuhe_notify_url.aspx"; //异步通知URL protected void Page_Load(object sender, EventArgs e) { CheckSign(); string userid = SimonUtils.Qnum("userid"); //用户ID string rechargermb = SimonUtils.Qnum("rechargermb"); //充值金额(人民币) string payip = Request.Params["payip"]; //用户IP if (userid.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户ID错误(数字类型)")); } if (rechargermb.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "充值金额(人民币)错误(数字类型)")); } if (string.IsNullOrWhiteSpace(payip)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户IP错误")); } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", userid) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户不存在")); } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", rechargermb) }); if (RechargeRateDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "此充值金额的金币兑换率不存在")); } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //创建订单 string _orderdes = "充值金额:" + RechargeRateDR["RechargeRMB"].ToString() + " 兑换金币:" + RechargeRateDR["RechargeGold"].ToString() + " 赠送金币:" + RechargeRateDR["RegiveGold"].ToString(); string _ordernum = CurrSite.GenNewOrderNum(); while (((int)SimonDB.ExecuteScalar(@"select count(*) from Web_RMBCost where OrderID=@ordernum", new DbParameter[] { SimonDB.CreDbPar("@ordernum", _ordernum) })) > 0) { _ordernum = CurrSite.GenNewOrderNum(); } List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@Users_ids", UserDR["UserID"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@TrueName", UserDR["NickName"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString())); //rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb == "0.01" ? "6" : rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayType", "151")); //去聚合支付(www.qujuhe.com) 支付类型设置为151 rmbcost_lpar.Add(SimonDB.CreDbPar("@TypeInfo", "去聚合支付")); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", _ordernum)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@AddTime", DateTime.Now.ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@ExchangeRate", "1")); //充值兑换率(此字段暂时无效) rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", "0")); //提交订单时写入0,确定充值成功后需更新该字段 rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", false)); //In状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", false)); //Pay状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@MoneyFront", UserDR["WalletMoney"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "0")); //更新状态 0 未更新 1 已更新 rmbcost_lpar.Add(SimonDB.CreDbPar("@PurchaseType", "1")); //充值金币1 充值元宝2 rmbcost_lpar.Add(SimonDB.CreDbPar("@PayIP", payip)); SimonDB.ExecuteNonQuery(@"insert into Web_RMBCost (Users_ids,TrueName,UserName,PayMoney,PayType,TypeInfo,OrderID,AddTime, ExchangeRate,InMoney,InSuccess,PaySuccess,MoneyFront,UpdateFlag,PurchaseType, PayIP) values (@Users_ids,@TrueName,@UserName,@PayMoney,@PayType,@TypeInfo,@OrderID,@AddTime, @ExchangeRate,@InMoney,@InSuccess,@PaySuccess,@MoneyFront,@UpdateFlag,@PurchaseType, @PayIP)", rmbcost_lpar.ToArray()); //对接去聚合 //参数名称 参数含义 是否必填 参与签名 参数说明 //pay_memberid 商户号 是 是 平台分配商户号 //pay_orderid 订单号 是 是 上送订单号唯一, 最大字符长度32 //pay_applydate 提交时间 是 是 时间格式:2016-12-26 18:18:18 //pay_bankcode 银行编码 是 是 参考后续说明 //pay_notifyurl 服务端通知 是 是 服务端返回地址/支付回调(POST返回数据) //pay_callbackurl 页面跳转通知 是 是 页面跳转返回**【现阶段不能自动跳转】** //pay_amount 订单金额 是 是 商品金额 //pay_md5sign MD5签名 是 否 请看MD5签名字段格式 //pay_productname 商品名称 是 否 中文或数字或字母 //sub_openid 公众号用户的openid 否 否 公众号支付此项必填,请检查公众号是否绑定获取用户openid //pay_deviceIp 设备真实IP地址 否 否 H5支付此项必填 //pay_scene 支付场景(Wap,IOS,Android) 否 否 H5支付此项必填,默认为Wap,区分大小写 //pay_attach 附加字段 否 否 此字段在返回时按原样返回(中文需要url编码) //pay_productnum 商户品数量 否 否 //pay_productdesc 商品描述 否 否 //pay_producturl 商户链接地址 否 否 string parms = "pay_amount=" + rechargermb + "&pay_applydate=" + DateTime.Today.ToString() + "&pay_bankcode=" + PAY_BANKCODE + "&pay_callbackurl=" + NOTIFY_URL + "&pay_memberid=" + PAY_MEMBERID + "&pay_notifyurl=" + NOTIFY_URL + "&pay_orderid=" + _ordernum + "&key=" + APP_KEY; string sParmsMd5 = GetMD5String(parms).ToUpper(); parms += "&pay_md5sign=" + sParmsMd5; parms += "&pay_deviceIp=" + payip; parms += "&pay_productname=chongzhi"; parms = SimonUrl.UpdateParam(parms, "key", ""); //加密计算后,提交POST参数时置空参数key,更安全 string receive_str = PostRequest(PAY_URL, parms); //去聚合要求使用post模式 //SimonUtils.RespWNC(receive_str); JsonData receive_jd = null; try { receive_jd = JsonMapper.ToObject(receive_str); } catch { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "Json异常")); } JsonData out_jd = new JsonData(); if (receive_jd["status"].ToString().ToLower() == "success") { out_jd["code"] = "1"; out_jd["msg"] = "success"; out_jd["results"] = new JsonData(); out_jd["results"]["orderid"] = _ordernum; out_jd["results"]["payurl"] = receive_jd["data"]["code_url"].ToString(); SimonUtils.RespWNC(out_jd.ToJson()); } else { //写错误日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 去聚合 支付 错误日志-----------------------------------------------------------------------------------"); sb.Append("\r\n receive_str: " + receive_str); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_qujuhepay_error_" + DateTime.Now.ToString("yyyyMMdd")); SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "支付接口网关报错,支付失败")); } }
protected void Page_Load(object sender, EventArgs e) { Stream receive_str = Request.InputStream; StreamReader sr = new StreamReader(receive_str); string requestMes = sr.ReadToEnd(); JsonData receive_jd = null; try { receive_jd = JsonMapper.ToObject(requestMes); } catch { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "Json异常")); } string merchant_id = receive_jd["merchant_id"].ToString(); string request_time = receive_jd["request_time"].ToString(); string pay_time = receive_jd["pay_time"].ToString(); string status = receive_jd["status"].ToString(); string order_amount = receive_jd["order_amount"].ToString(); string pay_amount = receive_jd["pay_amount"].ToString(); string out_trade_no = receive_jd["out_trade_no"].ToString(); //if (out_trade_no == null) out_trade_no = ""; string trade_no = receive_jd["trade_no"].ToString(); string fees = receive_jd["fees"].ToString(); string pay_type = receive_jd["pay_type"].ToString(); string nonce_str = receive_jd["nonce_str"].ToString(); string sign = receive_jd["sign"].ToString(); string MD5Sign = SimonUtils.EnCodeMD5("fees=" + fees + "&" + "merchant_id=" + merchant_id + "&" + "nonce_str=" + nonce_str + "&" + "order_amount=" + order_amount + "&" + "out_trade_no=" + out_trade_no + "&" + "pay_amount=" + pay_amount + "&" + "pay_time=" + pay_time + "&" + "pay_type=" + pay_type + "&" + "request_time=" + request_time + "&" + "status=" + status + "&" + "trade_no=" + trade_no + s_key).ToUpper(); //记录日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 暴风雪 异步通知 回调日志-----------------------------------------------------------------------------------"); sb.Append("\r\n requestMes=" + requestMes); sb.Append("\r\n merchant_id=" + merchant_id); sb.Append("\r\n request_time=" + request_time); sb.Append("\r\n pay_time=" + pay_time); sb.Append("\r\n status=" + status); sb.Append("\r\n order_amount=" + order_amount); sb.Append("\r\n pay_amount=" + pay_amount); sb.Append("\r\n out_trade_no=" + out_trade_no); sb.Append("\r\n trade_no=" + trade_no); sb.Append("\r\n fees=" + fees); sb.Append("\r\n pay_type=" + pay_type); sb.Append("\r\n nonce_str=" + nonce_str); sb.Append("\r\n sign=" + sign); sb.Append("\r\n MD5Sign=" + MD5Sign); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_paywap_error_" + DateTime.Now.ToString("yyyyMMdd")); if (MD5Sign.Equals(sign, StringComparison.OrdinalIgnoreCase) && status == "success") { //交易成功 DataTable RMBCostDT = SimonDB.DataTable(@"select * from Web_RMBCost where OrderID=@OrderID", new DbParameter[] { SimonDB.CreDbPar("@OrderID", out_trade_no) }); if (RMBCostDT.Rows.Count <= 0) { Response.Write("订单不存在"); return; } DataRow RMBCostDR = RMBCostDT.Rows[0]; if (RMBCostDR["UpdateFlag"].ToString() == "1") { Response.Write("订单已处理"); return; } if (Convert.ToInt32(decimal.Parse(RMBCostDR["PayMoney"].ToString())) != Convert.ToInt32(decimal.Parse(order_amount))) { Response.Write("充值金额不符"); return; } //获取充值货币类型 string PurchaseType = RMBCostDT.Rows[0]["PurchaseType"].ToString(); //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", RMBCostDR["Users_ids"]) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { Response.Write("用户不存在"); return; } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", RMBCostDR["PayMoney"].ToString()) }); if (RechargeRateDT.Rows.Count <= 0) { Response.Write("此充值金额的金币兑换率不存在"); return; } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //更新订单 List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", out_trade_no)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", Convert.ToInt32(decimal.Parse(order_amount)))); rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "1")); //更新状态 SimonDB.ExecuteNonQuery(@"update Web_RMBCost set InMoney=@InMoney,InSuccess=@InSuccess, PaySuccess=@PaySuccess,UpdateFlag=@UpdateFlag where OrderID=@OrderID", rmbcost_lpar.ToArray()); if (PurchaseType == "1") { //充值金币动作 SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); //金币日志 SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@Remark", "暴风雪充值,订单号:" + trade_no) }); //充值赠送金币 //SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { // SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), // SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) // }); //充值赠送金币日志 //SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) // values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { // SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), // SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), // SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), // SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), // SimonDB.CreDbPar("@Remark", "赠送金币,关联暴风雪订单号:" + trade_no) // }); } if (PurchaseType == "2") { //充值房卡动作 SimonDB.ExecuteNonQuery(@"update TUserInfo set RoomCard=RoomCard+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); string RecordNum = DateTime.Now.ToString("yyyyMMddHHmmssfff"); //房卡日志 SimonDB.ExecuteNonQuery(@"insert into FangkaRecord (UserID,RecordNum,CurrencyType,StartCount,Count,DeductType,DeductTime,Remark) values (@UserID,@RecordNum,1,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@RecordNum", RecordNum), SimonDB.CreDbPar("@StartMoney", UserDR["RoomCard"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@Remark", "暴风雪充值房卡,订单号:" + trade_no) }); } SimonUtils.RespW("success"); } }
protected void Page_Load(object sender, EventArgs e) { string merchant_id = Request.Params["merchant_id"]; string request_time = Request.Params["request_time"]; string pay_time = Request.Params["pay_time"]; string status = Request.Params["status"]; string order_amount = Request.Params["order_amount"]; string pay_amount = Request.Params["pay_amount"]; string out_trade_no = Request.Params["out_trade_no"]; if (out_trade_no == null) { out_trade_no = ""; } string trade_no = Request.Params["trade_no"]; string fees = Request.Params["fees"]; string pay_type = Request.Params["pay_type"]; string nonce_str = Request.Params["nonce_str"]; string sign = Request.Params["sign"]; string MD5Sign = SimonUtils.EnCodeMD5("fees=" + fees + "&" + "merchant_id=" + merchant_id + "&" + "nonce_str=" + nonce_str + "&" + "order_amount=" + order_amount + "&" + "out_trade_no=" + out_trade_no + "&" + "pay_amount=" + pay_amount + "&" + "pay_time=" + pay_time + "&" + "pay_type=" + pay_type + "&" + "request_time=" + request_time + "&" + "status=" + status + "&" + "trade_no=" + trade_no + s_key).ToUpper(); //记录日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 暴风雪 异步通知 返回日志-----------------------------------------------------------------------------------"); sb.Append("\r\n merchant_id=" + merchant_id); sb.Append("\r\n request_time=" + request_time); sb.Append("\r\n pay_time=" + pay_time); sb.Append("\r\n status=" + status); sb.Append("\r\n order_amount=" + order_amount); sb.Append("\r\n pay_amount=" + pay_amount); sb.Append("\r\n out_trade_no=" + out_trade_no); sb.Append("\r\n trade_no=" + trade_no); sb.Append("\r\n fees=" + fees); sb.Append("\r\n pay_type=" + pay_type); sb.Append("\r\n nonce_str=" + nonce_str); sb.Append("\r\n sign=" + sign); sb.Append("\r\n MD5Sign=" + MD5Sign); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_paywap_error_" + DateTime.Now.ToString("yyyyMMdd")); if (MD5Sign.Equals(sign, StringComparison.OrdinalIgnoreCase) && status == "success") { //交易成功 DataTable RMBCostDT = SimonDB.DataTable(@"select * from Web_RMBCost where OrderID=@OrderID", new DbParameter[] { SimonDB.CreDbPar("@OrderID", out_trade_no) }); if (RMBCostDT.Rows.Count <= 0) { Response.Write("订单不存在"); return; } DataRow RMBCostDR = RMBCostDT.Rows[0]; if (RMBCostDR["UpdateFlag"].ToString() == "1") { Response.Write("订单已处理"); return; } if (Convert.ToInt32(decimal.Parse(RMBCostDR["PayMoney"].ToString())) != Convert.ToInt32(decimal.Parse(order_amount))) { Response.Write("充值金额不符"); return; } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", RMBCostDR["Users_ids"]) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { Response.Write("用户不存在"); return; } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", RMBCostDR["PayMoney"].ToString()) }); if (RechargeRateDT.Rows.Count <= 0) { Response.Write("此充值金额的金币兑换率不存在"); return; } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //更新订单 List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", out_trade_no)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", Convert.ToInt32(decimal.Parse(order_amount)))); rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", true)); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "1")); //更新状态 SimonDB.ExecuteNonQuery(@"update Web_RMBCost set InMoney=@InMoney,InSuccess=@InSuccess, PaySuccess=@PaySuccess,UpdateFlag=@UpdateFlag where OrderID=@OrderID", rmbcost_lpar.ToArray()); //充值动作 SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); //金币日志 SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RechargeGold"].ToString()), SimonDB.CreDbPar("@Remark", "暴风雪充值,订单号:" + order_amount) }); //充值赠送金币 SimonDB.ExecuteNonQuery(@"update TUserInfo set WalletMoney=WalletMoney+@ChangeMoney where UserID=@UserID", new DbParameter[] { SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()) }); //充值赠送金币日志 SimonDB.ExecuteNonQuery(@"insert into Web_MoneyChangeLog (UserID,UserName,StartMoney,ChangeMoney,ChangeType,DateTime,Remark) values (@UserID,@UserName,@StartMoney,@ChangeMoney,2,getdate(),@Remark)", new DbParameter[] { SimonDB.CreDbPar("@UserID", UserDR["UserID"].ToString()), SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString()), SimonDB.CreDbPar("@StartMoney", UserDR["WalletMoney"].ToString()), SimonDB.CreDbPar("@ChangeMoney", RechargeRateDR["RegiveGold"].ToString()), SimonDB.CreDbPar("@Remark", "充值赠送金币,关联暴风雪订单号:" + trade_no) }); SimonUtils.RespW("支付成功"); } }
protected void Page_Load(object sender, EventArgs e) { string pay_result = Request.Params["pay_result"]; string transaction_id = Request.Params["transaction_id"]; string bargainor_id = Request.Params["bargainor_id"]; string sp_billno = Request.Params["sp_billno"]; string pay_info = Request.Params["pay_info"]; string total_fee = Request.Params["total_fee"]; string attach = Request.Params["attach"]; string zidy_code = Request.Params["zidy_code"]; string sign = Request.Params["sign"]; if (string.IsNullOrWhiteSpace(pay_result)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(transaction_id)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(bargainor_id)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(sp_billno)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(pay_info)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(total_fee)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(attach)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(zidy_code)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(sign)) { SimonUtils.RespWNC("fail"); } string verifysign = "pay_result=" + pay_result + "&bargainor_id=" + CurrSite.Pay15173_bargainor_id + "&sp_billno=" + sp_billno + "&total_fee=" + total_fee + "&attach=" + attach + "&key=" + CurrSite.Pay15173_key; verifysign = SimonUtils.EnCodeMD5(verifysign); if (pay_result == "0" && sign == verifysign) { //WebPayBll biz = new WebPayBll(); //var IsHaveUpdate = biz.GetPaySuccess(sp_billno); //if (IsHaveUpdate) //{ // //已支付成功,不更新订单 // SimonUtils.RespWNC("OK"); //} //else //{ // var total = Convert.ToDecimal(total_fee); // var upResult = biz.UpdatePayOrder(Convert.ToInt32(total), sp_billno); // SimonUtils.RespWNC("OK"); //} } else { //写错误日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 错误日志 回调动作-----------------------------------------------------------------------------------"); sb.Append("\r\n pay_result=" + pay_result); sb.Append("\r\n transaction_id=" + transaction_id); sb.Append("\r\n bargainor_id=" + bargainor_id); sb.Append("\r\n sp_billno=" + sp_billno); sb.Append("\r\n pay_info=" + pay_info); sb.Append("\r\n total_fee=" + total_fee); sb.Append("\r\n attach=" + attach); sb.Append("\r\n zidy_code=" + zidy_code); sb.Append("\r\n sign=" + sign); sb.Append("\r\n verifysign=" + verifysign); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_15173_" + DateTime.Now.ToString("yyyyMMdd") + ".txt"); return; } }
/// <summary> /// 图片水印处理类 /// </summary> /// <param name="imgPath">服务器图片相对路径</param> /// <param name="filename">保存文件名</param> /// <param name="watermarkFilename">水印文件相对路径</param> /// <param name="watermarkStatus">图片水印位置 0=不使用 1=左上 2=中上 3=右上 4=左中 5=居中 6=右中 7=左下 8=中下 9=右下</param> /// <param name="quality">附加水印图片质量,0-100</param> /// <param name="watermarkTransparency">水印的透明度 1--10 10为不透明</param> public static void AddImageSignPic(string imgPath, string filename, string watermarkFilename, int watermarkStatus, int quality, int watermarkTransparency) { if (!File.Exists(SimonUtils.GetMapPath(imgPath))) { return; } byte[] _ImageBytes = File.ReadAllBytes(SimonUtils.GetMapPath(imgPath)); Image img = Image.FromStream(new System.IO.MemoryStream(_ImageBytes)); filename = SimonUtils.GetMapPath(filename); if (watermarkFilename.StartsWith("/") == false) { watermarkFilename = "/" + watermarkFilename; } watermarkFilename = SimonUtils.GetMapPath(watermarkFilename); if (!File.Exists(watermarkFilename)) { return; } Graphics g = Graphics.FromImage(img); //设置高质量插值法 //g.InterpolationMode = System.Drawing.Drawing2D.InterpolationMode.High; //设置高质量,低速度呈现平滑程度 //g.SmoothingMode = System.Drawing.Drawing2D.SmoothingMode.HighQuality; Image watermark = new Bitmap(watermarkFilename); if (watermark.Height >= img.Height || watermark.Width >= img.Width) { return; } ImageAttributes imageAttributes = new ImageAttributes(); ColorMap colorMap = new ColorMap(); colorMap.OldColor = Color.FromArgb(255, 0, 255, 0); colorMap.NewColor = Color.FromArgb(0, 0, 0, 0); ColorMap[] remapTable = { colorMap }; imageAttributes.SetRemapTable(remapTable, ColorAdjustType.Bitmap); float transparency = 0.5F; if (watermarkTransparency >= 1 && watermarkTransparency <= 10) { transparency = (watermarkTransparency / 10.0F); } float[][] colorMatrixElements = { new float[] { 1.0f, 0.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 1.0f, 0.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 1.0f, 0.0f, 0.0f }, new float[] { 0.0f, 0.0f, 0.0f, transparency, 0.0f }, new float[] { 0.0f, 0.0f, 0.0f, 0.0f, 1.0f } }; ColorMatrix colorMatrix = new ColorMatrix(colorMatrixElements); imageAttributes.SetColorMatrix(colorMatrix, ColorMatrixFlag.Default, ColorAdjustType.Bitmap); int xpos = 0; int ypos = 0; switch (watermarkStatus) { case 1: xpos = (int)(img.Width * (float).01); ypos = (int)(img.Height * (float).01); break; case 2: xpos = (int)((img.Width * (float).50) - (watermark.Width / 2)); ypos = (int)(img.Height * (float).01); break; case 3: xpos = (int)((img.Width * (float).99) - (watermark.Width)); ypos = (int)(img.Height * (float).01); break; case 4: xpos = (int)(img.Width * (float).01); ypos = (int)((img.Height * (float).50) - (watermark.Height / 2)); break; case 5: xpos = (int)((img.Width * (float).50) - (watermark.Width / 2)); ypos = (int)((img.Height * (float).50) - (watermark.Height / 2)); break; case 6: xpos = (int)((img.Width * (float).99) - (watermark.Width)); ypos = (int)((img.Height * (float).50) - (watermark.Height / 2)); break; case 7: xpos = (int)(img.Width * (float).01); ypos = (int)((img.Height * (float).99) - watermark.Height); break; case 8: xpos = (int)((img.Width * (float).50) - (watermark.Width / 2)); ypos = (int)((img.Height * (float).99) - watermark.Height); break; case 9: xpos = (int)((img.Width * (float).99) - (watermark.Width)); ypos = (int)((img.Height * (float).99) - watermark.Height); break; } g.DrawImage(watermark, new Rectangle(xpos, ypos, watermark.Width, watermark.Height), 0, 0, watermark.Width, watermark.Height, GraphicsUnit.Pixel, imageAttributes); ImageCodecInfo[] codecs = ImageCodecInfo.GetImageEncoders(); ImageCodecInfo ici = null; foreach (ImageCodecInfo codec in codecs) { if (codec.MimeType.IndexOf("jpeg") > -1) { ici = codec; } } EncoderParameters encoderParams = new EncoderParameters(); long[] qualityParam = new long[1]; if (quality < 0 || quality > 100) { quality = 80; } qualityParam[0] = quality; EncoderParameter encoderParam = new EncoderParameter(System.Drawing.Imaging.Encoder.Quality, qualityParam); encoderParams.Param[0] = encoderParam; if (ici != null) { img.Save(filename, ici, encoderParams); } else { img.Save(filename); } g.Dispose(); img.Dispose(); watermark.Dispose(); imageAttributes.Dispose(); }
protected void Page_Load(object sender, EventArgs e) { CheckSign(); string userid = SimonUtils.Qnum("userid"); //用户ID string rechargermb = SimonUtils.Qnum("rechargermb"); //充值金额(人民币) string payip = Request.Params["payip"]; //用户IP string paytype = Request.Params["paytype"]; //支付方式。微信固码8001013,支付宝当面付8001024 string purchasetype = Request.Params["purchasetype"]; //货币类型:1,金币;2房卡 if (userid.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户ID错误(数字类型)")); } if (rechargermb.Length < 1) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "充值金额(人民币)错误(数字类型)")); } if (string.IsNullOrWhiteSpace(payip)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户IP错误")); } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", userid) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户不存在")); } DataRow UserDR = UserDT.Rows[0]; //判断充值兑换率 DataTable RechargeRateDT = SimonDB.DataTable(@"select * from RechargeRate where RechargeRMB=@RechargeRMB", new DbParameter[] { SimonDB.CreDbPar("@RechargeRMB", rechargermb) }); if (RechargeRateDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "此充值金额的金币兑换率不存在")); } DataRow RechargeRateDR = RechargeRateDT.Rows[0]; //创建订单 string _orderdes = "充值金额:" + RechargeRateDR["RechargeRMB"].ToString() + " 兑换金币:" + RechargeRateDR["RechargeGold"].ToString() + " 赠送金币:" + RechargeRateDR["RegiveGold"].ToString(); string _ordernum = CurrSite.GenNewOrderNum(); while (((int)SimonDB.ExecuteScalar(@"select count(*) from Web_RMBCost where OrderID=@ordernum", new DbParameter[] { SimonDB.CreDbPar("@ordernum", _ordernum) })) > 0) { _ordernum = CurrSite.GenNewOrderNum(); } List <DbParameter> rmbcost_lpar = new List <DbParameter>(); rmbcost_lpar.Add(SimonDB.CreDbPar("@Users_ids", UserDR["UserID"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@TrueName", UserDR["NickName"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString())); //rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb == "0.01" ? "6" : rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayMoney", rechargermb)); rmbcost_lpar.Add(SimonDB.CreDbPar("@PayType", "162")); //暴风雪支付(http://pay.uukudear9.cn/gateway/dopay) 支付类型设置为162 rmbcost_lpar.Add(SimonDB.CreDbPar("@TypeInfo", "baofeng" + paytype)); rmbcost_lpar.Add(SimonDB.CreDbPar("@OrderID", _ordernum)); //订单号 rmbcost_lpar.Add(SimonDB.CreDbPar("@AddTime", DateTime.Now.ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@ExchangeRate", "1")); //充值兑换率(此字段暂时无效) rmbcost_lpar.Add(SimonDB.CreDbPar("@InMoney", "0")); //提交订单时写入0,确定充值成功后需更新该字段 rmbcost_lpar.Add(SimonDB.CreDbPar("@InSuccess", false)); //In状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@PaySuccess", false)); //Pay状态 rmbcost_lpar.Add(SimonDB.CreDbPar("@MoneyFront", UserDR["WalletMoney"].ToString())); rmbcost_lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "0")); //更新状态 0 未更新 1 已更新 rmbcost_lpar.Add(SimonDB.CreDbPar("@PurchaseType", purchasetype)); //充值金币1 充值房卡2 rmbcost_lpar.Add(SimonDB.CreDbPar("@PayIP", payip)); SimonDB.ExecuteNonQuery(@"insert into Web_RMBCost (Users_ids,TrueName,UserName,PayMoney,PayType,TypeInfo,OrderID,AddTime, ExchangeRate,InMoney,InSuccess,PaySuccess,MoneyFront,UpdateFlag,PurchaseType, PayIP) values (@Users_ids,@TrueName,@UserName,@PayMoney,@PayType,@TypeInfo,@OrderID,@AddTime, @ExchangeRate,@InMoney,@InSuccess,@PaySuccess,@MoneyFront,@UpdateFlag,@PurchaseType, @PayIP)", rmbcost_lpar.ToArray()); string str_out_trade_no = _ordernum; string str_amount = string.Format("{0:N2}", int.Parse(rechargermb)); string str_ordertime = DateTime.Now.ToString("yyyyMMddHHmmss"); string str_nonce_str = SimonUtils.GetRandomString(20, true, false, true, false, ""); string str_sign = SimonUtils.EnCodeMD5("amount=" + str_amount + "&" + "device_type=wap" + "&" + "merchant_id=" + str_merchant_id + "&" + "nonce_str=" + str_nonce_str + "&" + "notify_url=" + str_notify_url + "&" + "out_trade_no=" + str_out_trade_no + "&" + "pay_ip=" + payip + "&" + "pay_type=" + paytype + "&" + "request_time=" + str_ordertime + "&" + "return_url=" + str_return_url + "&" + "version=V2.0" + "&" + s_key).ToUpper(); //string str_sign = SimonUtils.EnCodeMD5("merchant_id=" + str_merchant_id + "&" + "version=V2.0" + "&" + "pay_type=" + paytype + "&" + "device_type=wap" + "&" + "request_time=" + str_ordertime + "&" + "nonce_str=" + str_nonce_str + "&" + "pay_ip=" + payip + "&" + "out_trade_no=" + str_out_trade_no + "&" + "amount=" + str_amount +"&"+ "notify_url=" + str_notify_url +"&" +"&" + "return_url=" + str_return_url + "&" + s_key).ToUpper(); //form1.Action = pay_url; //amount.Value = str_amount; //device_type.Value = "wap"; //merchant_id.Value = str_merchant_id; //nonce_str.Value = str_nonce_str; //notify_url.Value = str_notify_url; //out_trade_no.Value = str_out_trade_no; //pay_ip.Value = payip; //pay_type.Value = paytype; //request_time.Value = str_ordertime; //return_url.Value = str_return_url; //sign.Value = str_sign; //version.Value = "V2.0"; //ScriptManager.RegisterStartupScript(this.Page, GetType(), "post1", "Post();", true); //对接暴风雪支付 string parms = "amount=" + str_amount + "&device_type=wap" + "&merchant_id=" + str_merchant_id + "&nonce_str=" + str_nonce_str + "¬ify_url=" + str_notify_url + "&out_trade_no=" + str_out_trade_no + "&pay_ip=" + payip + "&pay_type=" + paytype + "&request_time=" + str_ordertime + "&return_url=" + str_return_url + "&version=V2.0"; string sParmsMd5 = GetMD5String(parms + s_key).ToUpper(); parms += "&sign=" + sParmsMd5; //parms = SimonUrl.UpdateParam(parms, "s_key", ""); //加密计算后,提交POST参数时置空参数key,更安全 StringBuilder str = new StringBuilder(); str.Append("{"); str.Append("amount:\"" + str_amount + "\","); str.Append("device_type:\"" + "wap" + "\","); str.Append("merchant_id:\"" + str_merchant_id + "\","); str.Append("nonce_str:\"" + str_nonce_str + "\","); str.Append("notify_url:\"" + str_notify_url + "\","); str.Append("out_trade_no:\"" + str_out_trade_no + "\","); str.Append("pay_ip:\"" + payip + "\","); str.Append("pay_type:\"" + paytype + "\","); str.Append("request_time:\"" + str_ordertime + "\","); str.Append("return_url:\"" + str_return_url + "\","); str.Append("version:\"" + "V2.0" + "\","); str.Append("sign:\"" + sParmsMd5 + "\""); str.Append("}"); string josnParms = str.ToString(); //JObject jo = (JObject)JsonConvert.DeserializeObject(jsonText); //JObject jo = JObject.Parse(retString); //JsonData jo = JsonMapper.ToObject(josnParms); string receive_str = PostRequest(pay_url, josnParms); //暴风雪要求使用post模式json格式 //SimonUtils.RespWNC(receive_str); JsonData receive_jd = null; try { receive_jd = JsonMapper.ToObject(receive_str); } catch { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "Json异常")); } JsonData out_jd = new JsonData(); if (receive_jd["status"].ToString().ToLower() == "success") { out_jd["code"] = "1"; out_jd["msg"] = "success"; out_jd["results"] = new JsonData(); out_jd["results"]["orderid"] = _ordernum; out_jd["results"]["payurl"] = receive_jd["pay_url"].ToString(); SimonUtils.RespWNC(out_jd.ToJson()); } else { //写错误日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 暴风雪 支付 错误日志-----------------------------------------------------------------------------------"); sb.Append("\r\n receive_str: " + receive_str); sb.Append("\r\n parms: " + parms); sb.Append("\r\n josnParms: " + josnParms); sb.Append("\r\n pay_url: " + pay_url); sb.Append("\r\n receive_jd: " + receive_jd.ToString()); //sb.Append("\r\n sign: " + receive_jd["data"]["sign"].ToString()); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_a_qlmjpay_error_" + DateTime.Now.ToString("yyyyMMdd")); SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "支付接口网关报错,支付失败")); } }
protected void Page_Load(object sender, EventArgs e) { string p4_zfstate = Request.Params["p4_zfstate"]; //支付返回结果 1 代表成功,其他为失败。 string p1_yingyongnum = Request.Params["p1_yingyongnum"]; string p2_ordernumber = Request.Params["p2_ordernumber"]; string p3_money = Request.Params["p3_money"]; string p5_orderid = Request.Params["p5_orderid"]; string p6_productcode = Request.Params["p6_productcode"]; string p8_charset = Request.Params["p8_charset"]; string p9_signtype = Request.Params["p9_signtype"]; string p10_sign = Request.Params["p10_sign"]; string p11_pdesc = Request.Params["p11_pdesc"]; string p12_remark = Request.Params["p12_remark"]; string p13_zfmoney = Request.Params["p13_zfmoney"]; if (string.IsNullOrWhiteSpace(p4_zfstate)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p1_yingyongnum)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p2_ordernumber)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p3_money)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p5_orderid)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p6_productcode)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p8_charset)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p9_signtype)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p10_sign)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p11_pdesc)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p12_remark)) { SimonUtils.RespWNC("fail"); } if (string.IsNullOrWhiteSpace(p13_zfmoney)) { SimonUtils.RespWNC("fail"); } string verifysign = "p1_yingyongnum=" + CurrSite.jft_yingyongnum + "&p2_ordernumber=" + p2_ordernumber + "&p3_money=" + p3_money + "&p4_zfstate=" + p4_zfstate + "&p5_orderid=" + p5_orderid + "&p6_productcode=" + p6_productcode + "&p7_bank_card_code=" + "&p8_charset=" + p8_charset + "&p9_signtype=" + p9_signtype + "&p11_pdesc=" + p11_pdesc + "&p13_zfmoney=" + p13_zfmoney + "&" + CurrSite.jft_compkey; verifysign = SimonUtils.EnCodeMD5(verifysign); if (p4_zfstate == "1" && p10_sign == verifysign) { //WebPayBll biz = new WebPayBll(); //var IsHaveUpdate = biz.GetPaySuccess(sp_billno); //if (IsHaveUpdate) //{ // 已支付成功,不更新订单 // SimonUtils.RespWNC("OK"); //} //else //{ // var total = Convert.ToDecimal(total_fee); // var upResult = biz.UpdatePayOrder(Convert.ToInt32(total), sp_billno); // SimonUtils.RespWNC("OK"); //} } else { //写错误日志 StringBuilder sb = new StringBuilder(); sb.Append("\r\n 错误日志 回调动作-----------------------------------------------------------------------------------"); sb.Append("\r\n p4_zfstate=" + p4_zfstate); sb.Append("\r\n p1_yingyongnum=" + p1_yingyongnum); sb.Append("\r\n p2_ordernumber=" + p2_ordernumber); sb.Append("\r\n p3_money=" + p3_money); sb.Append("\r\n p5_orderid=" + p5_orderid); sb.Append("\r\n p6_productcode=" + p6_productcode); sb.Append("\r\n p8_charset=" + p8_charset); sb.Append("\r\n p9_signtype=" + p9_signtype); sb.Append("\r\n p10_sign=" + p10_sign); sb.Append("\r\n p11_pdesc=" + p11_pdesc); sb.Append("\r\n p12_remark=" + p12_remark); sb.Append("\r\n p13_zfmoney=" + p13_zfmoney); sb.Append("\r\n verifysign=" + verifysign); sb.Append("\r\n--------------------------------------------------------------------------------------------------"); SimonLog.WriteLog(sb.ToString(), "/Log/", "log_jft_" + DateTime.Now.ToString("yyyyMMdd") + ".txt"); return; } }
/// <summary> /// 文件上传方法 /// </summary> /// <param name="postedFile">文件流</param> /// <param name="isThumbnail">是否生成缩略图</param> /// <param name="isWater">是否打水印</param> /// <returns>上传后文件信息</returns> public string fileSaveAs(HttpPostedFile postedFile, bool isThumbnail, bool isWater) { try { string fileExt = SimonUtils.GetFileExt(postedFile.FileName); //文件扩展名,不含“.” int fileSize = postedFile.ContentLength; //获得文件大小,以字节为单位 string fileName = postedFile.FileName.Substring(postedFile.FileName.LastIndexOf(@"\") + 1); //取得原文件名 string newFileName = SimonUtils.GetRamCode() + "." + fileExt; //随机生成新的文件名 string newThumbnailFileName = "thumb_" + newFileName; //随机生成缩略图文件名 string upLoadPath = GetUpLoadPath(); //上传目录相对路径 string fullUpLoadPath = SimonUtils.GetMapPath(upLoadPath); //上传目录的物理路径 string newFilePath = upLoadPath + newFileName; //上传后的路径 string newThumbnailPath = upLoadPath + newThumbnailFileName; //上传后的缩略图路径 //检查文件扩展名是否合法 if (!CheckFileExt(fileExt)) { return("不允许上传" + fileExt + "类型的文件"); } //检查文件大小是否合法 if (!CheckFileSize(fileExt, fileSize)) { return("文件超过限制的大小"); } //检查上传的物理路径是否存在,不存在则创建 SimonUtils.CreateDir(fullUpLoadPath); //保存文件 postedFile.SaveAs(fullUpLoadPath + newFileName); //如果是图片,检查图片是否超出最大尺寸,是则裁剪 if (IsImage(fileExt) && (Upload_PicMaxWidth > 0 || Upload_PicMaxHeight > 0)) { SimonThumbnail.MakeThumbnailImage(fullUpLoadPath + newFileName, fullUpLoadPath + newFileName, Upload_PicMaxWidth, Upload_PicMaxHeight); } //如果是图片,检查是否需要生成缩略图,是则生成 if (IsImage(fileExt) && isThumbnail && Upload_PicThumbnailWidth > 0 && Upload_PicThumbnailHeight > 0) { SimonThumbnail.MakeThumbnailImage(fullUpLoadPath + newFileName, fullUpLoadPath + newThumbnailFileName, Upload_PicThumbnailWidth, Upload_PicThumbnailHeight, "Cut"); } //如果是图片,检查是否需要打水印 if (IsWaterMark(fileExt) && isWater) { switch (Upload_PicWaterMarkType) { case 1: SimonWaterMark.AddImageSignText(newFilePath, newFilePath, Upload_PicWaterMark_Txt, 9, 63, "黑体", 16); break; case 2: SimonWaterMark.AddImageSignPic(newFilePath, newFilePath, Upload_PicWaterMark_PicUrl, 9, 63, 6); break; } } //处理完毕,返回JOSN格式的文件信息 //return "{\"status\": 1, \"msg\": \"上传文件成功!\", \"name\": \"" // + fileName + "\", \"path\": \"" + newFilePath + "\", \"thumb\": \"" // + newThumbnailPath + "\", \"size\": " + fileSize + ", \"ext\": \"" + fileExt + "\"}"; return("success|" + newFilePath + ""); } catch { return("上传过程中发生意外错误"); } }
/// <summary> /// 获取RouteData.Values值(字符串,中英文,不能带特殊符号) /// </summary> /// <param name="page">page对象,一般为this</param> /// <param name="str">参数</param> /// <returns></returns> public static string GetRdv(Page page, string str) { if (page.RouteData.Values[str] != null && page.RouteData.Values[str].ToString().Trim() != string.Empty && SimonUtils.IsEC(page.RouteData.Values[str].ToString().Trim())) { return(page.RouteData.Values[str].ToString().Trim()); } return(string.Empty); }
protected void Page_Load(object sender, EventArgs e) { CheckSign(); Random rd = new Random(); this.p1_yingyongnum.Value = System.Configuration.ConfigurationManager.AppSettings["jft_yingyongnum"]; //商户号; this.p2_ordernumber.Value = DateTime.Now.ToString("yyMMddHHmmss") + rd.Next(10000000, 99999999).ToString(); // this.p3_money.Value = Request.Params["p3_money"]; //? //this.p3_money.Value = "1"; this.p6_ordertime.Value = DateTime.Now.ToString("yyyyMMddHHmmss"); // this.p7_productcode.Value = Request.Params["p7_productcode"]; //? //this.p7_productcode.Value = "ZFB"; this.p8_sign.Value = ""; // this.p9_signtype.Value = "1"; //MD5 this.p10_bank_card_code.Value = Request.Form["p10_bank_card_code"]; //? this.p11_cardtype.Value = ""; this.p12_channel.Value = ""; this.p13_orderfailertime.Value = ""; this.p14_customname.Value = Request.Params["p14_customname"]; //? this.p15_customcontact.Value = ""; //this.p16_customip.Value = "192_168_0_253"; this.p16_customip.Value = Request.Params["p16_customip"]; this.p17_product.Value = "钻石"; this.p18_productcat.Value = ""; this.p19_productnum.Value = ""; this.p20_pdesc.Value = ""; this.p21_version.Value = ""; this.p22_sdkversion.Value = ""; this.p23_charset.Value = "UTF-8"; this.p24_remark.Value = ""; this.p25_terminal.Value = Request.Params["p25_terminal"]; //? this.p26_ext1.Value = "1.1"; this.p27_ext2.Value = ""; this.p28_ext3.Value = ""; this.p29_ext4.Value = ""; this.Card_Number.Value = Request.Form["Card_Number"]; this.Card_Password.Value = Request.Form["Card_Password"]; RequestBean requestBean = new RequestBean() { p1_yingyongnum = this.p1_yingyongnum.Value, p2_ordernumber = this.p2_ordernumber.Value, p3_money = this.p3_money.Value, p6_ordertime = this.p6_ordertime.Value, p7_productcode = this.p7_productcode.Value, p8_sign = "" }; this.p8_sign.Value = GetSign(requestBean); //平台创建订单 string player_id = p14_customname.Value; if (string.IsNullOrWhiteSpace(player_id)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "玩家账号错误")); } if (string.IsNullOrWhiteSpace(p25_terminal.Value)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "设备信息错误")); } if (string.IsNullOrWhiteSpace(p16_customip.Value)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "玩家IP错误")); } if (string.IsNullOrWhiteSpace(p7_productcode.Value)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "支付方式错误")); } if (string.IsNullOrWhiteSpace(p3_money.Value) || !SimonUtils.IsDecimal(p3_money.Value)) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "充值金额错误")); } //判断玩家账号是否存在 DbParameter[] userparms = new DbParameter[] { SimonDB.CreDbPar("@userid", player_id) }; DataTable UserDT = SimonDB.DataTable(@"select * from TUsers as a inner join TUserInfo as b on a.userid=b.userid where a.userid=@userid", userparms); if (UserDT.Rows.Count <= 0) { SimonUtils.RespWNC(CurrSite.GetErrJson("-1", "用户不存在")); } DataRow UserDR = UserDT.Rows[0]; //提交form表单到requestUrl //form1.Action = System.Configuration.ConfigurationManager.AppSettings["requestUrl"]; ScriptManager.RegisterStartupScript(this.Page, GetType(), "post1", "Post();", true); //创建订单 List <DbParameter> lpar = new List <DbParameter>(); lpar.Add(SimonDB.CreDbPar("@Users_ids", UserDR["UserID"].ToString())); lpar.Add(SimonDB.CreDbPar("@TrueName", UserDR["NickName"].ToString())); lpar.Add(SimonDB.CreDbPar("@UserName", UserDR["UserName"].ToString())); lpar.Add(SimonDB.CreDbPar("@PayMoney", p3_money.Value)); lpar.Add(SimonDB.CreDbPar("@PayType", "78")); //竣付通 的支付类型设置为78 lpar.Add(SimonDB.CreDbPar("@TypeInfo", "Jft_" + p7_productcode.Value)); lpar.Add(SimonDB.CreDbPar("@OrderID", p2_ordernumber.Value)); //订单号 lpar.Add(SimonDB.CreDbPar("@AddTime", DateTime.Now.ToString())); lpar.Add(SimonDB.CreDbPar("@ExchangeRate", "1")); //充值兑换率(此字段暂时无效) lpar.Add(SimonDB.CreDbPar("@InMoney", "0")); //提交订单时写入0,确定充值成功后需更新该字段 lpar.Add(SimonDB.CreDbPar("@InSuccess", false)); lpar.Add(SimonDB.CreDbPar("@PaySuccess", false)); lpar.Add(SimonDB.CreDbPar("@MoneyFront", UserDR["RoomCard"].ToString())); lpar.Add(SimonDB.CreDbPar("@UpdateFlag", "0")); //更新状态 lpar.Add(SimonDB.CreDbPar("@PurchaseType", "3")); //充值金币1 充值元宝2 充值房卡3 lpar.Add(SimonDB.CreDbPar("@PayIP", p16_customip.Value)); lpar.Add(SimonDB.CreDbPar("@ao_device", p25_terminal.Value)); SimonDB.ExecuteNonQuery(@"insert into Web_RMBCost (Users_ids,TrueName,UserName,PayMoney,PayType,TypeInfo,OrderID,AddTime, ExchangeRate,InMoney,InSuccess,PaySuccess,MoneyFront,UpdateFlag,PurchaseType, PayIP,ao_device,ao_device_id) values (@Users_ids,@TrueName,@UserName,@PayMoney,@PayType,@TypeInfo,@OrderID,@AddTime, @ExchangeRate,@InMoney,@InSuccess,@PaySuccess,@MoneyFront,@UpdateFlag,@PurchaseType, @PayIP,@ao_device,'')", lpar.ToArray()); }