//银联支付结果回调接口 public ActionResult CupComplete(Cup cup) { LogerHelper.DefaultInfo(Request.ToString()); if (Request.HttpMethod == "POST") { // 使用Dictionary保存参数 Dictionary <string, string> resData = new Dictionary <string, string>(); NameValueCollection coll = Request.Form; string[] requestItem = coll.AllKeys; for (int i = 0; i < requestItem.Length; i++) { resData.Add(requestItem[i], Request.Form[requestItem[i]]); } // 返回报文中不包含UPOG,表示Server端正确接收交易请求,则需要验证Server端返回报文的签名 if (SDKUtil.Validate(resData, Encoding.UTF8)) { cup.accNo = resData["accNo"]; cup.bindId = resData["bindId"]; cup.bizType = resData["bizType"]; cup.cupParams = coll.ToString(); cup.id = resData["id"]; cup.merId = resData["merId"]; cup.orderId = resData["orderId"]; cup.payCardIssueName = resData["payCardIssueName"]; cup.payCardNo = resData["payCardNo"]; cup.payCardType = resData["payCardType"]; cup.payType = resData["payType"]; cup.queryId = resData["queryId"]; cup.respCode = resData["respCode"]; cup.respMsg = resData["respMsg"]; cup.settleAmt = Convert.ToInt32(resData["settleAmt"]); cup.settleDate = resData["settleDate"]; cup.txnAmt = Convert.ToInt32(resData["txnAmt"]); cup.txnTime = resData["txnTime"]; cup.txnType = resData["txnType"]; string respcode = resData["respCode"]; //Response.Write("商户端验证返回报文签名成功\n"); //商户端根据返回报文内容处理自己的业务逻辑 ,DEMO此处只输出报文结果 //StringBuilder builder = new StringBuilder(); //builder.Append("<tr><td align=\"center\" colspan=\"2\"><b>商户端接收银联返回报文并按照表格形式输出结果</b></td></tr>"); //for (int i = 0; i < requestItem.Length; i++) //{ // builder.Append("<tr><td width=\"30%\" align=\"right\">" + requestItem[i] + "</td><td style='word-break:break-all'>" + Request.Form[requestItem[i]] + "</td></tr>"); //} //builder.Append("<tr><td width=\"30%\" align=\"right\">商户端验证银联返回报文结果</td><td>验证签名成功.</td></tr>"); //Response.Write(builder.ToString()); cup.cupParams = coll.ToString(); cup.id = Guid.NewGuid().ToString().Replace("-", ""); if (paymentbll.cupPayment(cup)) { LogerHelper.debug("银联支付成功"); return(Content("success")); } } else { LogerHelper.debug("银联支付失败"); // Response.Write("<tr><td width=\"30%\" align=\"right\">商户端验证银联返回报文结果</td><td>验证签名失败.</td></tr>"); } } return(Content("fail")); }