Example #1
0
        /// <summary>
        /// 是否关注
        /// </summary>
        /// <param name="dicPar"></param>
        public void isSubscribe(Dictionary <string, object> dicPar)
        {
            ///要检测的参数信息
            List <string> pra = new List <string>()
            {
                "GUID", "USER_ID"
            };

            //检测方法需要的参数
            if (!CheckActionParameters(dicPar, pra))
            {
                return;
            }

            var sql         = "select subscribe from WX_members_wx where openid='" + Tools.SafeSql(Convert.ToString(dicPar["USER_ID"])) + "'";
            var isSubscribe = Convert.ToString(SQLTool.ExecuteScalar(sql));

            if (isSubscribe == "0")
            {
                ToCustomerJson("0", "未关注");
            }
            else
            {
                ToCustomerJson("1", "已关注");
            }
        }
Example #2
0
        /// <summary>
        /// 密码验证
        /// </summary>
        /// <param name="dicPar"></param>
        public void ValidataPwd(Dictionary <string, object> dicPar)
        {
            ///要检测的参数信息
            List <string> pra = new List <string>()
            {
                "GUID", "USER_ID", "pwd"
            };

            //检测方法需要的参数
            if (!CheckActionParameters(dicPar, pra))
            {
                return;
            }
            sql = "select upwd from WX_members_wx where openid='" + dicPar["USER_ID"].ToString() + "'";
            var pwd = Convert.ToString(SQLTool.ExecuteScalar(sql));

            if (!string.IsNullOrEmpty(pwd))
            {
                if (pwd == Tools.DesEncrypt(Convert.ToString(dicPar["pwd"])))
                {
                    ToCustomerJson("0", "验证成功");
                }
                else
                {
                    ToCustomerJson("2", "密码错误");
                }
            }
            else
            {
                ToCustomerJson("1", "您尚未设置密码");
            }
        }
Example #3
0
        /// <summary>
        /// 给微信支付做准备,更新相应的数据表
        /// </summary>
        /// <param name="dicPar"></param>
        public void GetPayParams(Dictionary <string, object> dicPar)
        {
            var wxJsApiParam = string.Empty;
            ///要检测的参数信息 money:单位为分
            List <string> pra = new List <string>()
            {
                "GUID", "USER_ID", "money", "stocode", "orderno", "type", "zkje", "zkcode", "zkname", "yhje", "yhcode", "yhname", "strJson"
            };

            //检测方法需要的参数
            if (!CheckActionParameters(dicPar, pra))
            {
                return;
            }
            try
            {
                var openid    = dicPar["USER_ID"].ToString();
                var wxopenid  = Convert.ToString(SQL.SQLTool.ExecuteScalar("SELECT wxopenid FROM WX_members_wx WHERE openid='" + openid + "'"));
                var total_fee = Convert.ToDecimal(dicPar["money"].ToString());
                var stocode   = dicPar["stocode"].ToString();
                var orderno   = dicPar["orderno"].ToString();
                var strJson   = Convert.ToString(dicPar["strJson"]).Replace('\'', '"');

                var sresult = Dishes.GetSoldResult(stocode, strJson);
                if (!string.IsNullOrEmpty(sresult))
                {
                    ToCustomerJson("1", "菜品【" + sresult + "】已售罄");
                    return;
                }

                System.Web.UI.Page page = new System.Web.UI.Page();
                //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数
                JsApiPay jsApiPay = new JsApiPay(page);
                jsApiPay.openid    = wxopenid;
                jsApiPay.total_fee = Convert.ToInt32(total_fee * 100);  //*100
                //JSAPI支付预处理

                //查询该订单是否已有商户订单号
                var otn = "select out_trade_no from WX_orderdetails where orderno='" + orderno + "' AND openid='" + openid + "'";

                //查询是否已支付,如果已经支付过,返回错误信息给前端
                var existSql = "select trade_state from wx_pay where out_trade_no=(" + otn + ")";
                var result   = Convert.ToString(SQL.SQLTool.ExecuteScalar(existSql));

                if (result == "SUCCESS")
                {
                    wxJsApiParam = "paid";
                }
                else
                {
                    SetParam.SetParams(stocode);
                    WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
                    wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数

                    var zkmoney = dicPar["zkje"].ToString();
                    var yhmoney = dicPar["yhje"].ToString();

                    try
                    {
                        //此处更新订单及支付相关的表
                        var sql = "update WX_orderdetails set postJson='" + strJson + "',out_trade_no='" + jsApiPay.out_trade_no + "',discountprice='" + total_fee + "',privilegepre='" + zkmoney + "',singlemoney='" + yhmoney + "'  where orderno='" + orderno + "' AND openid='" + openid + "';UPDATE WX_choorderdetail SET conmoney='" + total_fee + "' WHERE detailcode='" + orderno + "';UPDATE dbo.choorderdetailBreakhistory SET yhqmoney='" + yhmoney + "',zkmoney='" + zkmoney + "',disratemoney='" + yhmoney + "',cardCode='" + dicPar["zkcode"].ToString() + "',cschemediscmoney='" + zkmoney + "',dispname='" + dicPar["zkname"].ToString() + "',disccardCode='" + dicPar["zkcode"].ToString() + "' where detailcodes='" + orderno + "';UPDATE dbo.chopayhistory SET couponmoney='" + yhmoney + "',accountcode='" + dicPar["zkcode"].ToString() + "',paymoney='" + total_fee + "',rmmoney='" + total_fee + "' where detailcode='" + orderno + "'";

                        var type = Convert.ToString(dicPar["type"]);
                        if (type == "3") //0后支付,1先支付,2打赏,3充值
                        {
                            var detailcode = Convert.ToString(SQLTool.ExecuteScalar("SELECT dbo.f_GetChoorderNo()"));
                            sql = "insert into WX_orderdetails(source,buscode,stocode,openid,orderno,sumprice,money,discountprice,status,payType,out_trade_no,cardCode,postJson) values ('wechat','88888888','" + stocode + "','" + openid + "','" + detailcode + "','" + total_fee + "','" + total_fee + "','" + total_fee + "','0','" + type + "','" + jsApiPay.out_trade_no + "','" + orderno + "','" + strJson + "')";
                        }

                        SQLTool.ExecuteNonQuery(sql);
                    }
                    catch (Exception ex)
                    {
                        ErrorLog.WriteErrorMessage(ex.ToString());
                    }
                }
            }
            catch (Exception ex)
            {
                wxJsApiParam = "";
                ErrorLog.WriteErrorMessage(ex.ToString());
            }

            Pagcontext.Response.Clear();
            Pagcontext.Response.Write(wxJsApiParam);
            Pagcontext.Response.End();
        }
