예제 #1
0
        /// <summary>
        /// 支付宝异步返回订单交易信息 post
        /// </summary>
        /// <param name="context">当前上下文</param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();
            zfbpara.iscallbacksuccess = false;
            SortedDictionary<string, string> sPara = GetRequestPost(context);
            if (sPara.Count > 0)
            {
                Com.Alipay.Notify aliNotify = new Com.Alipay.Notify();
                bool verifyResult = aliNotify.Verify(sPara, context.Request.Form["notify_id"], context.Request.Form["sign"]);
                if (verifyResult)//验证成功
                {
                    #region
                    //退款状态,付款成功 没有此参数
                    string refund_status = "refund_status".GetFormString();
                    //交易状态
                    string trade_status = "trade_status".GetFormString();

                    zfbpara.trade_no = context.Request.Form["trade_no"];
                    zfbpara.order_no = context.Request.Form["out_trade_no"];
                    zfbpara.total_fee = context.Request.Form["total_fee"];
                    zfbpara.ispaysuccess = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "") ? true : false;
                    zfbpara.isallreturn = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "REFUND_SUCCESS") ? true : false;
                    #endregion
                    zfbpara.iscallbacksuccess = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                    zfbpara.sendzfbcallbackmessage = "fail";
            }
            else
                zfbpara.sendzfbcallbackmessage = "无通知参数";

            return zfbpara;
        }
예제 #2
0
        /// <summary>
        /// 支付宝 返回 前端订单交易信息 get
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context, bool isTouch)
        {
            ZFBReturnPara_Model         zfbpara = new ZFBReturnPara_Model();
            Dictionary <string, string> sPara   = GetRequestInputStream(context);

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Com.Alipay.Touch.Notify aliNotify = new Com.Alipay.Touch.Notify();
                bool verifyResult = aliNotify.VerifyNotify(sPara, sPara["sign"]);

                if (verifyResult)//验证成功
                {
                    //XML解析notify_data数据
                    try
                    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.LoadXml(sPara["notify_data"]);
                        //商户订单号
                        string out_trade_no = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                        //支付宝交易号
                        string trade_no = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                        //交易状态
                        string trade_status = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;
                        //交易状态
                        string total_fee = xmlDoc.SelectSingleNode("/notify/total_fee").InnerText;

                        if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                        {
                            zfbpara.trade_no  = trade_no;
                            zfbpara.order_no  = out_trade_no;
                            zfbpara.total_fee = total_fee;

                            zfbpara.ispaysuccess           = (trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") ? true : false;
                            zfbpara.isallreturn            = false;
                            zfbpara.iscallbacksuccess      = true;
                            zfbpara.sendzfbcallbackmessage = "success";
                        }
                        else
                        {
                            zfbpara.sendzfbcallbackmessage = "fail";
                        }
                    }
                    catch (Exception exc)
                    {
                        zfbpara.sendzfbcallbackmessage = exc.Message;
                    }
                }
                else//验证失败
                {
                    zfbpara.sendzfbcallbackmessage = "fail";
                }
            }
            else
            {
                zfbpara.sendzfbcallbackmessage = "无通知参数";
            }

            return(zfbpara);
        }
예제 #3
0
        /// <summary>
        /// 支付宝移动端返回签名认证
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context, bool isTouch, bool isMobile)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();

            zfbpara.iscallbacksuccess = false;
            SortedDictionary <string, string> sPara = GetRequestPost(context);

            if (sPara.Count > 0)
            {
                bool verifyResult = Com.Alipay.Touch.RSAFromPkcs8.verify(
                    Com.Alipay.Touch.RSAFromPkcs8.GetResponseMysign(sPara,
                                                                    Com.Alipay.Touch.Config.rsa_publickey, "RSA", "UTF-8")
                    , sPara["sign"],
                    Com.Alipay.Touch.Config.rsa_publickey, "UTF-8");

                if (verifyResult)//验证成功
                {
                    #region
                    //退款状态,付款成功 没有此参数
                    string refund_status = sPara["refund_status"];
                    //交易状态
                    string trade_status = sPara["trade_status"];

                    zfbpara.trade_no  = sPara["trade_no"];
                    zfbpara.order_no  = sPara["out_trade_no"];
                    zfbpara.total_fee = sPara["total_fee"];

                    zfbpara.ispaysuccess = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "") ? true : false;
                    zfbpara.isallreturn  = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "REFUND_SUCCESS") ? true : false;
                    #endregion
                    zfbpara.iscallbacksuccess      = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                {
                    zfbpara.sendzfbcallbackmessage = "fail";
                }
            }
            else
            {
                zfbpara.sendzfbcallbackmessage = "无通知参数";
            }

            return(zfbpara);
        }
