Exemplo n.º 1
0
        public PaidHandleResult Return <T>(PayMointor <T> proc) where T : class
        {
            //商户号
            string partner = TenpayUtil.bargainor_id; // p.PayApiKey;
            //密钥
            string key = TenpayUtil.tenpay_key;       // p.PayApiSecret;


            //创建ResponseHandler实例
            ResponseHandler resHandler = new ResponseHandler(System.Web.HttpContext.Current);

            resHandler.setKey(key);

            //判断签名
            if (true || resHandler.isTenpaySign())
            {
                ///通知id
                string notify_id = resHandler.getParameter("notify_id");
                //商户订单号
                string out_trade_no = resHandler.getParameter("out_trade_no");
                //财付通订单号
                string transaction_id = resHandler.getParameter("transaction_id");
                //金额,以分为单位
                string total_fee = resHandler.getParameter("total_fee");
                //如果有使用折扣券,discount有值,total_fee+discount=原请求的total_fee
                string discount = resHandler.getParameter("discount");
                //支付结果
                string trade_state = resHandler.getParameter("trade_state");
                //交易模式,1即时到账,2中介担保
                string trade_mode = resHandler.getParameter("trade_mode");


                proc.Init(out_trade_no);


                if ("1".Equals(trade_mode))
                {
                    //即时到账
                    if ("0".Equals(trade_state))
                    {
                        //------------------------------
                        //即时到账处理业务开始
                        //------------------------------

                        //处理数据库逻辑
                        //注意交易单不要重复处理
                        //注意判断返回金额



                        //------------------------------
                        //即时到账处理业务完毕
                        //------------------------------


                        //SetLogMessage("即时到帐付款成功");
                        return(PaidHandleResult.Success);



                        //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知
                    }
                    else
                    {
                        //SetLogMessage("即时到账支付失败");
                        return(PaidHandleResult.Fail);
                    }
                }
                else if ("2".Equals(trade_mode))
                {    //中介担保
                    if ("0".Equals(trade_state))
                    {
                        //------------------------------
                        //中介担保处理业务开始
                        //------------------------------

                        //处理数据库逻辑
                        //注意交易单不要重复处理
                        //注意判断返回金额

                        //------------------------------
                        //中介担保处理业务完毕
                        //------------------------------


                        //Response.Write("中介担保付款成功");
                        //给财付通系统发送成功信息,财付通系统收到此结果后不再进行后续通知

                        //SetLogMessage("中介担保付款成功");
                        return(PaidHandleResult.Success);
                    }
                    else
                    {
                        PayUtil.SetLogMessage("trade_state=" + trade_state);
                        return(PaidHandleResult.Fail);
                    }
                }
            }
            else
            {
                //Response.Write("认证签名失败");
                PayUtil.SetLogMessage("认证签名失败");
                return(PaidHandleResult.Fail);
            }

            return(PaidHandleResult.Fail);
        }