Exemple #1
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // 校验返回数据包
                BuyCallbackResult result = Buy.VerifyCallback(Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("p1_MerId"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r0_Cmd"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r1_Code"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r2_TrxId"),
                                                              Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r3_Amt"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r4_Cur"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r5_Pid"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r6_Order"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r7_Uid"),
                                                              Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r8_MP"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("r9_BType"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("rp_PayDate"), Game.Web.Pay.YbBuy.FormatQueryString.GetQueryString("hmac"));

                if (string.IsNullOrEmpty(result.ErrMsg))
                {
                    if (result.R1_Code == "1")
                    {
                        if (result.R9_BType == "1")
                        {
                            // 写充值记录
                            ShareDetialInfo detailInfo = new ShareDetialInfo();
                            detailInfo.OrderID   = result.R6_Order;
                            detailInfo.IPAddress = Utility.UserIP;
                            detailInfo.PayAmount = decimal.Parse(result.R3_Amt);
                            Message msg = treasureFacade.FilliedOnline(detailInfo, 0);
                            // 下面的错误提示和成功提示要POST出去。这个判断力。用户访问不到,充值成功与否都得给用户提示。
                            // 卡密的页面也是如此。都要想办法给用户展示,最好这个页面影藏显示去。别给用户看。
                            // 你们测试的时候自己看下。
                            if (!msg.Success)
                            {
                                Response.Redirect("/WiteCard.html?OID=" + result.R6_Order);
                                Response.End();
                            }
                            else
                            {
                                Response.Redirect("/WiteCard.html?OID=" + result.R6_Order);
                            }
                            //  callback方式:浏览器重定向
                            // Response.Write("支付成功!<br>商品ID:" + result.R5_Pid + "<br>商户订单号:" + result.R6_Order + "<br>支付金额:" + result.R3_Amt + "<br>易宝支付交易流水号:" + result.R2_TrxId + "<BR>");
                        }
                        else if (result.R9_BType == "2")
                        {
                            // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            // 这里用户可以看见。想办法不要用户看见。但这句绝对不能取消
                            Response.Write("SUCCESS");
                            ShareDetialInfo detailInfo = new ShareDetialInfo();
                            detailInfo.OrderID   = result.R6_Order;
                            detailInfo.IPAddress = Utility.UserIP;
                            detailInfo.PayAmount = decimal.Parse(result.R3_Amt);
                            treasureFacade.FilliedOnline(detailInfo, 0);
                            Response.Redirect("/WiteCard.html?OID=" + result.R6_Order);
                        }
                    }
                    else
                    {
                        Response.Write("支付失败!请重试<a href='/'>点击返回</a>");
                    }
                }
                else
                {
                    Response.Write("交易签名无效!请重试<a href='/pay/payIndex.aspx'>点击返回</a>");
                }
            }
        }
Exemple #2
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // 校验返回数据包
            BuyCallbackResult result = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                          FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                          FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                if (result.R1_Code == "1")
                {
                    if (result.R9_BType == "1")
                    {
                        //  callback方式:浏览器重定向
                        Response.Write("支付成功!<br>商品ID:" + result.R5_Pid + "<br>商户订单号:" + result.R6_Order + "<br>支付金额:" + result.R3_Amt + "<br>易宝支付交易流水号:" + result.R2_TrxId + "<BR>");
                    }
                    else if (result.R9_BType == "2")
                    {
                        // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                        Response.Write("SUCCESS");
                    }
                }
                else
                {
                    Response.Write("支付失败!");
                }
            }
            else
            {
                Response.Write("交易签名无效!");
            }
        }
    }
Exemple #3
0
        /// <summary>
        /// 获取支付成功返回信息
        /// </summary>
        /// <param name="p1_MerId">商户编号</param>
        /// <param name="keyValue">商户密钥</param>
        /// <returns></returns>
        private BuyCallbackResult GetPayResult()
        {
            BuyCallbackResult payResult = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), keyValue, FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                             FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                             FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

            return(payResult);
        }
Exemple #4
0
        /// <summary>
        ///
        /// </summary>
        public void Return()
        {
            string opstate = "-1";
            int    status  = 4;

            BuyCallbackResult result = Buy.VerifyCallback(SuppAccount
                                                          , SuppKey
                                                          , FormatQueryString.GetQueryString("r0_Cmd")
                                                          , FormatQueryString.GetQueryString("r1_Code")
                                                          , FormatQueryString.GetQueryString("r2_TrxId")
                                                          , FormatQueryString.GetQueryString("r3_Amt")
                                                          , FormatQueryString.GetQueryString("r4_Cur")
                                                          , FormatQueryString.GetQueryString("r5_Pid")
                                                          , FormatQueryString.GetQueryString("r6_Order")
                                                          , FormatQueryString.GetQueryString("r7_Uid")
                                                          , FormatQueryString.GetQueryString("r8_MP")
                                                          , FormatQueryString.GetQueryString("r9_BType")
                                                          , FormatQueryString.GetQueryString("rp_PayDate")
                                                          , FormatQueryString.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                string msg = "支付失败";

                if (result.R1_Code == "1")
                {
                    msg     = "支付成功";
                    opstate = "0";
                    status  = 2;
                }
                decimal tranAmt = 0M;
                decimal.TryParse(result.R3_Amt, out tranAmt);

                if (result.R9_BType == "1")
                {
                    OrderBankUtils.SuppPageReturn(SuppId
                                                  , result.R6_Order
                                                  , result.R2_TrxId
                                                  , status
                                                  , opstate
                                                  , msg
                                                  , tranAmt, 0M);
                }
                else if ((result.R9_BType == "2") || (result.R9_BType == "3"))
                {
                    OrderBankUtils.SuppNotify(SuppId
                                              , result.R6_Order
                                              , result.R2_TrxId
                                              , status
                                              , opstate
                                              , msg
                                              , tranAmt, tranAmt
                                              , Succflag
                                              , Failflag);
                }
            }
        }
