ParseXML() public method

输出XML
public ParseXML ( ) : string
return string
        /// <summary>
        /// 微信回调
        /// </summary>
        /// <returns></returns>
        public ContentResult WexinPayNotify()
        {
            
            ResponseHandler resHandler = new ResponseHandler(null);

            string return_code = resHandler.GetParameter("return_code");
            string return_msg = resHandler.GetParameter("return_msg");

            string res = null;
            //TODO:这里需要验证签名

            ////验证请求是否从微信发过来(安全)
            
            logger.Info("微信回调"+resHandler.ParseXML());
            //if (resHandler.IsTenpaySign())
            //{
            //    res = "success";
            //    logger.Info(resHandler.ParseXML());
            //    //正确的订单处理
                
            //}
            //else
            //{
            //    res = "wrong";

            //    //错误的订单处理
            //}
            if (return_code.ToLower() == "SUCCESS".ToLower())
            {
                OrderService.UpdateOrderPay(new OrderPayModel() { PayId = resHandler.GetParameter("prepay_id"), Status = 1 });
            }

            res = "success";
            //订单处理

            string xml = string.Format(@"<xml><return_code><![CDATA[{0}]]></return_code><return_msg><![CDATA[{1}]]></return_msg></xml>",
                return_code, return_msg);
            logger.Info("微信返回值"+xml);
            return Content(xml, "text/xml");
        }
Beispiel #2
0
        /// <summary>
        /// 回调处理
        /// </summary>
        /// <param name="wxKey">微信支付授权KEY</param>
        /// <param name="success"></param>
        /// <param name="fail"></param>
        /// <returns></returns>
        public static string ProcessNotify(string wxKey, NotifySuccess success, NotifyFail fail)
        {
            NotyfyResult result = new NotyfyResult();
            ResponseHandler resHandler = new ResponseHandler(null);
            try
            {
                result.Content = resHandler.ParseXML();
                string openid = resHandler.GetParameter("openid");
                string out_trade_no = resHandler.GetParameter("out_trade_no");
                string transaction_id = resHandler.GetParameter("transaction_id");
                string total_fee = resHandler.GetParameter("total_fee");
                result = new NotyfyResult()
                {
                    Content = resHandler.ParseXML(),
                    out_trade_no = out_trade_no,
                    openid = openid,
                    transaction_id = transaction_id,
                    total_fee = total_fee,
                    appid = resHandler.GetParameter("appid"),
                    fee_type = resHandler.GetParameter("fee_type"),
                    is_subscribe = resHandler.GetParameter("is_subscribe"),
                    mch_id = resHandler.GetParameter("mch_id"),
                    result_code = resHandler.GetParameter("result_code"),
                    time_end = resHandler.GetParameter("time_end"),
                };
                resHandler.SetKey(wxKey);
                bool signResult = resHandler.IsTenpaySign();
                if (signResult)
                {
                    success(result);
                    return "success";
                }
                else
                {
                    fail(result);
                    return "error";
                }
            }
            catch (Exception ex)
            {
                result.Content = ex.Message;
                fail(result);
                return "error";
            }

        }