예제 #4
0
        /// <summary>
        /// 支付宝异步返回订单交易信息 post
        /// </summary>
        /// <param name="context">当前上下文</param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();

            zfbpara.iscallbacksuccess = false;
            SortedDictionary <string, string> sPara = GetRequestPost(context);

            if (sPara.Count > 0)
            {
                Com.Alipay.Notify aliNotify = new Com.Alipay.Notify();
                bool verifyResult           = aliNotify.Verify(sPara, context.Request.Form["notify_id"], context.Request.Form["sign"]);
                if (verifyResult)//验证成功
                {
                    #region
                    //退款状态,付款成功 没有此参数
                    string refund_status = "refund_status".GetFormString();
                    //交易状态
                    string trade_status = "trade_status".GetFormString();

                    zfbpara.trade_no     = context.Request.Form["trade_no"];
                    zfbpara.order_no     = context.Request.Form["out_trade_no"];
                    zfbpara.total_fee    = context.Request.Form["total_fee"];
                    zfbpara.ispaysuccess = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "") ? true : false;
                    zfbpara.isallreturn  = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "REFUND_SUCCESS") ? true : false;
                    #endregion
                    zfbpara.iscallbacksuccess      = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                {
                    zfbpara.sendzfbcallbackmessage = "fail";
                }
            }
            else
            {
                zfbpara.sendzfbcallbackmessage = "无通知参数";
            }

            return(zfbpara);
        }