Exemple #5
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //p1_MerId = "10000432521";                                     // 商家ID
                //keyValue = "8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t";  // 商家密钥

                p1_MerId = StringConfig.YeepayMerID; // 商家ID
                keyValue = StringConfig.YeepayKey;   // 商家密钥

                // 校验返回数据包
                BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, Buy.GetQueryString("r0_Cmd"), Buy.GetQueryString("r1_Code"), Buy.GetQueryString("r2_TrxId"),
                                                              Buy.GetQueryString("r3_Amt"), Buy.GetQueryString("r4_Cur"), Buy.GetQueryString("r5_Pid"), Buy.GetQueryString("r6_Order"), Buy.GetQueryString("r7_Uid"),
                                                              Buy.GetQueryString("r8_MP"), Buy.GetQueryString("r9_BType"), Buy.GetQueryString("rp_PayDate"), Buy.GetQueryString("hmac"));
                PayOrderID = result.R6_Order;
                PayMoney   = result.R3_Amt;



                if (string.IsNullOrEmpty(result.ErrMsg))
                {
                    if (result.R1_Code == "1")
                    {
                        if (result.R9_BType == "1")
                        {
                            //  callback方式:浏览器重定向
                            UpdateDB(result);
                            PayResult = "恭喜您,充值成功!";
                            //Response.Write("支付成功!<br />充值金额:" + result.R5_Pid + "<br />支付金额:" + result.R3_Amt + "<br><a href='/Manage/' title='返回会员中心'>返回会员中心</a>");
                        }
                        else if (result.R9_BType == "2")
                        {
                            UpdateDB(result);
                            // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                        }
                        else if (result.R9_BType == "3")
                        {
                            UpdateDB(result);
                            // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                        }
                    }
                    else
                    {
                        PayResult = "充值失败!";
                    }
                }
                else
                {
                    PayResult = "交易签名无效!";
                }
            }
        }
Exemple #6
0
        private void UpdateDB(BuyCallbackResult result)
        {
            if (result == null)
            {
                return;
            }

            //订单流水号
            string Orderid = result.R6_Order;
            //支付金额
            string payAmount = result.R3_Amt;

            BLL.Member member = new BLL.Member();
            //金币充值
            if (result.R8_MP == "0")
            {
                if (!member.IsPaySuccess(Orderid)) //防止重复刷新页面而带来的问题
                {
                    //更新订单信息为完成状态

                    if (Orderid.ToLower().Contains("ka"))
                    {
                        member.Update3PayOrder2((int)(float.Parse(payAmount)), Orderid);
                    }
                    else
                    {
                        member.Update3PayOrder((int)(float.Parse(payAmount)), Orderid);
                    }
                }
            }
            else//积分充值
            {
                if (!member.IsPaySuccess2(Orderid)) //防止重复刷新页面而带来的问题
                {
                    //更新订单信息为完成状态
                    if (Orderid.ToLower().Contains("ka"))//点卡
                    {
                        member.UpdatePayPointOrder((int)(float.Parse(payAmount)), Orderid, 1);
                    }
                    else
                    {
                        member.UpdatePayPointOrder((int)(float.Parse(payAmount)), Orderid, 0);
                    }
                }
            }
        }
Exemple #7
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            p1_MerId = "10000432521";                                                  // 商家ID
            keyValue = "8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t"; // 商家密钥
            //Buy.NodeAuthorizationURL = @"https://www.yeepay.com/app-merchant-proxy/node";   // 设置请求地址

            // 校验返回数据包
            BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, Buy.GetQueryString("r0_Cmd"), Buy.GetQueryString("r1_Code"), Buy.GetQueryString("r2_TrxId"),
                                                          Buy.GetQueryString("r3_Amt"), Buy.GetQueryString("r4_Cur"), Buy.GetQueryString("r5_Pid"), Buy.GetQueryString("r6_Order"), Buy.GetQueryString("r7_Uid"),
                                                          Buy.GetQueryString("r8_MP"), Buy.GetQueryString("r9_BType"), Buy.GetQueryString("rp_PayDate"), Buy.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                if (result.R1_Code == "1")
                {
                    if (result.R9_BType == "1")
                    {
                        //  callback方式:浏览器重定向
                        Response.Write("支付成功!<br>商品ID:" + result.R5_Pid + "<br>商户订单号:" + result.R6_Order + "<br>支付金额:" + result.R3_Amt + "<br>易宝支付交易流水号:" + result.R2_TrxId + "<BR>");
                    }
                    else if (result.R9_BType == "2")
                    {
                        // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                        Response.Write("SUCCESS");
                    }
                    else if (result.R9_BType == "3")
                    {
                        // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                        Response.Write("SUCCESS");
                    }
                }
                else
                {
                    Response.Write("支付失败!");
                }
            }
            else
            {
                Response.Write("交易签名无效!");
            }
        }
    }
Exemple #8
0
        private void UpdateDB(BuyCallbackResult result)
        {
            if (result == null)
            {
                return;
            }

            //订单流水号
            string Orderid = result.R6_Order;
            //支付金额
            string payAmount = result.R3_Amt;

            BLL.Member member = new BLL.Member();
            if (!member.IsPaySuccess(Orderid)) //防止重复刷新页面而带来的问题
            {
                //更新订单信息为完成状态
                member.Update3PayOrder((int)(float.Parse(payAmount)), Orderid);
            }
        }
