/// <summary> /// /// </summary> /// <returns></returns> public ActionResult WechatPaidCallback() { var xml = string.Empty; using (var reader = new StreamReader(this.Request.InputStream)) { xml = reader.ReadToEnd(); } if (string.IsNullOrEmpty(xml)) { return(Content(WechatProvider.FailCallbackResult)); } LogManager.GetLogger().Info("==>WechatPaidCallback-0: {0}", xml); var paidWay = PayWays.Wechat; var paymentDetail = WechatProvider.ToDictionary(xml); if (null == paymentDetail || false == paymentDetail.ContainsKey("out_trade_no")) { return(Content(WechatProvider.FailCallbackResult)); } var tradeCode = paymentDetail["out_trade_no"]; var tradeJournal = ObjectIOCFactory.GetSingleton <PaymentEngine>().PaymentCompleted(tradeCode, paidWay, null, xml); var result = (null != tradeJournal) ? WechatProvider.SuccessCallbackResult : WechatProvider.FailCallbackResult; LogManager.GetLogger().Info("==>WechatPaidCallback-1: {0}", result); return(Content(result)); }
/// <summary> /// /// </summary> /// <returns></returns> public ActionResult WechatPaidRedirect() { var tradeCode = this.Request.QueryString.Get("out_trade_no"); if (string.IsNullOrEmpty(tradeCode)) { return(Content("failed")); } var wechatProvider = (WechatProvider)ObjectIOCFactory.GetSingleton <PaymentEngine>().PaymentProviders[PayWays.Wechat]; var paymentDetail = new Dictionary <string, string>(); paymentDetail["out_trade_no"] = tradeCode; var xml = WechatProvider.ToXmlParams(paymentDetail); var tradeJournal = ObjectIOCFactory.GetSingleton <PaymentEngine>().PaymentCompleted(tradeCode, PayWays.Wechat, null, xml); if (null != tradeJournal) { if (false == string.IsNullOrEmpty(tradeJournal.ReturnUrl)) { return(this.Redirect(string.Format("{0}{1}out_trade_no={2}", tradeJournal.ReturnUrl, tradeJournal.ReturnUrl.Contains("?") ? "&" : "?", tradeCode))); } else { return(Content("success")); } } return(Content("failed")); }