예제 #5
0
        /// <summary>
        /// 支付宝 返回 前端订单交易信息 get
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBReturn(HttpContext context)
        {
            ZFBReturnPara_Model zfbpara             = new ZFBReturnPara_Model();
            SortedDictionary <string, string> sPara = GetRequestGet(context);

            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Com.Alipay.Notify aliNotify = new Com.Alipay.Notify();
                bool verifyResult           = aliNotify.Verify(sPara, context.Request.QueryString["notify_id"], context.Request.QueryString["sign"]);
                if (verifyResult)//验证成功
                {
                    #region
                    //交易状态
                    string trade_status = "trade_status".GetUrlString();

                    zfbpara.trade_no  = "trade_no".GetUrlString();
                    zfbpara.order_no  = "out_trade_no".GetUrlString();
                    zfbpara.total_fee = "total_fee".GetUrlString();

                    zfbpara.ispaysuccess = (trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") ? true : false;
                    zfbpara.isallreturn  = false;
                    #endregion
                    zfbpara.iscallbacksuccess      = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                {
                    zfbpara.sendzfbcallbackmessage = "fail";
                }
            }
            else
            {
                zfbpara.sendzfbcallbackmessage = "无通知参数";
            }

            return(zfbpara);
        }
예제 #6
0
        /// <summary>
        /// 支付宝移动端返回签名认证
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context,bool isTouch,bool isMobile)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();
            zfbpara.iscallbacksuccess = false;
            SortedDictionary<string, string> sPara = GetRequestPost(context);
            if (sPara.Count > 0)
            {
                bool verifyResult = Com.Alipay.Touch.RSAFromPkcs8.verify(
                    Com.Alipay.Touch.RSAFromPkcs8.GetResponseMysign(sPara, 
                    Com.Alipay.Touch.Config.rsa_publickey,"RSA","UTF-8")
                    ,sPara["sign"],
                    Com.Alipay.Touch.Config.rsa_publickey,"UTF-8"); 

                if (verifyResult)//验证成功
                {
                    #region
                    //退款状态,付款成功 没有此参数
                    string refund_status = sPara["refund_status"];
                    //交易状态
                    string trade_status = sPara["trade_status"];

                    zfbpara.trade_no = sPara["trade_no"];
                    zfbpara.order_no = sPara["out_trade_no"];
                    zfbpara.total_fee = sPara["total_fee"];

                    zfbpara.ispaysuccess = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "") ? true : false;
                    zfbpara.isallreturn = ((trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") && refund_status == "REFUND_SUCCESS") ? true : false;
                    #endregion
                    zfbpara.iscallbacksuccess = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                    zfbpara.sendzfbcallbackmessage = "fail";
            }
            else
                zfbpara.sendzfbcallbackmessage = "无通知参数";

            return zfbpara;
        }
예제 #7
0
        /// <summary>
        /// 支付宝 返回 前端订单交易信息 get
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBCallBack(HttpContext context, bool isTouch)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();
            Dictionary<string, string> sPara = GetRequestInputStream(context);
            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Com.Alipay.Touch.Notify aliNotify = new Com.Alipay.Touch.Notify();
                bool verifyResult = aliNotify.VerifyNotify(sPara, sPara["sign"]);

                if (verifyResult)//验证成功
                {
                    //XML解析notify_data数据
                    try
                    {
                        XmlDocument xmlDoc = new XmlDocument();
                        xmlDoc.LoadXml(sPara["notify_data"]);
                        //商户订单号
                        string out_trade_no = xmlDoc.SelectSingleNode("/notify/out_trade_no").InnerText;
                        //支付宝交易号
                        string trade_no = xmlDoc.SelectSingleNode("/notify/trade_no").InnerText;
                        //交易状态
                        string trade_status = xmlDoc.SelectSingleNode("/notify/trade_status").InnerText;
                        //交易状态
                        string total_fee = xmlDoc.SelectSingleNode("/notify/total_fee").InnerText;

                        if (trade_status == "TRADE_FINISHED" || trade_status == "TRADE_SUCCESS")
                        {
                            zfbpara.trade_no = trade_no;
                            zfbpara.order_no = out_trade_no;
                            zfbpara.total_fee = total_fee;

                            zfbpara.ispaysuccess = (trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") ? true : false;
                            zfbpara.isallreturn = false;
                            zfbpara.iscallbacksuccess = true;
                            zfbpara.sendzfbcallbackmessage = "success";
                        }
                        else
                        {
                            zfbpara.sendzfbcallbackmessage = "fail";
                        }

                    }
                    catch (Exception exc)
                    {
                        zfbpara.sendzfbcallbackmessage = exc.Message;
                    }

                }
                else//验证失败
                {
                    zfbpara.sendzfbcallbackmessage = "fail";
                }
            }
            else
            {
                zfbpara.sendzfbcallbackmessage = "无通知参数";
            }

            return zfbpara;

        }
예제 #8
0
        /// <summary>
        /// 支付宝 返回 前端订单交易信息 get
        /// </summary>
        /// <param name="context"></param>
        /// <returns></returns>
        public ZFBReturnPara_Model ZFBReturn(HttpContext context)
        {
            ZFBReturnPara_Model zfbpara = new ZFBReturnPara_Model();
            SortedDictionary<string, string> sPara = GetRequestGet(context);
            if (sPara.Count > 0)//判断是否有带返回参数
            {
                Com.Alipay.Notify aliNotify = new Com.Alipay.Notify();
                bool verifyResult = aliNotify.Verify(sPara, context.Request.QueryString["notify_id"], context.Request.QueryString["sign"]);
                if (verifyResult)//验证成功
                {
                    #region
                    //交易状态
                    string trade_status = "trade_status".GetUrlString();

                    zfbpara.trade_no = "trade_no".GetUrlString();
                    zfbpara.order_no = "out_trade_no".GetUrlString();
                    zfbpara.total_fee = "total_fee".GetUrlString();

                    zfbpara.ispaysuccess = (trade_status == "TRADE_SUCCESS" || trade_status == "TRADE_FINISHED") ? true : false;
                    zfbpara.isallreturn = false;
                    #endregion
                    zfbpara.iscallbacksuccess = true;
                    zfbpara.sendzfbcallbackmessage = "success";
                }
                else
                    zfbpara.sendzfbcallbackmessage = "fail";
            }
            else
                zfbpara.sendzfbcallbackmessage = "无通知参数";

            return zfbpara;

        }