Exemple #9
0
        /// <summary>
        /// 获取支付成功返回信息
        /// </summary>
        /// <param name="actionData"></param>
        /// <param name="actionMsg"></param>
        /// <returns></returns>
        public WKT.Model.FinancePayDetailEntity GetPayResult(Action <String> actionMsg)
        {
            BuyCallbackResult result = GetPayResult();

            if (!string.IsNullOrEmpty(result.ErrMsg))
            {
                actionMsg("交易签名无效!");
                return(null);
            }
            if (result.R1_Code.Equals("1"))
            {
                actionMsg("支付成功!");
                WKT.Model.FinancePayDetailEntity model = new Model.FinancePayDetailEntity();
                //model.BankID = result.R6_Order;
                model.TransactionID = result.R2_TrxId;
                model.Currency      = result.R4_Cur;
                model.TotalFee      = Convert.ToDecimal(result.R3_Amt);
                model.IsInCome      = 1;
                model.PayStatus     = 1;
                model.UserAccount   = "";
                model.BankID        = FormatQueryString.GetQueryString("rb_BankId");
                model.BankNo        = FormatQueryString.GetQueryString("ro_BankOrderId");

                string[] arrMP = result.R8_MP.Split(',');
                model.PayType      = arrMP[0].TryParse <Byte>();
                model.ProductTable = arrMP[1];
                model.ProductID    = arrMP[2];
                model.ProductDes   = arrMP[3];
                model.NoticeID     = arrMP[4].TryParse <Int64>();
                return(model);
            }
            else
            {
                actionMsg("支付失败!");
                return(null);
            }
        }
Exemple #10
0
 protected void Page_Load(object sender, EventArgs e)
 {
     Buy.LogFileName = "c:/YeePay_HTML.txt";
     if (!base.IsPostBack)
     {
         p1_MerId = this.so["OnlinePay_YeePay_UserNumber"].Value.ToString();
         keyValue = this.so["OnlinePay_YeePay_MD5Key"].Value.ToString();
         Buy.NodeAuthorizationURL = Utility.GetUrl() + "/Home/Room/OnlinePay/YeePay/Receive.aspx";
         try
         {
             this.r0_Cmd     = base.Request["r0_Cmd"].ToString().Trim();
             this.r1_Code    = base.Request["r1_Code"].ToString().Trim();
             this.r2_TrxId   = base.Request["r2_TrxId"].ToString().Trim();
             this.r3_Amt     = base.Request["r3_Amt"].ToString().Trim();
             this.r4_Cur     = base.Request["r4_Cur"].ToString().Trim();
             this.r5_Pid     = base.Request["r5_Pid"].ToString().Trim();
             this.r6_Order   = base.Request["r6_Order"].ToString().Trim();
             this.r7_Uid     = base.Request["r7_Uid"].ToString().Trim();
             this.r8_MP      = base.Request["r8_MP"].ToString().Trim();
             this.r9_BType   = base.Request["r9_BType"].ToString().Trim();
             this.rp_PayDate = base.Request["rp_PayDate"].ToString().Trim();
             this.hmac       = base.Request["hmac"].ToString().Trim();
         }
         catch
         {
             PF.GoError("YeePay_Receive", 0x65, "支付参数获取错误", "Home_Room_OnlinePay_YeePay_Receive");
             return;
         }
         Users thisUser = new Users(base._Site.ID)[base._Site.ID, _Convert.StrToLong(Encrypt.UnEncryptString(PF.GetCallCert(), this.r8_MP), 0L)];
         if ((thisUser != null) && (thisUser.ID == base._User.ID))
         {
             BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, this.r0_Cmd, this.r1_Code, this.r2_TrxId, this.r3_Amt, this.r4_Cur, this.r5_Pid, this.r6_Order, this.r7_Uid, this.r8_MP, this.r9_BType, this.rp_PayDate, this.hmac);
             if (string.IsNullOrEmpty(result.ErrMsg))
             {
                 if (result.R1_Code != "1")
                 {
                     new Log("OnlinePay").Write("易宝支付失败!");
                 }
                 else
                 {
                     bool flag = this.WriteUserAccount(thisUser, this.r6_Order, _Convert.StrToDouble(result.R3_Amt, 0.0), "易宝支付:订单号:" + result.R6_Order + ",支付金额:" + result.R3_Amt);
                     if (result.R9_BType == "1")
                     {
                         if (flag)
                         {
                             base.Response.Redirect(Utility.GetUrl() + "/Home/Room/OnlinePay/OK.aspx");
                         }
                         else
                         {
                             base.Response.Redirect(Utility.GetUrl() + "/Home/Room/OnlinePay/Fail.aspx");
                         }
                     }
                     else if (result.R9_BType == "2")
                     {
                         base.Response.Write("SUCCESS");
                         if (flag)
                         {
                             base.Response.Redirect(Utility.GetUrl() + "/Home/Room/OnlinePay/OK.aspx");
                         }
                         else
                         {
                             base.Response.Redirect(Utility.GetUrl() + "/Home/Room/OnlinePay/Fail.aspx");
                         }
                     }
                 }
             }
             else
             {
                 new Log("OnlinePay").Write("交易签名无效" + result.ErrMsg);
             }
         }
         else
         {
             new Log("OnlinePay").Write("用户帐号信息不匹配!");
         }
     }
 }
Exemple #11
0
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            // 校验返回数据包
            Buy.logstr(FormatQueryString.GetQueryString("r6_Order"), Request.Url.Query, "");
            BuyCallbackResult result = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                          FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                          FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                //在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理
                if (result.R1_Code == "1")
                {
                    Response.Write("SUCCESS");
                    if (result.R9_BType == "1")
                    {
                        //  callback方式:浏览器重定向
                        Response.Write("支付成功!" +
                                       "<br>接口类型:" + result.R0_Cmd +
                                       "<br>返回码:" + result.R1_Code +
                                       //"<br>商户号:" + result.P1_MerId +
                                       "<br>交易流水号:" + result.R2_TrxId +
                                       "<br>商户订单号:" + result.R6_Order +

                                       "<br>交易金额:" + result.R3_Amt +
                                       "<br>交易币种:" + result.R4_Cur +
                                       "<br>订单完成时间:" + result.Rp_PayDate +
                                       "<br>回调方式:" + result.R9_BType +
                                       "<br>错误信息:" + result.ErrMsg + "<BR>");
                    }
                    else if (result.R9_BType == "2")
                    {
                        // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串

                        Response.Write("支付成功!" +
                                       "<br>接口类型:" + result.R0_Cmd +
                                       "<br>返回码:" + result.R1_Code +
                                       //"<br>商户号:" + result.P1_MerId +
                                       "<br>交易流水号:" + result.R2_TrxId +
                                       "<br>商户订单号:" + result.R6_Order +

                                       "<br>交易金额:" + result.R3_Amt +
                                       "<br>交易币种:" + result.R4_Cur +
                                       "<br>订单完成时间:" + result.Rp_PayDate +
                                       "<br>回调方式:" + result.R9_BType +
                                       "<br>错误信息:" + result.ErrMsg + "<BR>");
                    }
                }
                else
                {
                    Response.Write("支付失败!" +
                                   "<br>接口类型:" + result.R0_Cmd +
                                   "<br>返回码:" + result.R1_Code +
                                   //"<br>商户号:" + result.P1_MerId +
                                   "<br>交易流水号:" + result.R2_TrxId +
                                   "<br>商户订单号:" + result.R6_Order +

                                   "<br>交易金额:" + result.R3_Amt +
                                   "<br>交易币种:" + result.R4_Cur +
                                   "<br>订单完成时间:" + result.Rp_PayDate +
                                   "<br>回调方式:" + result.R9_BType +
                                   "<br>错误信息:" + result.ErrMsg + "<BR>");
                }
            }
            else
            {
                Response.Write("交易签名无效!");
            }
        }
    }