Example #4
0
        /// <summary>
        /// 给微信支付做准备,更新相应的数据表
        /// </summary>
        /// <param name="dicPar"></param>
        public void GetPayParamsRecharge(Dictionary <string, object> dicPar)
        {
            var wxJsApiParam = string.Empty;
            ///要检测的参数信息 money:单位为分
            List <string> pra = new List <string>()
            {
                "GUID", "USER_ID", "money", "stocode", "strJson", "cardID", "memcode"
            };

            //检测方法需要的参数
            if (!CheckActionParameters(dicPar, pra))
            {
                return;
            }

            var openid = dicPar["USER_ID"].ToString();
            //var wxopenid = Convert.ToString(SQLTool.ExecuteScalar("SELECT wxopenid FROM WX_members_wx WHERE openid='" + openid + "'"));
            var total_fee = Convert.ToDecimal(dicPar["money"].ToString());
            var stocode   = dicPar["stocode"].ToString();
            var strJson   = Convert.ToString(dicPar["strJson"]).Replace('\'', '"');
            var cardId    = dicPar["cardID"].ToString();
            var memcode   = dicPar["memcode"].ToString();

            System.Web.UI.Page page = new System.Web.UI.Page();
            //若传递了相关参数,则调统一下单接口,获得后续相关接口的入口参数
            JsApiPay jsApiPay = new JsApiPay(page);

            jsApiPay.openid    = openid;
            jsApiPay.total_fee = Convert.ToInt32(total_fee * 100);  //*100
            //JSAPI支付预处理
            try
            {
                SetParam.SetParams(stocode);
                WxPayData unifiedOrderResult = jsApiPay.GetUnifiedOrderResult();
                wxJsApiParam = jsApiPay.GetJsApiParameters();//获取H5调起JS API参数
                try
                {
                    var detailcode = Convert.ToString(SQLTool.ExecuteScalar("declare @ordcode varchar(32); exec [dbo].[p_GetOrderCode] @ordcode output;select 'WX'+@ordcode;"));
                    var sql        = "insert into WX_orderdetails(source,buscode,stocode,openid,orderno,sumprice,money,discountprice,status,payType,out_trade_no,postJson) values ('wechat','88888888','" + stocode + "','" + openid + "','" + detailcode + "','" + total_fee + "','" + total_fee + "','" + total_fee + "','0','3','" + jsApiPay.out_trade_no + "','" + strJson + "');";
                    if (!string.IsNullOrEmpty(cardId))
                    {
                        sql += "update members set IDNO='" + Tools.SafeSql(cardId) + "' where ISNULL(IDNO,'')='' and memcode='" + memcode + "';";
                    }
                    SQLTool.ExecuteNonQuery(sql);
                }
                catch (Exception ex)
                {
                    ErrorLog.WriteErrorMessage(ex.ToString());
                }
            }
            catch (Exception ex)
            {
                //  wxJsApiParam = "";
                ErrorLog.WriteErrorMessage("ex:" + ex.ToString());
            }

            try
            {
                Pagcontext.Response.Clear();
                Pagcontext.Response.Write(wxJsApiParam);
            }
            catch (Exception)
            {
            }
            finally
            {
                Pagcontext.Response.End();
            }
        }
