/// <summary> /// 将查询结果实体加签 /// </summary> /// <param name="rsp"></param> public static RspObj BuildSignRspObj(RspObj rsp, string APPKEY) { Dictionary <String, String> param = new Dictionary <string, string>(); if (!String.IsNullOrEmpty(rsp.appid)) { param.Add("appid", rsp.appid); } if (!String.IsNullOrEmpty(rsp.cusid)) { param.Add("cusid", rsp.cusid); } if (!String.IsNullOrEmpty(rsp.trxcode)) { param.Add("trxcode", rsp.trxcode); } if (!String.IsNullOrEmpty(rsp.timestamp)) { param.Add("timestamp", rsp.timestamp); } if (!String.IsNullOrEmpty(rsp.randomstr)) { param.Add("randomstr", rsp.randomstr); } if (!String.IsNullOrEmpty(rsp.bizseq)) { param.Add("bizseq", rsp.bizseq); } if (!String.IsNullOrEmpty(rsp.retcode)) { param.Add("retcode", rsp.retcode); } if (!String.IsNullOrEmpty(rsp.retmsg)) { param.Add("retmsg", rsp.retmsg); } if (!String.IsNullOrEmpty(rsp.amount)) { param.Add("amount", rsp.amount); } if (!String.IsNullOrEmpty(rsp.trxreserve)) { param.Add("trxreserve", rsp.trxreserve); } param.Add("key", APPKEY); string blankStr = BuildParamStr(param); string sign = Framework.Security.Crypt.MD5(blankStr); rsp.sign = sign; return(rsp); }
public void GetOrderMsg() { string bizseq = ""; string cusid = ""; RspObj rsp = new RspObj(); for (int i = 0; i < Request.Form.Count; i++) { if (Request.Form.Keys[i] == "bizseq") { bizseq = Request.Form[i].ToString(); } if (Request.Form.Keys[i] == "cusid") { cusid = Request.Form[i].ToString(); } } var orderpaid = iOrderPaidService.Get(t => t.OrderNumber == bizseq); Preferences preferences = iPreferencesService.Get(t => t.POSBaoMerchant == cusid); if (orderpaid == null) { rsp.init("9999", "订单不存在", preferences.APPID, preferences.POSBaoMerchant); rsp.amount = ""; rsp.trxreserve = ""; rsp.bizseq = ""; rsp = BuildSignRspObj(rsp, preferences.POSBaoKey);//签名 Response.Write(JsonHelper.Serialize(rsp)); return; } //Preferences preferences = iPreferencesService.Get(t => t.MerchantID == orderpaid.MerchantID); this.vspExec = new VSPExec(preferences.POSBaoMerchant, preferences.POSBaoKey, preferences.APPID); //获取支付参数 string formString = HttpUtility.UrlDecode(Request.Form.ToString()); Dictionary <String, String> dicReqeust = formString.ToDictionary(true); if (vspExec.IsVerify(dicReqeust))//验签成功 { if (DateTime.Now > orderpaid.Project.Deadline) { rsp.init("9999", "订单已过期", preferences.APPID, preferences.POSBaoMerchant); rsp.amount = "";//由于nettonsoft.json会自动将空字段转化为null,因此手动赋值空字符串 rsp.trxreserve = ""; rsp.bizseq = ""; } else { rsp.init("0000", "查询成功", preferences.APPID, preferences.POSBaoMerchant); rsp.amount = ((int)(orderpaid.TransactionAmount * 100)).ToString(); // rsp.trxreserve = "05(业务类型)##订购人姓名#广州体育西(订购人地址)#15820335584(联系电话)#TN000001#01#440992198709257433(跟踪订单号)####"; rsp.trxreserve = "05##" + orderpaid.Member.Name + "#" + orderpaid.MemberMobile + "#" + orderpaid.OrderNumber + "#######"; //rsp.trxreserve = "05##" + "AAA" + "#" + orderpaid.MemberMobile + "#" + orderpaid.OrderNumber + "#######"; rsp.bizseq = orderpaid.OrderNumber;//业务流水号 } } else //验签失败 { rsp.init("9999", "验签失败", preferences.APPID, preferences.POSBaoMerchant); rsp.amount = "";//由于nettonsoft.json会自动将空字段转化为null,因此手动赋值空字符串 rsp.trxreserve = ""; rsp.bizseq = ""; } rsp = BuildSignRspObj(rsp, preferences.POSBaoKey);//签名 Response.Write(JsonHelper.Serialize(rsp)); }