Exemple #12
0
    protected void Page_Load(object sender, EventArgs e)
    { //设置 log 文件地址
        Buy.LogFileName = "c:/YeePay_HTML.txt";
        if (!IsPostBack)
        {
            p1_MerId = so["OnlinePay_YeePay_UserNumber"].Value.ToString();                                       //"10000432521";                                     // 商家ID
            keyValue = so["OnlinePay_YeePay_MD5Key"].Value.ToString();                                           //"8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t";  // 商家密钥

            Buy.NodeAuthorizationURL = Shove._Web.Utility.GetUrl() + "/Home/Room/OnlinePay/YeePay/Receive.aspx"; //@"https://www.yeepay.com/app-merchant-proxy/node";   // 设置请求地址

            # region 获取易宝支付成功后的请求信息
            try
            {
                r0_Cmd     = Request["r0_Cmd"].ToString().Trim();
                r1_Code    = Request["r1_Code"].ToString().Trim();
                r2_TrxId   = Request["r2_TrxId"].ToString().Trim();
                r3_Amt     = Request["r3_Amt"].ToString().Trim();
                r4_Cur     = Request["r4_Cur"].ToString().Trim();
                r5_Pid     = Request["r5_Pid"].ToString().Trim();
                r6_Order   = Request["r6_Order"].ToString().Trim();
                r7_Uid     = Request["r7_Uid"].ToString().Trim();
                r8_MP      = Request["r8_MP"].ToString().Trim();
                r9_BType   = Request["r9_BType"].ToString().Trim();
                rp_PayDate = Request["rp_PayDate"].ToString().Trim();
                hmac       = Request["hmac"].ToString().Trim();
            }
            catch
            {
                PF.GoError("YeePay_Receive", 101, "支付参数获取错误", "Home_Room_OnlinePay_YeePay_Receive");
                return;
            }
            #endregion

            Users user = new Users(_Site.ID)[_Site.ID, Shove._Convert.StrToLong(Shove._Security.Encrypt.UnEncryptString(PF.GetCallCert(), r8_MP), 0)];

            //校验用户信息
            if (user == null || user.ID != _User.ID)
            {
                new Log("OnlinePay").Write("用户帐号信息不匹配!");
                return;
            }

            // 校验返回数据包
            BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, r0_Cmd, r1_Code, r2_TrxId, r3_Amt, r4_Cur, r5_Pid, r6_Order, r7_Uid, r8_MP, r9_BType, rp_PayDate, hmac);

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                if (result.R1_Code == "1")
                {
                    bool isPaySuccess = WriteUserAccount(user, r6_Order, Shove._Convert.StrToDouble(result.R3_Amt, 0), "易宝支付:订单号:" + result.R6_Order + ",支付金额:" + result.R3_Amt);
                    if (result.R9_BType == "1")
                    {
                        if (isPaySuccess)
                        {
                            Response.Redirect(Shove._Web.Utility.GetUrl() + "/Home/Room/OnlinePay/OK.aspx");
                        }
                        //else
                        //{
                        //    Response.Redirect(Shove._Web.Utility.GetUrl() + "/Home/Room/OnlinePay/Fail.aspx");
                        //}
                    }
                    else if (result.R9_BType == "2")
                    {
                        // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                        Response.Write("SUCCESS");
                    }
                }
                else
                {
                    new Log("OnlinePay").Write("易宝支付失败!");
                }
            }
            else
            {
                new Log("OnlinePay").Write("交易签名无效" + result.ErrMsg);
            }
        }
Exemple #13
0
        public static string YeePaySubmit()
        {
            string sRes = string.Empty;
            // 校验返回数据包
            BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, Buy.GetQueryString("r0_Cmd"), Buy.GetQueryString("r1_Code"), Buy.GetQueryString("r2_TrxId"),
                                                          Buy.GetQueryString("r3_Amt"), Buy.GetQueryString("r4_Cur"), Buy.GetQueryString("r5_Pid"), Buy.GetQueryString("r6_Order"), Buy.GetQueryString("r7_Uid"),
                                                          Buy.GetQueryString("r8_MP"), Buy.GetQueryString("r9_BType"), Buy.GetQueryString("rp_PayDate"), Buy.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))    //校验返回数据包成功
            {
                StringBuilder sbText = new StringBuilder();
                if (result.R1_Code == "1")      //返回充值成功的标识
                {
                    if (result.R9_BType == "1") //返回方式1:浏览器重定向方式
                    {
                        string  sTranID  = result.R6_Order;
                        decimal dPrice   = decimal.Parse(result.R3_Amt);
                        string  sAccount = result.R8_MP;
                        int     iResNum  = TransPBLL.PointSalesCommit(sTranID, sAccount, dPrice);
                        if (0 == iResNum)
                        {
                            sbText.Append("1|");
                            sbText.Append(result.R6_Order);
                            sRes = sbText.ToString();
                        }
                        else
                        {
                            if (6 == iResNum)
                            {
                                sbText.Append("1|");
                                sbText.Append(result.R6_Order);
                                sRes = sbText.ToString();
                            }
                            else
                            {
                                sbText.Append("2|");
                                sbText.Append(result.R6_Order);
                                sRes = sbText.ToString();
                            }
                        }
                    }
                    else if (result.R9_BType == "2")
                    {
                        int iRes = TransPBLL.PointSalesCommit(result.R6_Order, result.R8_MP, decimal.Parse(result.R3_Amt));
                        sRes = "4";
                    }
                    else if (result.R9_BType == "3")
                    {
                        sRes = "4";
                    }
                }
                else
                {
                    sbText.Append("0|");
                    sbText.Append(result.R1_Code);
                    sRes = sbText.ToString();
                }
            }
            else
            {
                sRes = "0|valerr";
            }
            return(sRes);
        }
