public void AlipayNotify() { AliPayReturnModel payResult = new AliPayReturnModel(); HttpContextBase context = (HttpContextBase)Request.Properties["MS_HttpContext"];//获取传统context HttpRequestBase request = context.Request;//定义传统request对象 var result = this._aliPay.VerfyNotify(request,out payResult); }
private bool Verify(HttpRequestBase request, NameValueCollection requestVal, out AliPayReturnModel model) { bool result = false; SortedDictionary<string, string> sortedDic = new SortedDictionary<string, string>(); foreach (var item in requestVal.AllKeys) { if (item.ToLower() != "sign" && item.ToLower() != "sign_type" && !string.IsNullOrEmpty(item)) sortedDic.Add(item, requestVal[item]); } string requestSign = requestVal["sign"]; string requestSigntype = requestVal["sign_type"]; string param = CreateURLParamString(sortedDic); EnumSignType signType = requestSigntype == "MD5" ? EnumSignType.MD5 : requestSigntype == "RSA" ? EnumSignType.RSA : EnumSignType.MD5; if (signType == EnumSignType.MD5) { string sign = BuildRequestsign(param, signType); if (requestSign.Equals(sign)) result = true; } else result = RSAFromPkcs8.verify(param, requestSign, AlipayConfig.ALIPay_RSA_ALI_PUBLICKEY, "utf-8"); string responseText = GetResponseTxt(requestVal["notify_id"]); bool resultVal = result && responseText == "true"; if (resultVal) { model = new AliPayReturnModel() { OutTradeNo = request.Form["out_trade_no"], TradeNo = request.Form["trade_no"], TradeStatus = request.Form["trade_status"] }; decimal total_fee; decimal.TryParse(request.Form["total_fee"], out total_fee); model.TotalFee = total_fee; } else model = null; return resultVal; }
public bool VerfyNotify(HttpRequestBase request, out AliPayReturnModel model) { var requestVal = request.Form; return Verify(request, requestVal, out model); }
public bool VerifyReturnURL(HttpRequestBase request, out AliPayReturnModel model) { var requestVal = request.QueryString; return Verify(request, requestVal, out model); }