public ActionResult FeedBack() { //创建支付应答对象 ResponseHandler resHandler = new ResponseHandler(null); resHandler.Init(); resHandler.SetKey(TenPayInfo.Key, TenPayInfo.AppKey); string result = String.Empty; //判断签名 if (resHandler.IsWXsignfeedback()) { //回复服务器处理成功 result += "OK"; result += "OK:" + resHandler.GetDebugInfo(); } else { //sha1签名失败 result += "fail"; result += "fail:" + resHandler.GetDebugInfo(); } return(Content(result)); }
public ActionResult FeedBack() { //创建支付应答对象 ResponseHandler resHandler = new ResponseHandler(null); resHandler.Init(); resHandler.SetKey(TenPayInfo.Key, TenPayInfo.AppKey); //判断签名 if (resHandler.IsWXsignfeedback()) { //回复服务器处理成功 Response.Write("OK"); Response.Write("OK:" + resHandler.GetDebugInfo()); } else { //sha1签名失败 Response.Write("fail"); Response.Write("fail:" + resHandler.GetDebugInfo()); } return(null); }
protected void Page_Load(object sender, EventArgs e) { //创建支付应答对象 ResponseHandler resHandler = new ResponseHandler(Context); resHandler.Init(); resHandler.SetKey(TenPayInfo.Key, TenPayInfo.AppKey); //判断签名 if (resHandler.IsWXsignfeedback()) { //回复服务器处理成功 Response.Write("OK"); Response.Write("OK:" + resHandler.GetDebugInfo()); } else { //sha1签名失败 Response.Write("fail"); Response.Write("fail:" + resHandler.GetDebugInfo()); } Response.End(); }
public ActionResult PayNotifyUrl() { ResponseHandler resHandler = new ResponseHandler(null); resHandler.Init(); resHandler.SetKey(TenPayInfo.Key, TenPayInfo.AppKey); string message; //判断签名 if (resHandler.IsTenpaySign()) { if (resHandler.IsWXsign()) { //商户在收到后台通知后根据通知ID向财付通发起验证确认,采用后台系统调用交互模式 string notify_id = resHandler.GetParameter("notify_id"); //取结果参数做业务处理 string out_trade_no = resHandler.GetParameter("out_trade_no"); //财付通订单号 string transaction_id = resHandler.GetParameter("transaction_id"); //金额,以分为单位 string total_fee = resHandler.GetParameter("total_fee"); //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee string discount = resHandler.GetParameter("discount"); //支付结果 string trade_state = resHandler.GetParameter("trade_state"); string payMessage = null; //即时到账 if ("0".Equals(trade_state)) { //------------------------------ //处理业务开始 //------------------------------ //处理数据库逻辑 //注意交易单不要重复处理 //注意判断返回金额 //------------------------------ //处理业务完毕 //------------------------------ //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 payMessage = "success 后台通知成功"; } else { payMessage = "支付失败"; } ViewData["payMessage"] = payMessage; //回复服务器处理成功 message = "success"; } else {//SHA1签名失败 message = "SHA1签名失败" + resHandler.GetDebugInfo(); } } else {//md5签名失败 message = "md5签名失败" + resHandler.GetDebugInfo(); } ViewData["message"] = message; return(Content("Success")); }
protected void Page_Load(object sender, EventArgs e) { ResponseHandler resHandler = new ResponseHandler(Context); resHandler.Init(); resHandler.SetKey(WeixinPayUtil.Key, WeixinPayUtil.AppKey); //判断签名 if (resHandler.IsTenpaySign()) { if (resHandler.IsWXsign()) { //商户在收到后台通知后根据通知ID向财付通发起验证确认,采用后台系统调用交互模式 string notify_id = resHandler.GetParameter("notify_id"); //取结果参数做业务处理 string out_trade_no = resHandler.GetParameter("out_trade_no"); //财付通订单号 string transaction_id = resHandler.GetParameter("transaction_id"); //金额,以分为单位 string total_fee = resHandler.GetParameter("total_fee"); //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee string discount = resHandler.GetParameter("discount"); //支付结果 string trade_state = resHandler.GetParameter("trade_state"); //即时到账 if ("0".Equals(trade_state)) { //------------------------------ //处理业务开始 //------------------------------ //处理数据库逻辑 //注意交易单不要重复处理 //注意判断返回金额 //------------------------------ //处理业务完毕 //------------------------------ //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知 Response.Write("success 后台通知成功"); } else { Response.Write("支付失败"); } //回复服务器处理成功 Response.Write("success"); } else {//SHA1签名失败 Response.Write("fail -SHA1 failed"); Response.Write(resHandler.GetDebugInfo()); } } else {//md5签名失败 Response.Write("fail -md5 failed"); Response.Write(resHandler.GetDebugInfo()); } }
public ActionResult Index() { ResponseHandler resHandler = new ResponseHandler(null); resHandler.Init(); resHandler.SetKey(SiteConfig.MCHKEY); if (!resHandler.IsTenpaySign()) { return(Content("签名错误!")); } string return_code = resHandler.GetParameter("return_code"); string return_msg = resHandler.GetParameter("return_msg"); //即时到账 if (return_code == "SUCCESS") { string result_code = resHandler.GetParameter("result_code"); string err_code = resHandler.GetParameter("err_code"); //验证请求是否从微信发过来(安全) if (!resHandler.IsTenpaySign() || return_code.ToUpper() != "SUCCESS") //支付签名检验 { LogUtility.Order.ErrorFormat("订单支付失败:{0} / {1}", return_code, return_msg); return(Content("wrong"));//错误的订单处理 } else { //直到这里,才能认为交易真正成功了,可以进行数据库操作,但是别忘了返回规定格式的消息! var orderService = ObjectFactory.GetInstance <OrderService>(); string out_trade_no = resHandler.GetParameter("out_trade_no"); var order = orderService.GetObject(z => z.OrderNumber == out_trade_no); //判断订单是否被处理过 if (order.PayType == (int)Order_PayType.微信支付 && order.Status == (int)Order_Status.已支付) { LogUtility.Order.InfoFormat("订单{0}已被处理", order.OrderNumber); return(Content("SUCCESS")); } lock (PayLock) { //TODO:检查支付信息 var fullSystemConfigCache = ObjectFactory.GetInstance <IFullSystemConfigCache>(); var fullSystemConfig = fullSystemConfigCache.Data; //订单支付成功处理 orderService.OrderFinish(order); LogUtility.Order.InfoFormat("订单{0}支付成功,处理成功", order.OrderNumber); return(Content("SUCCESS")); } } } else { LogUtility.Order.ErrorFormat("订单支付失败:{0} / {1}", return_code, return_msg); return(Content(return_msg)); } }