Exemple #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // 校验返回数据包
                BuyCallbackResult result = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                              FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                              FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

                if (string.IsNullOrEmpty(result.ErrMsg))
                {
                    //写易宝记录
                    ReturnYPDetailInfo resultYB = new ReturnYPDetailInfo();
                    resultYB.P1_MerId       = FormatQueryString.GetQueryString("p1_MerId");
                    resultYB.R0_Cmd         = FormatQueryString.GetQueryString("r0_Cmd");
                    resultYB.R1_Code        = FormatQueryString.GetQueryString("r1_Code");
                    resultYB.R2_TrxId       = FormatQueryString.GetQueryString("r2_TrxId");
                    resultYB.R3_Amt         = Convert.ToDecimal(FormatQueryString.GetQueryString("r3_Amt"));
                    resultYB.R4_Cur         = FormatQueryString.GetQueryString("r4_Cur");
                    resultYB.R5_Pid         = FormatQueryString.GetQueryString("r5_Pid");
                    resultYB.R6_Order       = FormatQueryString.GetQueryString("r6_Order");
                    resultYB.R7_Uid         = FormatQueryString.GetQueryString("r7_Uid");
                    resultYB.R8_MP          = FormatQueryString.GetQueryString("r8_MP");
                    resultYB.R9_BType       = FormatQueryString.GetQueryString("r9_BType");
                    resultYB.Rb_BankId      = FormatQueryString.GetQueryString("rb_BankId");
                    resultYB.Ro_BankOrderId = FormatQueryString.GetQueryString("ro_BankOrderId");
                    resultYB.Rp_PayDate     = FormatQueryString.GetQueryString("rp_PayDate");
                    resultYB.Rq_CardNo      = FormatQueryString.GetQueryString("rq_CardNo");
                    resultYB.Ru_Trxtime     = FormatQueryString.GetQueryString("ru_Trxtime");
                    resultYB.Hmac           = FormatQueryString.GetQueryString("hmac");
                    treasureFacade.WriteReturnYBDetail(resultYB);

                    if (result.R1_Code == "1")
                    {
                        if (result.R9_BType == "1")
                        {
                            // 写充值记录
                            ShareDetialInfo detailInfo = new ShareDetialInfo();
                            detailInfo.OrderID   = resultYB.R6_Order;
                            detailInfo.IPAddress = Utility.UserIP;
                            detailInfo.PayAmount = resultYB.R3_Amt;
                            treasureFacade.FilliedOnline(detailInfo, 0);

                            //  callback方式:浏览器重定向
                            Response.Write("支付成功!<br>商品ID:" + result.R5_Pid + "<br>商户订单号:" + result.R6_Order + "<br>支付金额:" + result.R3_Amt + "<br>易宝支付交易流水号:" + result.R2_TrxId + "<BR>");
                        }
                        else if (result.R9_BType == "2")
                        {
                            // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                        }
                    }
                    else
                    {
                        Response.Write("支付失败!");
                    }
                }
                else
                {
                    Response.Write("交易签名无效!");
                }
            }
        }
Exemple #15
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                // 校验返回数据包
                Buy.logstr(FormatQueryString.GetQueryString("r6_Order"), Request.Url.Query, "");
                BuyCallbackResult result = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                              FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                              FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

                if (string.IsNullOrEmpty(result.ErrMsg))
                {
                    //在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理
                    if (result.R1_Code == "1")
                    {
                        if (result.R9_BType == "1")
                        {
                            Request.Cookies.Remove("ErrorMsg");

                            Response.Redirect("/showPayInfo.html");
                            //  callback方式:浏览器重定向
                            //  Response.Write("支付成功!" +
                            //     "<br>接口类型:" + result.R0_Cmd +
                            //      "<br>返回码:" + result.R1_Code +
                            //"<br>商户号:" + result.P1_MerId +
                            //      "<br>交易流水号:" + result.R2_TrxId +
                            //     "<br>商户订单号:" + result.R6_Order +

                            //       "<br>交易金额:" + result.R3_Amt +
                            //      "<br>交易币种:" + result.R4_Cur +
                            //       "<br>订单完成时间:" + result.Rp_PayDate +
                            //      "<br>回调方式:" + result.R9_BType +
                            //      "<br>错误信息:" + result.ErrMsg + "<BR>");
                        }
                        else if (result.R9_BType == "2")
                        {
                            // * 如果是服务器返回则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                            ShareDetialInfo detailInfo = new ShareDetialInfo();
                            detailInfo.OrderID   = result.R6_Order;
                            detailInfo.IPAddress = Utility.UserIP;
                            detailInfo.PayAmount = decimal.Parse(result.R3_Amt);
                            treasureFacade.FilliedOnline(detailInfo, 0);
                        }
                    }
                    else
                    {
                        HttpCookie UserCookie2 = new HttpCookie("ErrorMsg");
                        UserCookie2["error"] = HttpUtility.UrlEncode(result.ErrMsg);
                        UserCookie2.Expires  = DateTime.Now.AddMinutes(7);
                        Response.Cookies.Add(UserCookie2);
                        Response.Redirect("/showPayInfo.html");
                    }
                }
                else
                {
                    HttpCookie UserCookie2 = new HttpCookie("ErrorMsg");
                    UserCookie2["error"] = HttpUtility.UrlEncode("交易签名无效");
                    UserCookie2.Expires  = DateTime.Now.AddMinutes(7);
                    Response.Cookies.Add(UserCookie2);
                    Response.Redirect("/showPayInfo.html");
                }
            }
        }