Example #5
0
        /// <summary>
        /// 改签退款
        /// </summary>
        /// <param name="dicPar"></param>
        public void Refund(Dictionary <string, object> dicPar)
        {
            List <string> pra = new List <string>()
            {
                "GUID", "refund_fee", "orderno"
            };

            //检测方法需要的参数
            if (!CheckActionParameters(dicPar, pra))
            {
                return;
            }

            var refund_fee = dicPar["refund_fee"].ToString(); //退款金额  如果空,则为退所有
            var orderno    = dicPar["orderno"].ToString();

            WxPayData data      = new WxPayData();
            var       sql       = "SELECT money,transaction_id,out_trade_no FROM dbo.Wx_Pay WHERE out_trade_no=(SELECT out_trade_no FROM dbo.WX_orderdetails WHERE orderno='" + orderno + "')";
            var       orderInfo = SQL.SQLTool.ExecuteDataTable(sql);

            if (orderInfo.Rows.Count > 0)                                     //如果数据库返回了数据才进行退款
            {
                var total_fee = Convert.ToString(orderInfo.Rows[0]["money"]); //
                if (refund_fee == "0")
                {
                    refund_fee = total_fee;
                }
                var transaction_id = Convert.ToString(orderInfo.Rows[0]["transaction_id"]);
                var out_trade_no   = Convert.ToString(orderInfo.Rows[0]["out_trade_no"]);

                if (!string.IsNullOrEmpty(transaction_id))//微信订单号存在的条件下,则已微信订单号为准
                {
                    data.SetValue("transaction_id", transaction_id);
                }
                else//微信订单号不存在,才根据商户订单号去退款
                {
                    data.SetValue("out_trade_no", out_trade_no);
                }
                // SetParam.SetParams(stocode);
                var out_refund_no = WxPayApi.GenerateOutTradeNo();  //退款单号
                data.SetValue("total_fee", int.Parse(total_fee));   //订单总金额
                data.SetValue("refund_fee", int.Parse(refund_fee)); //退款金额
                data.SetValue("out_refund_no", out_refund_no);      //随机生成商户退款单号
                data.SetValue("op_user_id", WxPayConfig.MCHID);     //操作员,默认为商户号
                WxPayData result  = WxPayApi.Refund(data);          //提交退款申请给API,接收返回数据
                var       pResult = result.ToPrintStr();

                var v           = pResult.Split('|');
                var strWhere    = string.Empty;
                var result_code = string.Empty;
                for (int i = 0; i < v.Count(); i++)
                {
                    if (v[i].Contains("refund_id"))
                    {
                        strWhere += "refund_id='" + Convert.ToString(v[i].Split('=')[1]) + "',";
                    }
                    else if (v[i].Contains("result_code"))
                    {
                        result_code = Convert.ToString(v[i].Split('=')[1]);
                        strWhere   += "result_code='" + result_code + "',";
                    }
                    else if (v[i].Contains("err_code_des"))
                    {
                        strWhere += "err_code_des='" + Convert.ToString(v[i].Split('=')[1]) + "',";
                    }
                }

                try
                {
                    sql = "update WX_orderdetails SET " + strWhere + " out_refund_no='" + out_refund_no + "',status='7' WHERE orderno='" + Tools.SafeSql(orderno) + "'";
                    SQLTool.ExecuteScalar(sql);
                    ToCustomerJson("0", result_code);
                }
                catch (Exception ex)
                {
                    ToCustomerJson("1", "退款失败");
                }
            }
            else
            {
                ToCustomerJson("2", "未查询到该订单号的付款信息");
            }
        }