Exemple #16
0
        public static string QuickYeePaySubmit()
        {
            string sRes = string.Empty;
            // 校验返回数据包
            BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, Buy.GetQueryString("r0_Cmd"), Buy.GetQueryString("r1_Code"), Buy.GetQueryString("r2_TrxId"),
                                                          Buy.GetQueryString("r3_Amt"), Buy.GetQueryString("r4_Cur"), Buy.GetQueryString("r5_Pid"), Buy.GetQueryString("r6_Order"), Buy.GetQueryString("r7_Uid"),
                                                          Buy.GetQueryString("r8_MP"), Buy.GetQueryString("r9_BType"), Buy.GetQueryString("rp_PayDate"), Buy.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))    //校验返回数据包成功
            {
                StringBuilder sbText = new StringBuilder();
                if (result.R1_Code == "1")  //返回充值成功的标识
                {
                    decimal dPrice   = decimal.Parse(result.R3_Amt);
                    int     iPrice   = Convert.ToInt32(dPrice);
                    string  sChannel = string.Empty;
                    switch (Buy.GetQueryString("rb_BankId"))
                    {
                    case "SZX-NET":
                        sChannel = "yp-szx";
                        break;

                    case "TELECOM-NET":
                        sChannel = "yp-dx";
                        break;

                    case "UNICOM-NET":
                        sChannel = "yp-lt";
                        break;

                    case "ZHENGTU-NET":
                        sChannel = "yp-zt";
                        break;

                    case "SNDACARD-NET":
                        sChannel = "yp-sd";
                        break;

                    case "JUNNET-NET":
                        sChannel = "yp-jcard";
                        break;

                    default:
                        sChannel = "";
                        break;
                    }
                    if (sChannel != "")
                    {
                        dPrice = dPrice * ChannelBLL.FeeScaleSel(sChannel);
                    }
                    if (result.R9_BType == "1")  //返回方式1:浏览器重定向方式
                    {
                        string sPTranID = result.R6_Order;
                        string sAccount = result.R8_MP.Split('|')[0];
                        string sGame    = result.R8_MP.Split('|')[1];
                        int    iResNum  = TransPBLL.PointSalesCommit(sPTranID, sAccount, iPrice);
                        string sGTranID = TranQuickBLL.TranQuickGTranIDSel(sPTranID);
                        if (0 == iResNum)
                        {
                            TranQuickBLL.TranQuickUpdateP(sPTranID);
                            string sGTRes = string.Empty;
                            if (sGame.IndexOf("sq") == -1)
                            {
                                sGTRes = PayAll.GameQuickPay(sGame, sAccount, dPrice, sGTranID);
                            }
                            else
                            {
                                string sRoleID = result.R8_MP.Split('|')[2];
                                sGTRes = PayAll.sqQuickPay(sGame, sAccount, dPrice, sGTranID, sRoleID);
                            }
                            if (sGTRes == "0")
                            {
                                TranQuickBLL.TranQuickUpdateG(sGTranID);
                                sbText.Append("1|");
                            }
                            else
                            {
                                //游戏冲值失败
                                sbText.Append("3|");
                            }
                            sbText.Append(sGTranID);
                            sbText.AppendFormat("|{0}", sGame);
                            sRes = sbText.ToString();
                        }
                        else
                        {
                            string sQuickState = TranQuickBLL.TransQuickStateSelByP(sPTranID);
                            if (sQuickState == "2")
                            {
                                //游戏充值成功
                                sbText.Append("1|");
                                sbText.Append(sGTranID);
                                sbText.AppendFormat("|{0}", sGame);
                                sRes = sbText.ToString();
                            }
                            else if (sQuickState == "1")
                            {
                                string sGTRes = string.Empty;
                                if (sGame.IndexOf("sq") == -1)
                                {
                                    sGTRes = PayAll.GameQuickPay(sGame, sAccount, dPrice, sGTranID);
                                }
                                else
                                {
                                    string sRoleID = result.R8_MP.Split('|')[2];
                                    sGTRes = PayAll.sqQuickPay(sGame, sAccount, dPrice, sGTranID, sRoleID);
                                }
                                if (sGTRes == "0") //游戏兑换成功
                                {
                                    TranQuickBLL.TranQuickUpdateG(sGTranID);
                                    //游戏充值成功
                                    sbText.Append("1|");
                                }
                                else
                                {
                                    //游戏冲值失败
                                    sbText.Append("3|");
                                }
                                sbText.Append(sGTranID);
                                sbText.AppendFormat("|{0}", sGame);
                                sRes = sbText.ToString();
                            }
                            else
                            {
                                sbText.Append("2|");
                                sbText.Append(sPTranID);
                                sRes = sbText.ToString();
                            }
                        }
                    }
                    else if (result.R9_BType == "2")
                    {
                        string sAccount = result.R8_MP.Split('|')[0];
                        string sGame    = result.R8_MP.Split('|')[1];
                        string sPTranID = result.R6_Order;
                        int    iRes     = TransPBLL.PointSalesCommit(sPTranID, sAccount, iPrice);
                        string sGTranID = TranQuickBLL.TranQuickGTranIDSel(sPTranID);
                        if (iRes == 0)
                        {
                            TranQuickBLL.TranQuickUpdateP(sPTranID);
                            string sGTRes = string.Empty;
                            if (sGame.IndexOf("sq") == -1)
                            {
                                sGTRes = PayAll.GameQuickPay(sGame, sAccount, dPrice, sGTranID);
                            }
                            else
                            {
                                string sRoleID = result.R8_MP.Split('|')[2];
                                sGTRes = PayAll.sqQuickPay(sGame, sAccount, dPrice, sGTranID, sRoleID);
                            }
                            if (sGTRes == "0")
                            {
                                TranQuickBLL.TranQuickUpdateG(sGTranID);
                            }
                        }
                        sRes = "4";
                    }
                    else if (result.R9_BType == "3")
                    {
                        sRes = "4";
                    }
                }
                else
                {
                    sbText.Append("0|");
                    sbText.Append(result.R1_Code);
                    sRes = sbText.ToString();
                }
            }
            else
            {
                sRes = "0|valerr";
            }
            return(sRes);
        }
Exemple #17
0
        protected void Page_Load(object sender, EventArgs e)
        {
            bool res = false;

            if (!IsPostBack)
            {
                //p1_MerId = "10000432521";                                     // 商家ID
                //keyValue = "8UPp0KE8sq73zVP370vko7C39403rtK1YwX40Td6irH216036H27Eb12792t";  // 商家密钥

                p1_MerId = StringConfig.YeepayMerID; // 商家ID
                keyValue = StringConfig.YeepayKey;   // 商家密钥

                // 校验返回数据包
                BuyCallbackResult result = Buy.VerifyCallback(p1_MerId, keyValue, Buy.GetQueryString("r0_Cmd"), Buy.GetQueryString("r1_Code"), Buy.GetQueryString("r2_TrxId"),
                                                              Buy.GetQueryString("r3_Amt"), Buy.GetQueryString("r4_Cur"), Buy.GetQueryString("r5_Pid"), Buy.GetQueryString("r6_Order"), Buy.GetQueryString("r7_Uid"),
                                                              Buy.GetQueryString("r8_MP"), Buy.GetQueryString("r9_BType"), Buy.GetQueryString("rp_PayDate"), Buy.GetQueryString("hmac"));

                if (string.IsNullOrEmpty(result.ErrMsg))
                {
                    if (result.R1_Code == "1")
                    {
                        if (result.R9_BType == "1")
                        {
                            //  callback方式:浏览器重定向
                            res = true;
                            UpdateDB(result);

                            Response.Write("支付成功!<br />充值金额:" + result.R5_Pid + "<br />支付金额:" + result.R3_Amt + "<br><a href='/Manage/' title='返回会员中心'>返回会员中心</a>");
                        }
                        else if (result.R9_BType == "2")
                        {
                            res = true;
                            UpdateDB(result);
                            // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                        }
                        else if (result.R9_BType == "3")
                        {
                            res = true;
                            UpdateDB(result);
                            // * 如果是服务器返回或者电话支付返回(result.R9_BType==2 or result.R9_BType==3)则需要回应一个特定字符串'SUCCESS',且在'SUCCESS'之前不可以有任何其他字符输出,保证首先输出的是'SUCCESS'字符串
                            Response.Write("SUCCESS");
                        }

                        #region [add] jeffery

                        //if (res)
                        //{
                        //    string r8mp = result.R8_MP;
                        //    int pos = r8mp.IndexOf("!@#");
                        //    string username = r8mp.Substring(0, pos);
                        //    int couponNum = Convert.ToInt32(
                        //        r8mp.Substring(pos + 1)
                        //        );

                        //    string strsql =
                        //        "select UserID from TUsers where UserName=@username";
                        //    DataTable dt =
                        //        SqlHelper.ExecuteDataset(CommandType.Text,
                        //        strsql,
                        //        new SqlParameter[]
                        //        {
                        //            new SqlParameter("@username",username)
                        //        }
                        //        ).Tables[0];
                        //    int userid = Convert.ToInt32(dt.Rows[0]["UserID"]);

                        //    strsql = "insert into TCoupon(UserID,CouponNum,RechargeType,CreateTime)values(@userid,@coupon,@rechargeType,@createTime)";
                        //    int num =
                        //    SqlHelper.ExecuteNonQuery
                        //                    (CommandType.Text,
                        //                    strsql,
                        //                        new SqlParameter[]
                        //                            {
                        //                                new SqlParameter("@userid",userid),
                        //                                new SqlParameter("@coupon",couponNum),
                        //                                new SqlParameter("@rechargeType",3),
                        //                                new SqlParameter("@createTime",DateTime.Now)
                        //                            });
                        //    if (num != 1)
                        //    {
                        //        Response.Write("<script>alert('充值成功,但赠送奖劵失败!')</script>");
                        //    }
                        //}
                        #endregion
                    }
                    else
                    {
                        Response.Write("支付失败!");
                    }
                }
                else
                {
                    Response.Write("交易签名无效!");
                }
            }
        }
Exemple #18
0
        private void UpdateDB(BuyCallbackResult result)
        {
            if (result == null)
                return;

            //������ˮ��
            string Orderid = result.R6_Order;
            //֧�����
            string payAmount = result.R3_Amt;

            BLL.Member member = new BLL.Member();
            if (!member.IsPaySuccess(Orderid)) //��ֹ�ظ�ˢ��ҳ�������������
            {
                //���¶�����ϢΪ���״̬
                member.Update3PayOrder((int)(float.Parse(payAmount)), Orderid);
            }
        }
Exemple #19
0
        public ActionResult CallBack()
        {
            Buy.logstr(FormatQueryString.GetQueryString("r6_Order"), Request.Url.Query, "");
            BuyCallbackResult result = Buy.VerifyCallback(FormatQueryString.GetQueryString("p1_MerId"), FormatQueryString.GetQueryString("r0_Cmd"), FormatQueryString.GetQueryString("r1_Code"), FormatQueryString.GetQueryString("r2_TrxId"),
                                                          FormatQueryString.GetQueryString("r3_Amt"), FormatQueryString.GetQueryString("r4_Cur"), FormatQueryString.GetQueryString("r5_Pid"), FormatQueryString.GetQueryString("r6_Order"), FormatQueryString.GetQueryString("r7_Uid"),
                                                          FormatQueryString.GetQueryString("r8_MP"), FormatQueryString.GetQueryString("r9_BType"), FormatQueryString.GetQueryString("rp_PayDate"), FormatQueryString.GetQueryString("hmac"));

            if (string.IsNullOrEmpty(result.ErrMsg))
            {
                //在接收到支付结果通知后,判断是否进行过业务逻辑处理,不要重复进行业务逻辑处理
                if (result.R1_Code == "1")
                {
                    order = om.GetOrder(result.R6_Order);
                    if (result.R9_BType == "1")
                    {
                        try
                        {
                            if (order.State == 0)
                            {
                                if (om.UpdateOrder(result.R6_Order))
                                {
                                    result_info = "您的订单:" + result.R6_Order + "已支付成功!";
                                    isok        = true;
                                    //gu = gum.GetGameUser(order.UserName);
                                    #region  返利券暂未开放
                                    //是否使用返利券
                                    //if (order.RebateId > 0)
                                    //{
                                    //    //返利券暂未开放
                                    //}
                                    //else
                                    //{
                                    //    if (order.ConvertId > 0)
                                    //    {
                                    //        // new DAL.convertnum().UpdateField(order.convertid, " state=1,usergettime='" + DateTime.Now.ToString() + "'");
                                    //    }
                                    //    else
                                    //    {
                                    //        string scale1 = new DAL.rebatetype().GetRange(order.PayMoney);   //获得返利比
                                    //        if (!string.IsNullOrEmpty(scale1))
                                    //        {
                                    //            //生成返利券
                                    //            Model.rebatenum rebatenum = new Model.rebatenum();
                                    //            Random ran = new Random();
                                    //            string code5 = ran.Next(10, 99).ToString();
                                    //            string no1 = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond;
                                    //            rebatenum.no = code5 + no1.Substring(2, no1.Length - 2);
                                    //            rebatenum.pwd = "000";
                                    //            rebatenum.num = int.Parse(scale1);
                                    //            rebatenum.userid = gu.Id;
                                    //            rebatenum.typeid = 0;
                                    //            new DAL.rebatenum().Add(rebatenum);
                                    //        }
                                    //    }
                                    //}
                                    #endregion
                                    //根据订单进行充值
                                    result_info = gm.PayManager(result.R6_Order);
                                }
                                else
                                {
                                    result_info = "您的订单:" + result.R6_Order + "更新订单状态失败!";
                                }
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        catch (Exception ex)
                        {
                            result_info = "出错啦!" + ex.Message;
                        }
                    }
                    else if (result.R9_BType == "2")
                    {
                        Response.Write("SUCCESS");
                        try
                        {
                            if (order.State == 0)
                            {
                                if (om.UpdateOrder(result.R6_Order))
                                {
                                    result_info = "您的订单:" + result.R6_Order + "已支付成功!";
                                    isok        = true;
                                    //gu = gum.GetGameUser(order.UserName);
                                    #region  返利券暂未开放
                                    //是否使用返利券
                                    //if (order.RebateId > 0)
                                    //{
                                    //    //返利券暂未开放
                                    //}
                                    //else
                                    //{
                                    //    if (order.ConvertId > 0)
                                    //    {
                                    //        // new DAL.convertnum().UpdateField(order.convertid, " state=1,usergettime='" + DateTime.Now.ToString() + "'");
                                    //    }
                                    //    else
                                    //    {
                                    //        string scale1 = new DAL.rebatetype().GetRange(order.PayMoney);   //获得返利比
                                    //        if (!string.IsNullOrEmpty(scale1))
                                    //        {
                                    //            //生成返利券
                                    //            Model.rebatenum rebatenum = new Model.rebatenum();
                                    //            Random ran = new Random();
                                    //            string code5 = ran.Next(10, 99).ToString();
                                    //            string no1 = DateTime.Now.ToString("yyyyMMddhhmmss") + DateTime.Now.Millisecond;
                                    //            rebatenum.no = code5 + no1.Substring(2, no1.Length - 2);
                                    //            rebatenum.pwd = "000";
                                    //            rebatenum.num = int.Parse(scale1);
                                    //            rebatenum.userid = gu.Id;
                                    //            rebatenum.typeid = 0;
                                    //            new DAL.rebatenum().Add(rebatenum);
                                    //        }
                                    //    }
                                    //}
                                    #endregion
                                    //根据订单进行充值
                                    result_info = gm.PayManager(result.R6_Order);
                                }
                                else
                                {
                                    result_info = "您的订单:" + result.R6_Order + "更新订单状态失败!";
                                }
                            }
                            else
                            {
                                return(RedirectToAction("Index", "Home"));
                            }
                        }
                        catch (Exception ex)
                        {
                            result_info = "出错啦!" + ex.Message;
                        }
                    }
                }
                else
                {
                    result_info = "支付失败!";
                }
            }
            else
            {
                result_info = "交易签名无效!";
            }
            ViewData["ImgUrl"] = "../Images/onebit_33.png";
            if (isok)
            {
                ViewData["ImgUrl"] = "../Images/onebit_34.png";
            }
            ViewData["Msg"] = result_info;
            return(View());
        }
Exemple #20
0
        private void UpdateDB(BuyCallbackResult result)
        {
            if (result == null)
                return;

            //订单流水号
            string Orderid = result.R6_Order;
            //支付金额
            string payAmount = result.R3_Amt;

            BLL.Member member = new BLL.Member();
            //金币充值
            if (result.R8_MP == "0")
            {
                if (!member.IsPaySuccess(Orderid)) //防止重复刷新页面而带来的问题
                {
                    //更新订单信息为完成状态

                    if (Orderid.ToLower().Contains("ka"))
                        member.Update3PayOrder2((int)(float.Parse(payAmount)), Orderid);
                    else
                        member.Update3PayOrder((int)(float.Parse(payAmount)), Orderid);

                }
            }
            else//积分充值
            {
                if (!member.IsPaySuccess2(Orderid)) //防止重复刷新页面而带来的问题
                {
                    //更新订单信息为完成状态
                    if (Orderid.ToLower().Contains("ka"))//点卡
                    {
                         member.UpdatePayPointOrder((int)(float.Parse(payAmount)), Orderid, 1);
                    }
                    else
                    {
                        member.UpdatePayPointOrder((int)(float.Parse(payAmount)), Orderid, 0);
                    }
                }
            }
        }