コード例 #1
0
 protected void Page_Load(object sender, EventArgs e)
 {
     if (!IsPostBack)
     {
         try
         {
             companyID       = Request.QueryString["companyID"].ToString();
             money           = Request.QueryString["money"].ToString();
             productID       = Request.QueryString["productID"].ToString();
             mechineID       = Request.QueryString["mechineID"].ToString();
             dgOrderDetailID = Request.QueryString["dgOrderDetailID"].ToString();
             type            = Request.QueryString["type"].ToString();
             // money = "1";
             Util.Debuglog("companyID=" + companyID + ";money=" + money + ";productID=" + productID + ";mechineID=" + mechineID + ";dgOrderDetailID=" + dgOrderDetailID + ";type=" + type, "_聚合支付支付宝.txt");
             SybWxPayService             sybService = new SybWxPayService(companyID);
             string                      url        = "https://wx.bingoseller.com/pay/JHNotify.aspx";
             string                      data       = "";
             string                      sql        = "select *from asm_product where productID=" + productID;
             DataTable                   dt         = DbHelperSQL.Query(sql).Tables[0];
             Dictionary <String, String> rsp        = sybService.pay(long.Parse((double.Parse(money) * 100).ToString()), DateTime.Now.ToFileTime().ToString(), "A01", dt.Rows[0]["proName"].ToString(), "商品消费", "", "", url, "");
             data = OperUtil.SerializeDictionaryToJsonString(rsp);
             string json = (new JavaScriptSerializer()).Serialize(rsp);
             Util.Debuglog("json=" + json, "_聚合支付支付宝.txt");
             JObject jo = (JObject)JsonConvert.DeserializeObject(json);
             if (jo["retcode"].ToString() == "SUCCESS")
             {
                 string appid      = jo["appid"].ToString();
                 string cusid      = jo["cusid"].ToString();
                 string trxid      = jo["trxid"].ToString();
                 string reqsn      = jo["reqsn"].ToString();
                 string payinfoUrl = jo["payinfo"].ToString();
                 Util.Debuglog("payinfoUrl=" + payinfoUrl, "_聚合支付支付宝.txt");
                 string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,statu,reqsn,type,payType,trxamt,createTime,mechineID,productID,companyID,dgOrderDetailID,orderType)
                                     values('" + appid + "','" + cusid + "','" + trxid + "','0','" + reqsn + "',2,2," + double.Parse(money) * 100 + ",'" + DateTime.Now + "','" + mechineID + "','" + productID + "','" + companyID + "','" + dgOrderDetailID + "','" + type + "')";
                 Util.Debuglog("insertSQL=" + insertSQL, "_聚合支付支付宝.txt");
                 DbHelperSQL.ExecuteSql(insertSQL);
                 Response.Write("<script>window.location.href='" + payinfoUrl + "';</script>");
                 // //插入预订单信息
             }
         }
         catch (Exception ex)
         {
             Util.Debuglog("Exception=" + ex.Message, "_聚合支付支付宝.txt");
         }
     }
 }
コード例 #2
0
        protected void Page_Load(object sender, EventArgs e)
        {
            var userid    = Vincent._Request.GetString("userid");
            var user_name = Vincent._Request.GetString("user_name");

            string          openid     = "";
            SybWxPayService sybService = new SybWxPayService();

            Vincent._Weixin.WeixinPay weixinpay = new Vincent._Weixin.WeixinPay("sAppID", "sAppSecret", "sPartner", "sPartnerKey", "sReturnUrl");
            openid = Vincent._Weixin.WeixinUtility.GetOpendId();

            if (openid != "" && Vincent._Convert.ToInt(userid) > 0)
            {
                BLL.users   bll   = new BLL.users();
                Model.users model = bll.GetModel(Vincent._Convert.ToInt(userid));

                model.safe_question = openid;
                if (bll.Update(model))
                {
                    Vincent._Log.SaveMessage("alinpay.aspx----->openid写入数据库成功userid=" + userid + "  ------> openid=" + openid);
                }
            }

            Vincent._Log.SaveMessage("test.aspx获取openid=" + openid);

            long pro_price = Vincent._Convert.ToInt64(Vincent._WebConfig.GetAppSettingsString("pro_price"), 1);

            try
            {
                Random ran = new Random();
                var    num = ran.Next(1000);

                Dictionary <String, String> rsp = sybService.pay(pro_price, user_name + "_" + num, "W02", "VIP会员一年有效期", "门川家居", openid, "", "http://shop.mc-house.com/WeixinPay/return_url.aspx", "");
                printRsp(rsp);
            }
            catch (Exception ex)
            {
                Vincent._Log.SaveMessage("收银宝支付异常:" + ex.Message);
            }
        }
コード例 #3
0
ファイル: xfmx.aspx.cs プロジェクト: wwkkww1983/ice-grid
        public static Object ok(string billno, string pwd, string companyID)
        {
            //首先验证二级退款密码是否正确
            string    sql12 = "select * from asm_company where id=" + companyID;
            DataTable dd1   = DbHelperSQL.Query(sql12).Tables[0];

            if (dd1.Rows.Count > 0)
            {
                if (pwd == dd1.Rows[0]["pwd2"].ToString())
                {
                    //查询该笔订单信息
                    string    sql1 = "select * from asm_pay_info where trxid='" + billno + "'";
                    DataTable dt1  = DbHelperSQL.Query(sql1).Tables[0];
                    if (dt1.Rows.Count > 0)
                    {
                        //查询订单信息
                        string    sqlOrder = "select * from  asm_sellDetail where billno='" + billno + "'";
                        DataTable Dorder   = DbHelperSQL.Query(sqlOrder).Tables[0];
                        if (Dorder.Rows.Count <= 0)
                        {
                            return(new { result = 0, msg = "该笔订单查询失败" });
                        }
                        //判断出货状态如果是料道错误或者是交易序列号相同给退款 零售的怎么来怎么退 订购的退到钱包
                        if (!string.IsNullOrEmpty(Dorder.Rows[0]["code"].ToString()))
                        {
                            //订购的
                            if (Dorder.Rows[0]["bz"].ToString() == "料道错误" || Dorder.Rows[0]["bz"].ToString() == "交易序列号相同" || Dorder.Rows[0]["bz"].ToString() == "料道故障" || Dorder.Rows[0]["bz"].ToString() == "校验错误" || Dorder.Rows[0]["bz"].ToString() == "出货失败")
                            {
                                string    sql = "select * from asm_sellDetail where billno='" + billno + "'";
                                DataTable dd  = DbHelperSQL.Query(sql).Tables[0];
                                if (dd.Rows.Count > 0)
                                {
                                    //更新会员钱包 并插入资金变动记录
                                    string    update = "update asm_member set  AvailableMoney=AvailableMoney+" + dd.Rows[0]["totalMoney"].ToString() + " where id=" + dd.Rows[0]["memberID"].ToString();
                                    int       a      = DbHelperSQL.ExecuteSql(update);
                                    string    sqlm   = "select * from asm_member where id=" + dd.Rows[0]["memberID"].ToString();
                                    DataTable dt     = DbHelperSQL.Query(sqlm).Tables[0];
                                    if (a > 0)
                                    {
                                        string sqlu = "update asm_sellDetail set bz='退款成功' where billno='" + billno + "'";
                                        DbHelperSQL.ExecuteSql(sqlu);
                                        Util.insertNotice(dt.Rows[0]["id"].ToString(), "出货异常退款", "您于" + Dorder.Rows[0]["orderTime"].ToString() + "取货异常退还金额:" + dd.Rows[0]["totalMoney"].ToString() + ";请查收钱包");
                                        Util.moneyChange(dt.Rows[0]["id"].ToString(), dd.Rows[0]["totalMoney"].ToString(), dt.Rows[0]["AvailableMoney"].ToString(), "退款通知", "7", "", "取货异常退还金额:" + dd.Rows[0]["totalMoney"].ToString());
                                        return(new { result = 0, msg = "退款成功,成功到会员钱包中" });
                                    }
                                }
                            }
                        }
                        else
                        {
                            //零售的
                            if (Dorder.Rows[0]["bz"].ToString() == "料道错误" || Dorder.Rows[0]["bz"].ToString() == "交易序列号相同" || Dorder.Rows[0]["bz"].ToString() == "料道故障" || Dorder.Rows[0]["bz"].ToString() == "校验错误" || Dorder.Rows[0]["bz"].ToString() == "出货失败")
                            {
                                if (Dorder.Rows[0]["payType"].ToString() == "3")
                                {
                                    //退到钱包
                                    string    sql = "select * from asm_sellDetail where billno='" + billno + "'";
                                    DataTable dd  = DbHelperSQL.Query(sql).Tables[0];
                                    if (dd.Rows.Count > 0)
                                    {
                                        //更新会员钱包 并插入资金变动记录
                                        string    update = "update asm_member set  AvailableMoney=AvailableMoney+" + dd.Rows[0]["totalMoney"].ToString() + " where id=" + dd.Rows[0]["memberID"].ToString();
                                        int       a      = DbHelperSQL.ExecuteSql(update);
                                        string    sqlm   = "select * from asm_member where id=" + dd.Rows[0]["memberID"].ToString();
                                        DataTable dt     = DbHelperSQL.Query(sqlm).Tables[0];
                                        if (a > 0)
                                        {
                                            string update1 = "update asm_pay_info set statu=2,fintime='" + DateTime.Now.ToString("yyyyMMddHHmmss") + "' where trxid='" + billno + "'";
                                            DbHelperSQL.ExecuteSql(update1);
                                            string sqlu = "update asm_sellDetail set bz='退款成功' where billno='" + billno + "'";
                                            DbHelperSQL.ExecuteSql(sqlu);
                                            Util.insertNotice(dt.Rows[0]["id"].ToString(), "出货异常退款", "您于" + Dorder.Rows[0]["orderTime"].ToString() + "购买商品出货异常退还金额:" + dd.Rows[0]["totalMoney"].ToString() + ";请查收钱包");
                                            Util.moneyChange(dt.Rows[0]["id"].ToString(), dd.Rows[0]["totalMoney"].ToString(), dt.Rows[0]["AvailableMoney"].ToString(), "退款通知", "7", "", "取货异常退还金额:" + dd.Rows[0]["totalMoney"].ToString());
                                            return(new { result = 0, msg = "退款成功,成功到会员钱包中" });
                                        }
                                    }
                                }
                                else if (Dorder.Rows[0]["payType"].ToString() == "1" || Dorder.Rows[0]["payType"].ToString() == "2")
                                {
                                    //退到1微信或者2支付宝
                                    string    sql = "select * from asm_pay_info where trxid='" + billno + "'";
                                    DataTable dd  = DbHelperSQL.Query(sql).Tables[0];
                                    if (dd.Rows.Count > 0 && dd.Rows[0]["statu"].ToString() == "1")
                                    {
                                        SybWxPayService             sybService = new SybWxPayService(Dorder.Rows[0]["mechineID"].ToString());
                                        long                        fen        = long.Parse(dd.Rows[0]["trxamt"].ToString());
                                        Random                      rd         = new Random();
                                        int                         rand       = rd.Next(10000, 99999);
                                        string                      reqsn      = ConvertDateTimeToInt(DateTime.Now).ToString() + rand;
                                        string                      oldtrxid   = dd.Rows[0]["trxid"].ToString();
                                        string                      oldreqsn   = dd.Rows[0]["reqsn"].ToString();
                                        Dictionary <String, String> rsp        = sybService.cancel(fen, reqsn, oldtrxid, oldreqsn);
                                        string                      data       = OperUtil.SerializeDictionaryToJsonString(rsp);
                                        Util.Debuglog("微信支付链接data=" + data, "_退款.txt");
                                        //插入预处理订单信息
                                        string json = (new JavaScriptSerializer()).Serialize(rsp);
                                        Util.Debuglog("微信支付链接json=" + json, "_退款.txt");
                                        JObject jo = (JObject)JsonConvert.DeserializeObject(json);
                                        if (jo["retcode"].ToString() == "SUCCESS")
                                        {
                                            string cusid     = jo["cusid"].ToString();     //商户号
                                            string trxid     = jo["trxid"].ToString();     //交易单号
                                            string fintime   = jo["fintime"].ToString();   //交易完成时间
                                            string reqsn1    = jo["reqsn"].ToString();     //商户订单号
                                            string trxstatus = jo["trxstatus"].ToString(); //交易状态
                                            //更新asm_pay_info
                                            if (trxstatus == "0000")
                                            {
                                                string update = "update asm_pay_info set statu=2,tkreqsn='" + reqsn1 + "',fintime='" + fintime + "',trxstatus='" + trxstatus + "',errmsg='' where trxid='" + oldtrxid + "'";
                                                DbHelperSQL.ExecuteSql(update);
                                                string sqlu = "update asm_sellDetail set bz='退款成功' where billno='" + billno + "'";
                                                DbHelperSQL.ExecuteSql(sqlu);
                                                return(new { result = 0, msg = "退款成功,已经退到会员的微信或支付宝" });
                                            }
                                            else
                                            {
                                                string errmsg = jo["errmsg"].ToString();//交易失败信息
                                                string update = "update asm_pay_info set tkreqsn='" + reqsn1 + "',fintime='" + fintime + "',trxstatus='" + trxstatus + "',errmsg='" + errmsg + "' where trxid='" + oldtrxid + "'";
                                                DbHelperSQL.ExecuteSql(update);
                                                if (trxstatus == "3008")
                                                {
                                                    return(new { result = 0, msg = errmsg });
                                                }
                                                else
                                                {
                                                    return(new { result = 0, msg = "退款失败" });
                                                }
                                            }
                                        }
                                        else
                                        {
                                            return(new { result = 0, msg = "退款失败" });
                                        }
                                    }
                                }
                            }
                        }
                    }
                    else
                    {
                        return(new { result = 0, msg = "该笔订单查询失败" });
                    }
                }
                else
                {
                    return(new { result = 0, msg = "退款密码错误" });//密码错误
                }
            }
            return(new { result = 0, msg = "退款失败" });
        }
コード例 #4
0
        private string QueryOrder(DataRow row)
        {
            #region 获取基本参数
            string OrderSN = string.Empty;
            if (row.Table.Columns.Contains("OrderSN"))
            {
                OrderSN = row["OrderSN"].ToString();
            }
            string CommunityId = string.Empty;
            if (row.Table.Columns.Contains("CommunityId"))
            {
                CommunityId = row["CommunityId"].ToString();
            }
            var community = GetCommunity(CommunityId);
            if (community == null)
            {
                return(JSONHelper.FromString(false, "未查询到小区信息"));
            }

            int CommID = AppGlobal.StrToInt(community.CommID);
            PubConstant.hmWyglConnectionString = GetConnectionStr(community);
            #endregion
            #region 查询数据库订单信息
            using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic OrderInfo = conn.QueryFirstOrDefault("SELECT * FROM Tb_Payment_Order WITH(NOLOCK) WHERE OrderSN = @OrderSN", new { OrderSN });
                if (null == OrderInfo)
                {
                    return(new ApiResult(false, "支付订单不存在").toJson());
                }
                dynamic tbNotice = conn.QueryFirstOrDefault("SELECT * FROM Tb_Notice WITH(NOLOCK) WHERE Id = @Id", new { Id = OrderInfo.NoticeId });
                if (null == tbNotice)
                {
                    return(new ApiResult(false, "交易订单不存在").toJson());
                }
                CommID = Convert.ToString(tbNotice.CommID);
            }
            #region 获取对应支付配置
            AllinConfig allinConfig;
            using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic tb_Payment_Config = conn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID });
                if (null == tb_Payment_Config)
                {
                    return(new ApiResult(false, "该项目未开通对应支付方式,请联系管理员").toJson());
                }
                try
                {
                    allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config);
                    if (null == allinConfig)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误,请联系管理员").toJson());
                    }
                }
                catch (Exception)
                {
                    return(new ApiResult(false, "该项目支付类型对应配置有误,请联系管理员").toJson());
                }
            }
            #endregion
            #endregion
            #region 请求通联查询
            Dictionary <string, string> param;
            try
            {
                param = SybWxPayService.Query(OrderSN, "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey);
                return(new ApiResult(true, param).toJson());
            }
            catch (Exception ex)
            {
                GetLog().Error("OnPay", ex);
                return(new ApiResult(false, ex.Message).toJson());
            }
            #endregion
        }
コード例 #5
0
        private string OnPay(DataRow row)
        {
            #region 获取基本参数
            string CommunityId = string.Empty;
            if (row.Table.Columns.Contains("CommunityId"))
            {
                CommunityId = row["CommunityId"].ToString();
            }
            string RoomID = string.Empty;
            if (row.Table.Columns.Contains("RoomID"))
            {
                RoomID = row["RoomID"].ToString();
            }
            string CustID = string.Empty;
            if (row.Table.Columns.Contains("CustID"))
            {
                CustID = row["CustID"].ToString();
            }
            string OpenID = string.Empty;
            if (row.Table.Columns.Contains("OpenID"))
            {
                OpenID = row["OpenID"].ToString();
            }
            if (!row.Table.Columns.Contains("PayChannel") || string.IsNullOrEmpty(row["PayChannel"].ToString()))
            {
                return(new ApiResult(false, "参数PayChannel有误").toJson());
            }
            var community = GetCommunity(CommunityId);
            if (community == null)
            {
                return(JSONHelper.FromString(false, "未查询到小区信息"));
            }

            int CommID = AppGlobal.StrToInt(community.CommID);
            PubConstant.hmWyglConnectionString = GetConnectionStr(community);

            var payChannel = row["PayChannel"].ToString();
            var payType    = 0;

            switch (payChannel.ToLower())
            {
            case PayChannelString.Alipay:
                payType = 1;
                break;

            case PayChannelString.WechatPay:
                payType = 2;
                break;

            case PayChannelString.AllInPay_Alipay:
                payType = 1;
                break;

            case PayChannelString.AllInPay_WechatPay:
                payType = 2;
                break;

            default:
                return(new ApiResult(false, "参数payChannel有误").toJson());
            }
            if (payType == 2)
            {
                if (payChannel.ToLower().Equals(PayChannelString.AllInPay_WechatPay) && string.IsNullOrEmpty(OpenID))
                {
                    return(new ApiResult(false, "参数OpenID不能为空").toJson());
                }
            }

            #endregion

            using (IDbConnection erpConn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic tb_Payment_Config = erpConn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID });
                if (null == tb_Payment_Config)
                {
                    return(new ApiResult(false, "该项目未开通对应支付方式").toJson());
                }
                // 旧方式获取对应支付配置
                AllinConfig allinConfig = null;
                // 新方式获取支付配置
                PaymentConfig paymentConfig = null;
                if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    try
                    {
                        allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config);
                        if (null == allinConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }
                }
                else
                {
                    // 新的方式,Config存储多个配置
                    try
                    {
                        // ERP的配置表,要求存储一个Json数组,用于配置支持不同支付方式
                        // 配置项要求存储一个
                        List <PaymentConfig> configs = JsonConvert.DeserializeObject <List <PaymentConfig> >(tb_Payment_Config.Config);
                        if (null == configs || configs.Count <= 0)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                        if (payChannel == PayChannelString.Alipay)
                        {
                            paymentConfig = configs.Find(item => item.type == "AliPay");
                        }
                        if (payChannel == PayChannelString.WechatPay)
                        {
                            paymentConfig = configs.Find(item => item.type == "WChatPay");
                        }
                        if (null == paymentConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                    }
                }
                #region 计算金额
                if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString()))
                {
                    return(new ApiResult(false, "缺少参数PayData").toJson());
                }
                string PayData = row["PayData"].ToString();
                if (!CheckPayData(Global_Fun.BurstConnectionString(CommID, Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID)))
                {
                    return(new ApiResult(false, errMsg).toJson());
                }
                if (Amt <= 0.00M)
                {
                    return(new ApiResult(false, "金额必须大于0").toJson());
                }
                #endregion

                JObject PayDataObj = JObject.Parse(PayData);
                int     Type       = (int)PayDataObj["Type"];

                #region 查询项目名称和房屋编号,拼接费用备注
                string FeesMemo = string.Empty;
                string RoomSign = string.Empty;
                if (Type == 1)
                {
                    FeesMemo = "物业综合费用缴纳";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                else
                {
                    FeesMemo = "物业综合费用预存";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                #endregion

                string NoticeId = Guid.NewGuid().ToString();

                // 生成订单
                if (erpConn.Execute("INSERT INTO Tb_Notice(Id, CommID, RoomID, CustID, PayData, CreateTime) VALUES(@Id, @CommID, @RoomID, @CustID, @PayData, @CreateTime)", new { Id = NoticeId, CommID, RoomID, CustID, PayData, CreateTime = DateTime.Now.ToString() }) <= 0)
                {
                    return(new ApiResult(false, "创建收款订单失败,请重试").toJson());
                }
                string ChargeMode = "业主APP缴费";
                if (payChannel == PayChannelString.AllInPay_Alipay)
                {
                    ChargeMode = "通联_业主APP(支付宝)";
                }
                else if (payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    ChargeMode = "通联_业主APP(微信)";
                }
                else
                {
                    ChargeMode = "通联_业主APP";
                }
                #region 修改收款方式
                if (erpConn.QueryFirstOrDefault <int>("SELECT COUNT(1) FROM syscolumns WHERE id=object_id('Tb_Notice') AND name = 'ChargeMode'") > 0)
                {
                    erpConn.Execute("UPDATE Tb_Notice SET ChargeMode = @ChargeMode WHERE Id = @Id", new { ChargeMode, Id = NoticeId });
                }
                #endregion
                DateTime dateNow          = DateTime.Now;
                string   OrderSN          = dateNow.ToString("yyyyMMddHHmmssfff") + Utils.BuildRandomStr(3);
                string   PaymentNotifyUrl = string.Empty;

                Dictionary <string, string> param = null;
                if (payChannel == PayChannelString.AllInPay_Alipay || payChannel == PayChannelString.AllInPay_WechatPay)
                {
                    #region 请求通联支付
                    #region 获取对应类型的下账地址
                    if (Type == 1)
                    {
                        PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Notify_Url") + "?CommID=" + CommID;
                    }
                    else
                    {
                        PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Prec_Notify_Url") + "?CommID=" + CommID;
                    }
                    #endregion
                    try
                    {
                        param = SybWxPayService.Pay(Convert.ToInt64(Amt * 100), OrderSN, payChannel == PayChannelString.AllInPay_Alipay ? "A01" : "W06", FeesMemo, RoomSign, OpenID, "", PaymentNotifyUrl, "", "", "", "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey, allinConfig.subbranch);

                        if (param == null || !param.ContainsKey("payinfo"))
                        {
                            GetLog().Error("OnPay:" + JsonConvert.SerializeObject(param));
                            return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                        }
                    }
                    catch (Exception ex)
                    {
                        GetLog().Error("OnPay", ex);
                        return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                    }
                    if (erpConn.Execute(@"INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) 
                                            VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)",
                                        new { PayType = payType, OrderSN = OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成支付订单失败,请重试(1003)").toJson());
                    }
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = param["payinfo"].ToString() }).toJson());

                    #endregion
                }
                if (payChannel == PayChannelString.Alipay)
                {
                    AliConfig aliConfig = null;
                    try
                    {
                        aliConfig = Config.GetConfig <AliConfig>(paymentConfig.config);
                        if (null == aliConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }
                    #region 请求支付宝官方支付
                    #region 获取对应类型的下账地址
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("AliPay_Notify_Url");
                    #endregion
                    AlipayTradeAppPayResponse response = null;
                    try
                    {
                        JObject BizContent = new JObject();
                        //要求15分钟内支付
                        BizContent.Add("timeout_express", "15m");
                        BizContent.Add("total_amount", Amt);
                        BizContent.Add("body", FeesMemo);
                        BizContent.Add("subject", FeesMemo);
                        BizContent.Add("out_trade_no", OrderSN);
                        IAopClient client = new DefaultAopClient("https://openapi.alipay.com/gateway.do", aliConfig.appid, aliConfig.app_private_key, "json", "1.0", "RSA2", aliConfig.alipay_public_key, "UTF-8", false);
                        AlipayTradeAppPayRequest request = new AlipayTradeAppPayRequest
                        {
                            BizContent = JsonConvert.SerializeObject(BizContent),
                        };
                        request.SetNotifyUrl(PaymentNotifyUrl);
                        response = client.SdkExecute(request);
                    }
                    catch (Exception ex)
                    {
                        Log(ex.Message, "AliPayLogs\\");
                        GetLog().Error(ex.Message + Environment.CommandLine + ex.StackTrace);
                        return(new ApiResult(false, "请求订单失败,请重试").toJson());
                    }
                    if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 1, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成订单失败").toJson());
                    }
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = response.Body }).toJson());

                    #endregion
                }
                if (payChannel == PayChannelString.WechatPay)
                {
                    WxConfig wxConfig = null;
                    try
                    {
                        wxConfig = Config.GetConfig <WxConfig>(paymentConfig.config);
                        if (null == wxConfig)
                        {
                            return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                        }
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }

                    #region 请求微信官方支付
                    #region 获取对应类型的下账地址
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("WxPay_Notify_Url");
                    #endregion
                    WxPayData wxPayData = new WxPayData();
                    wxPayData.SetValue("appid", wxConfig.appid);
                    wxPayData.SetValue("body", FeesMemo);
                    wxPayData.SetValue("mch_id", wxConfig.mch_id);
                    wxPayData.SetValue("nonce_str", WxPayApi.GenerateNonceStr());
                    wxPayData.SetValue("notify_url", PaymentNotifyUrl);
                    wxPayData.SetValue("out_trade_no", OrderSN);
                    wxPayData.SetValue("spbill_create_ip", "8.8.8.8");
                    wxPayData.SetValue("total_fee", Convert.ToInt32(Amt * 100));
                    wxPayData.SetValue("trade_type", "APP");
                    wxPayData.SetValue("sign_type", wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256);
                    wxPayData.SetValue("sign", wxPayData.MakeSign(wxConfig.appkey));
                    try
                    {
                        wxPayData = WxPayApi.UnifiedOrder(wxPayData);
                    }
                    catch (Exception)
                    {
                        return(new ApiResult(false, "请求超时,请重试").toJson());
                    }
                    if (!wxPayData.IsSet("return_code") || !"SUCCESS".Equals(wxPayData.GetValue("return_code").ToString()))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    if (!wxPayData.IsSet("result_code") || !"SUCCESS".Equals(wxPayData.GetValue("result_code").ToString()))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    if (!wxPayData.IsSet("prepay_id"))
                    {
                        return(new ApiResult(false, "请求支付订单失败").toJson());
                    }
                    string prepay_id = wxPayData.GetValue("prepay_id").ToString();
                    if (erpConn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 2, OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                    {
                        return(new ApiResult(false, "生成订单失败").toJson());
                    }
                    WxPayData result = new WxPayData();
                    result.SetValue("appid", wxPayData.GetValue("appid").ToString());
                    result.SetValue("partnerid", wxPayData.GetValue("mch_id").ToString());
                    result.SetValue("prepayid", prepay_id);
                    result.SetValue("package", "Sign=WXPay");
                    result.SetValue("noncestr", wxPayData.GetValue("nonce_str").ToString());
                    result.SetValue("timestamp", WxPayApi.GenerateTimeStamp());
                    result.SetValue("sign", result.MakeSign(wxpay.utils.WxPayData.SIGN_TYPE_HMAC_SHA256, wxConfig.appkey));
                    JObject jObj = JObject.Parse(result.ToJson());
                    return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = jObj }).toJson());

                    #endregion
                }
                return(new ApiResult(false, "不支持的支付方式").toJson());
            }
        }
コード例 #6
0
        private string ScanPay(DataRow row)
        {
            #region 获取基本参数
            string CommID = string.Empty;
            if (row.Table.Columns.Contains("CommID"))
            {
                CommID = row["CommID"].ToString();
            }
            string RoomID = string.Empty;
            if (row.Table.Columns.Contains("RoomID"))
            {
                RoomID = row["RoomID"].ToString();
            }
            string CustID = string.Empty;
            if (row.Table.Columns.Contains("CustID"))
            {
                CustID = row["CustID"].ToString();
            }
            string AuthCode = string.Empty;
            if (row.Table.Columns.Contains("AuthCode"))
            {
                AuthCode = row["AuthCode"].ToString();
            }
            #endregion

            #region 获取对应支付配置
            AllinConfig allinConfig;
            using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic tb_Payment_Config = conn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID });
                if (null == tb_Payment_Config)
                {
                    return(new ApiResult(false, "该项目未开通对应支付方式,请联系管理员").toJson());
                }
                try
                {
                    allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config);
                    if (null == allinConfig)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误,请联系管理员").toJson());
                    }
                }
                catch (Exception)
                {
                    return(new ApiResult(false, "该项目支付类型对应配置有误,请联系管理员").toJson());
                }
            }
            #endregion

            #region 计算金额
            if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString()))
            {
                return(new ApiResult(false, "缺少参数PayData").toJson());
            }
            string PayData = row["PayData"].ToString();
            if (!CheckPayData(Global_Fun.BurstConnectionString(AppGlobal.StrToInt(CommID), Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID)))
            {
                return(new ApiResult(false, errMsg).toJson());
            }
            if (Amt <= 0.00M)
            {
                return(new ApiResult(false, "金额必须大于0").toJson());
            }
            #endregion

            JObject PayDataObj = JObject.Parse(PayData);
            int     Type       = (int)PayDataObj["Type"];
            #region 查询项目名称和房屋编号,拼接费用备注
            string FeesMemo = string.Empty;
            string RoomSign = string.Empty;
            if (Type == 1)
            {
                FeesMemo = "物业综合费用缴纳";
                using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
                {
                    string CommName = conn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = conn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
            }
            else
            {
                using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
                {
                    string CommName = conn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = conn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
            }
            #endregion

            #region 生成订单
            string NoticeId = Guid.NewGuid().ToString();
            using (IDbConnection conn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                if (conn.Execute("INSERT INTO Tb_Notice(Id, CommID, RoomID, CustID, PayData, CreateTime) VALUES(@Id, @CommID, @RoomID, @CustID, @PayData, @CreateTime)", new { Id = NoticeId, CommID, RoomID, CustID, PayData, CreateTime = DateTime.Now.ToString() }) <= 0)
                {
                    return(new ApiResult(false, "创建收款订单失败,请重试").toJson());
                }
                string ChargeMode = "前台扫码缴费";
                #region 修改收款方式
                if (conn.QueryFirstOrDefault <int>("SELECT COUNT(1) FROM syscolumns WHERE id=object_id('Tb_Notice') AND name = 'ChargeMode'") > 0)
                {
                    conn.Execute("UPDATE Tb_Notice SET ChargeMode = @ChargeMode WHERE Id = @Id", new { ChargeMode, Id = NoticeId });
                }
                #endregion
                DateTime dateNow = DateTime.Now;
                string   OrderSN = dateNow.ToString("yyyyMMddHHmmssfff") + Utils.BuildRandomStr(3);

                if (conn.Execute("INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)", new { PayType = 4, OrderSN = OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                {
                    return(new ApiResult(false, "创建支付订单失败,请重试").toJson());
                }

                #region 请求通联微信支付
                Dictionary <string, string> param;
                try
                {
                    param = SybWxPayService.ScanPay(Convert.ToInt64(Amt * 100), OrderSN, FeesMemo, RoomSign, AuthCode, "", "", "", "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey);
                }
                catch (Exception ex)
                {
                    GetLog().Error("OnPay", ex);
                    return(new ApiResult(false, ex.Message).toJson());
                }
                #endregion
                return(new ApiResult(true, param).toJson());
            }
            #endregion
        }
コード例 #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                string userAgent = Request.UserAgent;
                if (userAgent.ToLower().Contains("micromessenger"))
                {
                    this.type.Value = "wx";
                }
                else if (userAgent.ToLower().Contains("alipayclient"))
                {
                    this.type.Value = "zfb";
                }
                mechineID = Request.QueryString["mechineID"].ToString();
                payMoney  = Request.QueryString["payMoney"].ToString();
                asmpayid  = Request.QueryString["asmpayid"].ToString();

                SybWxPayService sybService = new SybWxPayService(mechineID);
                string          url        = "http://nq.bingoseller.com/pay/Notify.aspx";
                string          data       = "";
                if (this.type.Value == "wx")
                {
                    long f = long.Parse((double.Parse(payMoney) * 100).ToString());
                    Dictionary <String, String> rsp = sybService.pay(f, DateTime.Now.ToFileTime().ToString(), "W01", "", "", "", "", url, "");
                    data = OperUtil.SerializeDictionaryToJsonString(rsp);
                    //插入预处理订单信息
                    string  json = (new JavaScriptSerializer()).Serialize(rsp);
                    JObject jo   = (JObject)JsonConvert.DeserializeObject(json);
                    if (jo["retcode"].ToString() == "SUCCESS")
                    {
                        string appid   = jo["appid"].ToString();
                        string cusid   = jo["cusid"].ToString();
                        string trxid   = jo["trxid"].ToString();
                        string reqsn   = jo["reqsn"].ToString();
                        string payinfo = jo["payinfo"].ToString();
                        string update  = "update asm_pay_info set appid='" + appid + "',cusid='" + cusid + "',trxid='" + trxid + "',statu='0',reqsn='" + reqsn + "',type='2',payType='1',trxamt=" + (double.Parse(payMoney) * 100) + " where asmpayid='" + asmpayid + "'";
                        url = payinfo;
                        DbHelperSQL.ExecuteSql(update);
                        Response.Write("<script>top.location.href='" + payinfo + "';</script>");
                    }
                }
                else if (this.type.Value == "zfb")
                {
                    Dictionary <String, String> rsp = sybService.pay(long.Parse((double.Parse(payMoney) * 100).ToString()), DateTime.Now.ToFileTime().ToString(), "A01", "", "", "", "", url, "");
                    data = OperUtil.SerializeDictionaryToJsonString(rsp);
                    string  json = (new JavaScriptSerializer()).Serialize(rsp);
                    JObject jo   = (JObject)JsonConvert.DeserializeObject(json);
                    if (jo["retcode"].ToString() == "SUCCESS")
                    {
                        string appid   = jo["appid"].ToString();
                        string cusid   = jo["cusid"].ToString();
                        string trxid   = jo["trxid"].ToString();
                        string reqsn   = jo["reqsn"].ToString();
                        string payinfo = jo["payinfo"].ToString();

                        string update = "update asm_pay_info set appid='" + appid + "',cusid='" + cusid + "',trxid='" + trxid + "',statu='0',reqsn='" + reqsn + "',type='2',payType='2',trxamt=" + (double.Parse(payMoney) * 100) + " where asmpayid='" + asmpayid + "'";
                        DbHelperSQL.ExecuteSql(update);
                        Response.Redirect(payinfo);
                    }
                }
                else
                {
                    Response.Write("请选择微信或者支付宝打开");
                }
            }
        }
コード例 #8
0
        public static async System.Threading.Tasks.Task paycall(Dictionary <String, String> reqParams)
        {
            string  json = (new JavaScriptSerializer()).Serialize(reqParams);
            JObject jo   = (JObject)JsonConvert.DeserializeObject(json);

            string sql = "select * from asm_pay_info where statu=0 and trxid='" + jo["trxid"].ToString() + "'";

            Util.Debuglog("sql=" + sql, "出货信息.txt");
            DataTable dt = DbHelperSQL.Query(sql).Tables[0];

            if (dt.Rows.Count > 0)
            {
                string pickupdate = "update  asm_product_pick set payStatus=3,payTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where reqsnNo='" + dt.Rows[0]["reqsn"].ToString() + "' ";
                Util.Debuglog("sqlInsert=" + pickupdate, "获取预生成订单号.txt");
                DbHelperSQL.ExecuteSql(pickupdate);

                //获取appid查询这个appid的 的appkey
                string sql2 = "select * from asm_company where tl_APPID='" + dt.Rows[0]["appid"].ToString() + "'";
                Util.Debuglog("sql2=" + sql2, "出货信息.txt");
                DataTable d2 = DbHelperSQL.Query(sql2).Tables[0];
                //AppUtil.validSign(reqParams, d2.Rows[0]["tl_APPKEY"].ToString(), d2.Rows[0]["id"].ToString())
                if (dt.Rows[0]["statu"].ToString() == "0")//验签成功
                {
                    string trxidInfo = RedisHelper.GetRedisModel <string>(jo["trxid"].ToString());
                    if (string.IsNullOrEmpty(trxidInfo))
                    {
                        //退到1微信或者2支付宝

                        SybWxPayService             sybService = new SybWxPayService(dt.Rows[0]["mechineID"].ToString());
                        long                        fen        = long.Parse(dt.Rows[0]["trxamt"].ToString());
                        Random                      rd         = new Random();
                        int                         rand       = rd.Next(10000, 99999);
                        string                      reqsn      = Util.ConvertDateTimeToInt(DateTime.Now).ToString() + rand;
                        string                      oldtrxid   = dt.Rows[0]["trxid"].ToString();
                        string                      oldreqsn   = dt.Rows[0]["reqsn"].ToString();
                        Dictionary <String, String> rsp        = sybService.cancel(fen, reqsn, oldtrxid, oldreqsn);
                        string                      data       = OperUtil.SerializeDictionaryToJsonString(rsp);

                        Util.Debuglog("微信支付链接data=" + data, "_退款.txt");
                        //插入预处理订单信息
                        string  returnJson = (new JavaScriptSerializer()).Serialize(rsp);
                        JObject returnjo   = (JObject)JsonConvert.DeserializeObject(returnJson);
                        if (returnjo["retcode"].ToString() == "SUCCESS")
                        {
                            string cusid     = returnjo["cusid"].ToString();     //商户号
                            string trxid     = returnjo["trxid"].ToString();     //交易单号
                            string fintime   = returnjo["fintime"].ToString();   //交易完成时间
                            string reqsn1    = returnjo["reqsn"].ToString();     //商户订单号
                            string trxstatus = returnjo["trxstatus"].ToString(); //交易状态
                            if (trxstatus == "0000")
                            {
                                //更新asm_pay_info
                                string update = "update asm_pay_info set statu=2,tkreqsn='" + reqsn1 + "',fintime='" + fintime + "',trxstatus='" + trxstatus + "' where trxid='" + oldtrxid + "'";
                                DbHelperSQL.ExecuteSql(update);

                                string    sqlm   = "select * from asm_member where openID='" + dt.Rows[0]["acct"].ToString() + "'";
                                DataTable sqlmdt = DbHelperSQL.Query(sqlm).Tables[0];
                                if (sqlmdt.Rows.Count > 0)
                                {
                                    Util.insertNotice(sqlmdt.Rows[0]["id"].ToString(), "出货异常退款", "您于" + dt.Rows[0]["createTime"].ToString() + "购买商品出货异常退还金额:" + double.Parse(dt.Rows[0]["trxamt"].ToString()) / 100 + ";请查收微信或支付宝", dt.Rows[0]["mechineID"].ToString());
                                    Util.moneyChange(sqlmdt.Rows[0]["id"].ToString(), (double.Parse(fen.ToString()) / 100).ToString("0.00"), sqlmdt.Rows[0]["AvailableMoney"].ToString(), "退款通知", "7", "");

                                    try
                                    {
                                        string   company = Util.getCompany(sqlmdt.Rows[0]["companyID"].ToString());
                                        wxHelper wx      = new wxHelper(sqlmdt.Rows[0]["companyID"].ToString());
                                        data = TemplateMessage.tk(sqlmdt.Rows[0]["openID"].ToString(), OperUtil.getMessageID(sqlmdt.Rows[0]["companyID"].ToString(), "OPENTM410089600"), "退款通知", (double.Parse(dt.Rows[0]["trxamt"].ToString()) / 100).ToString("f2"), "您购买的商品没有出货成功,钱已退还到账户");
                                        TemplateMessage.SendTemplateMsg(wx.IsExistAccess_Token(sqlmdt.Rows[0]["companyID"].ToString()), data);
                                    }
                                    catch (Exception e)
                                    {
                                        Util.Debuglog("e=" + e.Message, "会员等级消息模板.txt");
                                    }
                                }
                            }
                            else
                            {
                                string errmsg = jo["errmsg"].ToString();//交易失败信息
                                string update = "update asm_pay_info set tkreqsn='" + reqsn1 + "',fintime='" + fintime + "',trxstatus='" + trxstatus + "',errmsg='" + errmsg + "' where trxid='" + oldtrxid + "'";
                                DbHelperSQL.ExecuteSql(update);
                            }
                        }

                        return;
                    }
                    //验签成功后,进行业务处理,处理完毕返回成功
                    string trxdate   = jo["trxdate"].ToString();
                    string paytime   = jo["paytime"].ToString();
                    string acct      = jo["acct"].ToString();
                    string chnltrxid = jo["chnltrxid"].ToString();
                    double trxamtY   = double.Parse(jo["trxamt"].ToString()) / 100;

                    //发送出货指令
                    string ldno = "";
                    //继续查找
                    bool b   = true;
                    int  num = 3;
                    while (b && num > 0)
                    {
                        num--;
                        ldno = Util.getLDNO(dt.Rows[0]["mechineID"].ToString(), dt.Rows[0]["productID"].ToString());
                        if (!string.IsNullOrEmpty(ldno))
                        {
                            b = false;
                        }
                        else
                        {
                            Thread.Sleep(1000);
                        }
                    }
                    Util.Debuglog("mechineID=" + dt.Rows[0]["mechineID"].ToString() + ";productID=" + dt.Rows[0]["productID"].ToString() + ";LDNO=" + ldno, "出货信息.txt");
                    if (!string.IsNullOrEmpty(ldno))
                    {
                        Util.chNew(ldno, dt.Rows[0]["mechineID"].ToString(), jo["trxid"].ToString(), dt.Rows[0]["payType"].ToString(), dt.Rows[0]["productID"].ToString(), trxamtY.ToString());
                    }

                    Util.Debuglog("出货指令发送完成mechineID=" + dt.Rows[0]["mechineID"].ToString() + ";productID=" + dt.Rows[0]["productID"].ToString() + ";LDNO=" + ldno, "出货信息.txt");

                    //支付成功向asm_pay 表 更新记录
                    if (dt.Rows[0]["payType"].ToString() == "2")
                    {
                        string updateSQL = "update asm_pay_info set chLdNo='" + ldno + "', acct='" + acct + "', paytime='" + paytime + "',statu='1',trxdate='" + trxdate + "',chnltrxid='" + chnltrxid + "' where trxid='" + jo["trxid"].ToString() + "'";
                        Util.Debuglog("updateSQL=" + updateSQL, "出货信息.txt");
                        DbHelperSQL.ExecuteSql(updateSQL);
                    }
                    else
                    {
                        string updateSQL = "update asm_pay_info set chLdNo='" + ldno + "', paytime='" + paytime + "',statu='1',trxdate='" + trxdate + "',chnltrxid='" + chnltrxid + "' where trxid='" + jo["trxid"].ToString() + "'";
                        Util.Debuglog("updateSQL=" + updateSQL, "出货信息.txt");
                        DbHelperSQL.ExecuteSql(updateSQL);
                    }

                    //需要更新会员的消费信息  此处如果是支付宝扫码的话没法更新
                    if (!string.IsNullOrEmpty(dt.Rows[0]["unionID"].ToString()))
                    {
                        string update = "update asm_member set sumConsume=sumConsume+" + trxamtY + ",consumeCount=consumeCount+1,LastTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "',point=point+" + trxamtY + ",mechineID='" + dt.Rows[0]["mechineID"].ToString() + "' where unionID='" + dt.Rows[0]["unionID"].ToString() + "'";
                        Util.Debuglog("update=" + update, "更新会员余额消费信息.txt");
                        DbHelperSQL.ExecuteSql(update);
                    }

                    string    sqlM = "select * from asm_member where unionID='" + dt.Rows[0]["unionID"].ToString() + "'";
                    DataTable dtM  = DbHelperSQL.Query(sqlM).Tables[0];

                    string    searchSql   = "select 1 from asm_firstPayRecord where mechineID=" + dt.Rows[0]["mechineID"].ToString() + " AND memberID='" + dtM.Rows[0]["id"].ToString() + "'";
                    DataTable searchSqldt = DbHelperSQL.Query(searchSql).Tables[0];
                    if (searchSqldt.Rows.Count > 0)
                    {
                    }
                    else
                    {
                        string insertsql = "insert into   asm_firstPayRecord(mechineID,memberID,firstinfo,firstbuyTime,type) values (" + dt.Rows[0]["mechineID"].ToString() + "," + dtM.Rows[0]["id"].ToString() + ",'" + jo["trxid"].ToString() + "','" + DateTime.Now.ToString("yyyy-MM-dd") + "','" + 2 + "') ";
                        Util.Debuglog("sqlInsert=" + insertsql, "获取预生成订单号.txt");
                        DbHelperSQL.ExecuteSql(insertsql);
                    }
                    //此处判断如果orderType=3是半价的需要根据dgOrderDetailID修改zt为售卖完成 并且给出售人加余额
                    if (dt.Rows[0]["orderType"].ToString() == "3" && dt.Rows[0]["dgOrderDetailID"].ToString() != "0" && !string.IsNullOrEmpty(dt.Rows[0]["dgOrderDetailID"].ToString()))
                    {
                        string    sqlDetail = "select * from asm_orderlistDetail where id=" + dt.Rows[0]["dgOrderDetailID"].ToString();
                        DataTable dtDetail  = DbHelperSQL.Query(sqlDetail).Tables[0];
                        if (dtDetail.Rows.Count > 0)
                        {
                            string id        = dt.Rows[0]["dgOrderDetailID"].ToString();
                            string memberID  = dtDetail.Rows[0]["memberID"].ToString();
                            string productID = dt.Rows[0]["productID"].ToString();
                            string updateSql = "update asm_orderlistDetail set zt=6 where id=" + id;
                            int    a         = DbHelperSQL.ExecuteSql(updateSql);
                            if (a > 0)
                            {
                                RedisHelper.Remove(dt.Rows[0]["mechineID"].ToString() + "_SellOrderInfo");
                                //更新余额
                                string    sqlPro       = "select * from asm_product where productID=" + productID;
                                DataTable dpro         = DbHelperSQL.Query(sqlPro).Tables[0];
                                string    updateMember = "update asm_member set AvailableMoney=AvailableMoney+" + dtDetail.Rows[0]["sellPrice"].ToString() + " where id=" + memberID;
                                DbHelperSQL.ExecuteSql(updateMember);
                                Util.chgMoney(memberID, dtDetail.Rows[0]["sellPrice"].ToString(), "售卖", "出售" + dtDetail.Rows[0]["createTime"].ToString() + "日产品", "5");
                            }
                        }
                    }
                    //给会员升级
                    Util.growUpMember(dt.Rows[0]["unionID"].ToString(), "");
                    if (dtM.Rows.Count > 0)
                    {
                        if (!string.IsNullOrEmpty(dtM.Rows[0]["openID"].ToString()))
                        {
                            string    companyID  = dtM.Rows[0]["companyID"].ToString();
                            string    openID     = dtM.Rows[0]["openID"].ToString();
                            string    sqlp       = "select * from asm_product where productID=" + dt.Rows[0]["productID"].ToString();
                            DataTable dp         = DbHelperSQL.Query(sqlp).Tables[0];
                            string    sqlMechine = "select * from asm_mechine where id=" + dt.Rows[0]["mechineID"].ToString();
                            DataTable dMechine   = DbHelperSQL.Query(sqlMechine).Tables[0];
                            wxHelper  wx         = new wxHelper(companyID);
                            string    data       = TemplateMessage.comsume(openID, OperUtil.getMessageID(companyID, "OPENTM401313503"), "亲,你的购买的商品信息如下",
                                                                           "" + dp.Rows[0]["proName"].ToString() + "", trxamtY.ToString(), jo["trxid"].ToString(), dMechine.Rows[0]["mechineName"].ToString(), "“机器已出货,请尽快推开机器左下方推板取出奶品,超过1分钟未取视为丢弃奶品,推板将关闭");
                            TemplateMessage.SendTemplateMsg(wx.IsExistAccess_Token(companyID), data);
                        }
                    }
                }
            }

            Util.Debuglog("keyif=回调结束", "_聚合支付回调参数.txt");
        }
コード例 #9
0
ファイル: wxpay.aspx.cs プロジェクト: wwkkww1983/ice-grid
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                companyID       = Request.QueryString["companyID"].ToString();
                money           = Request.QueryString["money"].ToString();
                mechineID       = Request.QueryString["mechineID"].ToString();
                unionID         = Request.QueryString["unionID"].ToString();
                productID       = Request.QueryString["productID"].ToString();
                openID          = Request.QueryString["openID"].ToString();
                dgOrderDetailID = Request.QueryString["dgOrderDetailID"].ToString();
                type            = Request.QueryString["type"].ToString();
                sftj            = Request.QueryString["sftj"].ToString();
                string    sql1 = "select * from asm_member where unionID='" + unionID + "'";
                DataTable d1   = DbHelperSQL.Query(sql1).Tables[0];
                if (d1.Rows.Count > 0)
                {
                    if (!Util.xgCount(productID, d1.Rows[0]["id"].ToString(), mechineID))
                    {
                        Util.Debuglog("限购" + unionID, "是否限购.txt");
                        string url13 = "https://wx.bingoseller.com/main/xg.aspx";
                        //限购不让购买
                        Response.Write("<script>window.location.href='" + url13 + "';</script>");
                        return;
                    }
                    Util.Debuglog("memberid = " + d1.Rows[0]["id"].ToString(), "聚合微信支付.txt");
                }
                Util.Debuglog("openID=" + openID + ";productName=" + productName + ";productID=" + productID + ";unionID=" + unionID + ";mechineID=" + mechineID, "聚合微信支付.txt");
                this._money.Value = money;

                //JsApiPay jsApiPayGet = new JsApiPay(this);
                try
                {
                    string ldno = Util.getLDNO(mechineID, productID);
                    if (string.IsNullOrEmpty(ldno))
                    {
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "未获取到出货料道编号,请重试" + "</span>");
                        return;
                    }
                    long fen = 0;
                    try
                    {
                        fen = long.Parse((double.Parse(money) * 100).ToString());
                        //fen = 1;
                        //获取收货地址js函数入口参数
                        this._openID.Value = openID;
                        string                      url        = "https://wx.bingoseller.com/pay/JHNotify.aspx";
                        SybWxPayService             sybService = new SybWxPayService(companyID);
                        Dictionary <String, String> rsp        = sybService.pay(fen, DateTime.Now.ToFileTime().ToString(), "W02", "购买产品", "商品消费", openID, "", url, "");
                        string                      json       = (new JavaScriptSerializer()).Serialize(rsp);
                        Util.Debuglog("json=" + json, "聚合微信支付.txt");
                        JObject jo = (JObject)JsonConvert.DeserializeObject(json);
                        if (jo["retcode"].ToString() == "SUCCESS")
                        {
                            string appid     = jo["appid"].ToString();
                            string cusid     = jo["cusid"].ToString();
                            string trxid     = jo["trxid"].ToString();
                            string reqsn     = jo["reqsn"].ToString();
                            string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,statu,reqsn,type,payType,trxamt,createTime,acct,unionID,mechineID,productID,companyID,dgOrderDetailID,orderType,sftj)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','0','" + reqsn + "',2,1," + double.Parse(money) * 100 + ",'" + DateTime.Now + "','" + openID + "','" + unionID + "'," + mechineID + ",'" + productID + "','" + companyID + "','" + dgOrderDetailID + "','" + type + "','" + sftj + "')";
                            DbHelperSQL.ExecuteSql(insertSQL);
                        }
                        foreach (var item in rsp)
                        {
                            if (item.Key == "payinfo")
                            {
                                Util.Debuglog("payinfo=" + item.Value, "聚合微信支付.txt");
                                wxJsApiParam = item.Value;
                            }
                        }
                    }
                    catch
                    {
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "金额有误,请重试" + "</span>");
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面加载出错,请重试" + "</span>");
                }
            }
        }
コード例 #10
0
ファイル: allpay.aspx.cs プロジェクト: wwkkww1983/ice-grid
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                idArr = Request.QueryString["idArr"].ToString();
                if (string.IsNullOrEmpty(idArr))
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "参数不全" + "</span>");
                    return;
                }
                this._id.Value = idArr;
                Util.Debuglog("_id=" + idArr, "联合支付.txt");
                //根据idArr循环订单列表
                string    sql = "select sum(totalMoney) totalMoney from asm_order where id in (" + idArr + ") and fkzt=0";
                DataTable ds  = DbHelperSQL.Query(sql).Tables[0];
                if (ds.Rows.Count > 0)
                {
                    money = ds.Rows[0]["totalMoney"].ToString();
                }

                JsApiPay jsApiPayGet = new JsApiPay(this);
                try
                {
                    if (OperUtil.getCooki("vshop_openID") != "0")
                    {
                        this._companyID.Value = Request.QueryString["companyID"].ToString();
                        companyID             = this._companyID.Value;
                        this._openID.Value    = OperUtil.getCooki("vshop_openID");
                        openID = OperUtil.getCooki("vshop_openID");
                    }
                    else
                    {
                        string userAgent = Request.UserAgent;
                        if (userAgent.ToLower().Contains("micromessenger"))
                        {
                            Response.Redirect("WXCallback.aspx?companyID=" + OperUtil.getCooki("companyID"));
                            return;
                        }
                    }
                    double fen = 0;
                    try
                    {
                        fen = double.Parse(money) * 100;

                        //获取收货地址js函数入口参数
                        this._openID.Value = openID;
                        Util.Debuglog("openID=" + openID + ":companyID=" + companyID + "fen=" + fen, "联合支付.txt");
                        string          url        = "https://wx.bingoseller.com/pay/OrderNotify.aspx";
                        SybWxPayService sybService = new SybWxPayService(companyID);

                        Dictionary <String, String> rsp = sybService.pay((int)fen, DateTime.Now.ToFileTime().ToString(), "W02", "会员购物", "订单合并付款", openID, "", url, "");
                        Util.Debuglog("rsp=" + rsp, "联合支付.txt");
                        string json = (new JavaScriptSerializer()).Serialize(rsp);
                        Util.Debuglog("json=" + json, "联合支付.txt");
                        JObject jo = (JObject)JsonConvert.DeserializeObject(json);

                        if (jo["retcode"].ToString() == "SUCCESS")
                        {
                            string appid = jo["appid"].ToString();
                            string cusid = jo["cusid"].ToString();
                            string trxid = jo["trxid"].ToString();
                            string reqsn = jo["reqsn"].ToString();
                            this._trxid.Value = trxid;
                            // //插入预订单信息
                            string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,acct,statu,reqsn,[type],payType,trxamt)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','" + openID + "','0','" + reqsn + "',2,3," + fen + ")";
                            Util.Debuglog("insertSQL=" + insertSQL, "联合支付.txt");
                            DbHelperSQL.ExecuteSql(insertSQL);
                        }
                        foreach (var item in rsp)
                        {
                            if (item.Key == "payinfo")
                            {
                                wxJsApiParam = item.Value;
                                Util.Debuglog("wxJsApiParam=" + wxJsApiParam, "联合支付.txt");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Util.Debuglog("ex错误=" + ex.Message, "微信支付.txt");
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "金额有误,请重试" + "</span>");
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面加载出错,请重试" + "</span>");
                }
            }
        }
コード例 #11
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                openID              = Request.QueryString["openID"].ToString();
                companyID           = Request.QueryString["companyID"].ToString();
                money               = Request.QueryString["money"].ToString();
                dzMoney             = Request.QueryString["dzMoney"].ToString();
                this._money.Value   = money;
                this._dzMOney.Value = dzMoney;

                JsApiPay jsApiPayGet = new JsApiPay(this);
                try
                {
                    if (OperUtil.getCooki("vshop_openID") != "0")
                    {
                        this._companyID.Value = Request.QueryString["companyID"].ToString();
                        this._openID.Value    = OperUtil.getCooki("vshop_openID");
                        openID = OperUtil.getCooki("vshop_openID");
                    }
                    else
                    {
                        string userAgent = Request.UserAgent;
                        if (userAgent.ToLower().Contains("micromessenger"))
                        {
                            Response.Redirect("WXCallback.aspx?companyID=" + OperUtil.getCooki("companyID"));
                            return;
                        }
                    }

                    int fen = 0;
                    try
                    {
                        fen = int.Parse(money) * 100;
                        //获取收货地址js函数入口参数
                        this._openID.Value = openID;
                        string                      url        = "https://wx.bingoseller.com/pay/Notify.aspx";
                        SybWxPayService             sybService = new SybWxPayService(companyID);
                        Dictionary <String, String> rsp        = sybService.pay(fen, DateTime.Now.ToFileTime().ToString(), "W02", "会员充值", "备注", openID, "", url, "");
                        string                      json       = (new JavaScriptSerializer()).Serialize(rsp);
                        Util.Debuglog("json=" + json, "_充值日志.txt");
                        JObject jo = (JObject)JsonConvert.DeserializeObject(json);
                        if (jo["retcode"].ToString() == "SUCCESS")
                        {
                            string appid = jo["appid"].ToString();
                            string cusid = jo["cusid"].ToString();
                            string trxid = jo["trxid"].ToString();
                            string reqsn = jo["reqsn"].ToString();
                            //插入预订单信息 为了避免插入失败循环插入5次
                            for (int i = 0; i < 10; i++)
                            {
                                string    sql = "select * from asm_pay_info where trxid='" + trxid + "'";
                                DataTable ds  = DbHelperSQL.Query(sql).Tables[0];
                                if (ds.Rows.Count <= 0)
                                {
                                    string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,acct,statu,reqsn,[type],payType,trxamt,dzMoney)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','" + openID + "','0','" + reqsn + "',1,3," + fen + "," + dzMoney + ")";
                                    Util.Debuglog("insertSQL=" + insertSQL, "_充值日志.txt");
                                    DbHelperSQL.ExecuteSql(insertSQL);
                                }
                                else
                                {
                                    break;
                                }
                                Thread.Sleep(300);
                            }
                        }
                        foreach (var item in rsp)
                        {
                            if (item.Key == "payinfo")
                            {
                                wxJsApiParam = item.Value;
                            }
                        }
                    }
                    catch {
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "金额有误,请重试" + "</span>");
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面加载出错,请重试" + "</span>");
                }
            }
        }
コード例 #12
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //支付信息

                this._orderNO.Value    = Request.QueryString["orderNO"].ToString();
                this._syMoney.Value    = Request.QueryString["syMoney"].ToString();
                this._need_money.Value = Request.QueryString["need_money"].ToString();//实际花费
                this._zq.Value         = Request.QueryString["zq"].ToString();
                this._productID.Value  = Request.QueryString["productID"].ToString();
                this._yhfs.Value       = Request.QueryString["yhfs"].ToString();
                this._mechineID.Value  = Request.QueryString["mechineID"].ToString();
                string sql = "select * from asm_mechine where id=" + this._mechineID.Value;

                DataTable dt = DbHelperSQL.Query(sql).Tables[0];
                companyID = dt.Rows[0]["companyID"].ToString();
                money     = this._need_money.Value;
                string sqlpro = "select * from asm_product where productID=" + this._productID.Value;
                proname = DbHelperSQL.Query(sqlpro).Tables[0].Rows[0]["proName"].ToString();

                JsApiPay jsApiPayGet = new JsApiPay(this);
                try
                {
                    if (OperUtil.getCooki("vshop_openID") != "0")
                    {
                        this._companyID.Value = OperUtil.getCooki("companyID");
                        this._openID.Value    = OperUtil.getCooki("vshop_openID");
                        openID = OperUtil.getCooki("vshop_openID");
                    }
                    else
                    {
                        string userAgent = Request.UserAgent;
                        if (userAgent.ToLower().Contains("micromessenger"))
                        {
                            Response.Redirect("WXCallback.aspx?companyID=" + OperUtil.getCooki("companyID"));
                            return;
                        }
                    }
                    double fen = 0;
                    try
                    {
                        fen = (double.Parse(money) - double.Parse(this._syMoney.Value)) * 100;
                        //获取收货地址js函数入口参数
                        this._openID.Value = openID;
                        string                      url        = "https://wx.bingoseller.com/pay/dhpayNotify.aspx";
                        SybWxPayService             sybService = new SybWxPayService(companyID);
                        Dictionary <String, String> rsp        = sybService.pay((int)fen, DateTime.Now.ToFileTime().ToString(), "W02", "会员商品兑换", proname, openID, "", url, "");
                        string                      json       = (new JavaScriptSerializer()).Serialize(rsp);
                        JObject                     jo         = (JObject)JsonConvert.DeserializeObject(json);
                        if (jo["retcode"].ToString() == "SUCCESS")
                        {
                            string appid = jo["appid"].ToString();
                            string cusid = jo["cusid"].ToString();
                            string trxid = jo["trxid"].ToString();
                            string reqsn = jo["reqsn"].ToString();
                            this._trxid.Value = trxid;
                            // //插入预订单信息
                            string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,acct,statu,reqsn,[type],payType,trxamt)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','" + openID + "','0','" + reqsn + "',2,3," + fen + ")";
                            DbHelperSQL.ExecuteSql(insertSQL);
                        }
                        foreach (var item in rsp)
                        {
                            if (item.Key == "payinfo")
                            {
                                wxJsApiParam = item.Value;
                            }
                        }
                    }
                    catch
                    {
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "金额有误,请重试" + "</span>");
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面加载出错,请重试" + "</span>");
                }
            }
        }
コード例 #13
0
ファイル: orderpay.aspx.cs プロジェクト: wwkkww1983/ice-grid
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                //支付信息
                this.mechine_id.Value = Request.QueryString["mechine_id"].ToString();
                this.product_id.Value = Request.QueryString["product_id"].ToString();
                Util.Debuglog("机器id=" + this.mechine_id.Value + ";产品id=" + this.product_id.Value + ";", "会员下订单.txt");
                this._pszq.Value = Request.QueryString["_pszq"].ToString();
                Util.Debuglog("配送周期=" + this._pszq.Value, "会员下订单.txt");
                this._qsDate.Value = Request.QueryString["_qsDate"].ToString();
                Util.Debuglog("起送周期=" + this._qsDate.Value, "会员下订单.txt");
                this._zdDate.Value = Request.QueryString["_zdDate"].ToString();
                Util.Debuglog("止订周期=" + this._zdDate.Value, "会员下订单.txt");
                this._psStr.Value = Request.QueryString["_psStr"].ToString();
                Util.Debuglog("配送方式_psStr=" + this._psStr.Value, "会员下订单.txt");
                this._psfs.Value = Request.QueryString["_psfs"].ToString();
                Util.Debuglog("_psfs=" + this._psfs.Value, "会员下订单.txt");
                //this._selDate.Value = Request.QueryString["_selDate"].ToString();
                //Util.Debuglog("_selDate=" + this._selDate.Value, "会员下订单.txt");
                this._orderNO.Value = Request.QueryString["_orderNO"].ToString();
                Util.Debuglog("_orderNO=" + this._orderNO.Value, "会员下订单.txt");
                this._createTime.Value = Request.QueryString["_createTime"].ToString();
                Util.Debuglog("_createTime=" + this._createTime.Value, "会员下订单.txt");
                this._fkzt.Value = Request.QueryString["_fkzt"].ToString();
                Util.Debuglog("_fkzt=" + this._fkzt.Value, "会员下订单.txt");
                this._totalMoney.Value = Request.QueryString["_totalMoney"].ToString();
                Util.Debuglog("_totalMoney=" + this._totalMoney.Value, "会员下订单.txt");
                this._yhfs.Value = Request.QueryString["_yhfs"].ToString();
                Util.Debuglog("_yhfs=" + this._yhfs.Value, "会员下订单.txt");

                string    sql = "select * from asm_mechine where id=" + this.mechine_id.Value;
                DataTable dt  = DbHelperSQL.Query(sql).Tables[0];
                companyID = dt.Rows[0]["companyID"].ToString();
                money     = Request.QueryString["money"].ToString();
                proname   = Request.QueryString["proname"].ToString();
                JsApiPay jsApiPayGet = new JsApiPay(this);
                try
                {
                    if (OperUtil.getCooki("vshop_openID") != "0")
                    {
                        this._companyID.Value = Request.QueryString["companyID"].ToString();
                        this._openID.Value    = OperUtil.getCooki("vshop_openID");
                        openID = OperUtil.getCooki("vshop_openID");
                    }
                    else
                    {
                        string userAgent = Request.UserAgent;
                        if (userAgent.ToLower().Contains("micromessenger"))
                        {
                            Response.Redirect("WXCallback.aspx?companyID=" + OperUtil.getCooki("companyID"));
                            return;
                        }
                    }
                    double fen = 0;
                    try
                    {
                        fen = double.Parse(money) * 100;

                        //获取收货地址js函数入口参数
                        this._openID.Value = openID;
                        Util.Debuglog("openID=" + openID + ":companyID=" + companyID + "fen=" + fen, "微信支付.txt");
                        string          url        = "https://wx.bingoseller.com/pay/OrderNotify.aspx";
                        SybWxPayService sybService = new SybWxPayService(companyID);
                        Util.Debuglog("111=", "微信支付.txt");
                        Dictionary <String, String> rsp = sybService.pay((int)fen, DateTime.Now.ToFileTime().ToString(), "W02", "会员购物", proname, openID, "", url, "");
                        Util.Debuglog("rsp=" + rsp, "微信支付.txt");
                        string json = (new JavaScriptSerializer()).Serialize(rsp);
                        Util.Debuglog("json=" + json, "微信支付.txt");
                        JObject jo = (JObject)JsonConvert.DeserializeObject(json);

                        if (jo["retcode"].ToString() == "SUCCESS")
                        {
                            string appid = jo["appid"].ToString();
                            string cusid = jo["cusid"].ToString();
                            string trxid = jo["trxid"].ToString();
                            string reqsn = jo["reqsn"].ToString();
                            this._trxid.Value = trxid;
                            //插入预订单信息
                            string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,acct,statu,reqsn,type,payType,trxamt)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','" + openID + "','0','" + reqsn + "',2,3," + fen + ")";
                            Util.Debuglog("insertSQL=" + insertSQL, "微信支付.txt");
                            //根据订单编号更新 订单表  在回调方法里添加订单明细记录
                            string update = "update asm_order set trxID='" + trxid + "' where orderNO='" + this._orderNO.Value + "'";
                            Util.Debuglog("update11111=" + update, "_11.txt");
                            DbHelperSQL.ExecuteSql(insertSQL);
                            DbHelperSQL.ExecuteSql(update);
                        }
                        foreach (var item in rsp)
                        {
                            if (item.Key == "payinfo")
                            {
                                wxJsApiParam = item.Value;
                                Util.Debuglog("wxJsApiParam=" + wxJsApiParam, "微信下单支付_.txt");
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        Util.Debuglog("ex错误=" + ex.Message, "微信支付.txt");
                        Response.Write("<span style='color:#FF0000;font-size:20px'>" + "金额有误,请重试" + "</span>");
                    }
                }
                catch (Exception ex)
                {
                    Response.Write("<span style='color:#FF0000;font-size:20px'>" + "页面加载出错,请重试" + "</span>");
                }
            }
        }
コード例 #14
0
        protected void Page_Load(object sender, EventArgs e)
        {
            if (!IsPostBack)
            {
                try
                {
                    reqsn = Request.QueryString["reqsn"].ToString();

                    string    asm_pay_infosql = "select 1 from asm_pay_info  where reqsn='" + reqsn + "' ";
                    DataTable asm_pay_infodt  = DbHelperSQL.Query(asm_pay_infosql).Tables[0];
                    if (asm_pay_infodt.Rows.Count > 0)
                    {
                        return;
                    }
                    string    asm_product_picksql = "select * from asm_product_pick  where reqsnNo='" + reqsn + "' ";
                    DataTable asm_product_pickdt  = DbHelperSQL.Query(asm_product_picksql).Tables[0];
                    if (asm_product_pickdt.Rows.Count > 0)
                    {
                        companyID       = asm_product_pickdt.Rows[0]["companyID"].ToString();
                        productID       = asm_product_pickdt.Rows[0]["productID"].ToString();
                        mechineID       = asm_product_pickdt.Rows[0]["mechineID"].ToString();
                        dgOrderDetailID = asm_product_pickdt.Rows[0]["dgOrderDetailID"].ToString();
                        type            = asm_product_pickdt.Rows[0]["type"].ToString();
                        //转售金额固定
                    }

                    // money = "1";
                    Util.Debuglog("companyID=" + companyID + ";money=" + money + ";productID=" + productID + ";mechineID=" + mechineID + ";dgOrderDetailID=" + dgOrderDetailID + ";type=" + type, "_聚合支付支付宝.txt");
                    SybWxPayService sybService = new SybWxPayService(companyID);
                    string          url        = "https://wx.bingoseller.com/pay/JHNotifyNew.aspx";
                    string          data       = "";
                    string          sql        = "select *from asm_product where productID=" + productID;
                    DataTable       dt         = DbHelperSQL.Query(sql).Tables[0];

                    if (dgOrderDetailID != "0" && !string.IsNullOrEmpty(dgOrderDetailID))
                    {
                        string    sqlDetail = "select * from asm_orderlistDetail where id=" + dgOrderDetailID;
                        DataTable dtDetail  = DbHelperSQL.Query(sqlDetail).Tables[0];
                        if (dtDetail.Rows.Count > 0)
                        {
                            money = dtDetail.Rows[0]["sellPrice"].ToString();
                        }
                    }
                    else
                    {
                        money = Util.getNewProductPrice(productID, mechineID, "0");
                    }
                    Dictionary <String, String> rsp = sybService.pay(long.Parse((double.Parse(money) * 100).ToString()), reqsn, "A01", dt.Rows[0]["proName"].ToString(), "商品消费", "", "", url, "");
                    data = OperUtil.SerializeDictionaryToJsonString(rsp);
                    string json = (new JavaScriptSerializer()).Serialize(rsp);
                    Util.Debuglog("json=" + json, "_聚合支付支付宝.txt");
                    JObject jo = (JObject)JsonConvert.DeserializeObject(json);
                    if (jo["retcode"].ToString() == "SUCCESS")
                    {
                        string pickupdate = "update  asm_product_pick set payStatus=2,sacntype='2',paytype='2',startPayTime='" + DateTime.Now.ToString("yyyy-MM-dd HH:mm:ss") + "' where reqsnNo='" + reqsn + "' ";
                        Util.Debuglog("sqlInsert=" + pickupdate, "获取预生成订单号.txt");
                        DbHelperSQL.ExecuteSql(pickupdate);
                        string appid = jo["appid"].ToString();
                        string cusid = jo["cusid"].ToString();
                        string trxid = jo["trxid"].ToString();
                        RedisHelper.SetRedisModel <string>(trxid, trxid, new TimeSpan(0, 2, 0));
                        string reqsnNew   = jo["reqsn"].ToString();
                        string payinfoUrl = jo["payinfo"].ToString();
                        Util.Debuglog("payinfoUrl=" + payinfoUrl, "_聚合支付支付宝.txt");
                        string insertSQL = @"insert into asm_pay_info(appid,cusid,trxid,statu,reqsn,type,payType,trxamt,createTime,mechineID,productID,companyID,dgOrderDetailID,orderType)
                                            values('" + appid + "','" + cusid + "','" + trxid + "','0','" + reqsnNew + "',2,2," + double.Parse(money) * 100 + ",'" + DateTime.Now + "','" + mechineID + "','" + productID + "','" + companyID + "','" + dgOrderDetailID + "','" + type + "')";
                        Util.Debuglog("insertSQL=" + insertSQL, "_聚合支付支付宝.txt");
                        DbHelperSQL.ExecuteSql(insertSQL);
                        Response.Write("<script>window.location.href='" + payinfoUrl + "';</script>");
                        // //插入预订单信息
                    }
                }
                catch (Exception ex)
                {
                    Util.Debuglog("Exception=" + ex.Message, "_聚合支付支付宝.txt");
                }
            }
        }
コード例 #15
0
        public string GenerateOrder(DataRow row)
        {
            #region 获取基本参数
            string CommunityId = string.Empty;
            if (row.Table.Columns.Contains("CommunityId"))
            {
                CommunityId = row["CommunityId"].ToString();
            }
            string RoomID = string.Empty;
            if (row.Table.Columns.Contains("RoomID"))
            {
                RoomID = row["RoomID"].ToString();
            }
            string CustID = string.Empty;
            if (row.Table.Columns.Contains("CustID"))
            {
                CustID = row["CustID"].ToString();
            }
            if (!row.Table.Columns.Contains("PayChannel") || string.IsNullOrEmpty(row["PayChannel"].ToString()))
            {
                return(new ApiResult(false, "参数PayChannel有误").toJson());
            }

            var payChannel = row["PayChannel"].ToString();
            var payType    = 0;
            if (payChannel.ToLower() == "allinpay_alipay")
            {
                payChannel = "A03";
                payType    = 1;
            }
            else if (payChannel.ToLower() == "allinpay_wechatpay")
            {
                payChannel = "W06";
                payType    = 2;
            }
            else
            {
                return(new ApiResult(false, "参数PayChannel有误").toJson());
            }

            #endregion

            var community = PubInfo.GetCommunity(CommunityId);
            if (community == null)
            {
                return(JSONHelper.FromString(false, "未查询到小区信息"));
            }

            int CommID = AppGlobal.StrToInt(community.CommID);
            PubConstant.hmWyglConnectionString = PubInfo.GetConnectionStr(community);

            // 获取对应支付配置
            AllinConfig allinConfig;
            using (IDbConnection erpConn = new SqlConnection(PubConstant.hmWyglConnectionString))
            {
                dynamic tb_Payment_Config = erpConn.QueryFirstOrDefault <dynamic>("SELECT * FROM Tb_Payment_Config WITH(NOLOCK) WHERE CommID = @CommID", new { CommID });
                if (null == tb_Payment_Config)
                {
                    return(new ApiResult(false, "该项目未开通对应支付方式").toJson());
                }
                try
                {
                    allinConfig = JsonConvert.DeserializeObject <AllinConfig>(tb_Payment_Config.Config);
                    if (null == allinConfig)
                    {
                        return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                    }
                }
                catch (Exception)
                {
                    return(new ApiResult(false, "该项目支付类型对应配置有误").toJson());
                }

                #region 计算金额
                if (!row.Table.Columns.Contains("PayData") || string.IsNullOrEmpty(row["PayData"].ToString()))
                {
                    return(new ApiResult(false, "缺少参数PayData").toJson());
                }
                string PayData = row["PayData"].ToString();
                if (!PubInfo.CheckPayData(Global_Fun.BurstConnectionString(CommID, Global_Fun.BURST_TYPE_CHARGE), Convert.ToInt64(CustID), Convert.ToInt64(RoomID), PayData, out decimal Amt, out string errMsg, true, false, !"1940".Equals(Global_Var.LoginCorpID)))
                {
                    return(new ApiResult(false, errMsg).toJson());
                }
                if (Amt <= 0.00M)
                {
                    return(new ApiResult(false, "金额必须大于0").toJson());
                }
                #endregion

                JObject PayDataObj = JObject.Parse(PayData);
                int     Type       = (int)PayDataObj["Type"];

                #region 查询项目名称和房屋编号,拼接费用备注
                string FeesMemo = string.Empty;
                string RoomSign = string.Empty;
                if (Type == 1)
                {
                    FeesMemo = "物业综合费用缴纳";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                else
                {
                    FeesMemo = "物业综合费用预存";
                    string CommName = erpConn.QueryFirstOrDefault <string>("SELECT CommName FROM Tb_HSPR_Community WHERE CommID = @CommID", new { CommID });
                    if (string.IsNullOrEmpty(CommName))
                    {
                        CommName = Convert.ToString(CommID);
                    }
                    RoomSign = erpConn.QueryFirstOrDefault <string>("SELECT ISNULL(RoomSign,RoomName) AS RoomSign FROM Tb_HSPR_Room WHERE RoomID = @RoomID", new { RoomID });
                    if (string.IsNullOrEmpty(RoomSign))
                    {
                        RoomSign = Convert.ToString(RoomID);
                    }

                    FeesMemo += string.Format("-{0}-{1}", CommName, RoomSign);
                }
                #endregion

                string NoticeId = Guid.NewGuid().ToString();

                // 生成订单
                if (erpConn.Execute("INSERT INTO Tb_Notice(Id, CommID, RoomID, CustID, PayData, CreateTime) VALUES(@Id, @CommID, @RoomID, @CustID, @PayData, @CreateTime)", new { Id = NoticeId, CommID, RoomID, CustID, PayData, CreateTime = DateTime.Now.ToString() }) <= 0)
                {
                    return(new ApiResult(false, "创建收款订单失败,请重试").toJson());
                }
                string ChargeMode = "业主APP缴费";
                #region 修改收款方式
                if (erpConn.QueryFirstOrDefault <int>("SELECT COUNT(1) FROM syscolumns WHERE id=object_id('Tb_Notice') AND name = 'ChargeMode'") > 0)
                {
                    erpConn.Execute("UPDATE Tb_Notice SET ChargeMode = @ChargeMode WHERE Id = @Id", new { ChargeMode, Id = NoticeId });
                }
                #endregion
                #region 请求通联微信支付
                DateTime dateNow = DateTime.Now;
                string   OrderSN = dateNow.ToString("yyyyMMddHHmmssfff") + Utils.BuildRandomStr(3);

                #region 获取对应类型的下账地址
                string PaymentNotifyUrl = string.Empty;
                if (Type == 1)
                {
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Notify_Url") + "?CommID=" + CommID;
                }
                else
                {
                    PaymentNotifyUrl = AppGlobal.GetAppSetting("AllinPay_Prec_Notify_Url") + "?CommID=" + CommID;
                }
                #endregion

                Dictionary <string, string> param;
                try
                {
                    param = SybWxPayService.Pay(Convert.ToInt64(Amt * 100), OrderSN, payChannel, FeesMemo, RoomSign, "", "", PaymentNotifyUrl, "", "", "", "", allinConfig.orgid, allinConfig.appid, allinConfig.custid, allinConfig.appkey, allinConfig.subbranch);

                    if (param == null)
                    {
                        return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                    }
                }
#pragma warning disable CS0168 // 声明了变量“ex”,但从未使用过
                catch (Exception ex)
#pragma warning restore CS0168 // 声明了变量“ex”,但从未使用过
                {
                    return(new ApiResult(false, "生成支付订单失败,请重试").toJson());
                }
                #endregion
                if (erpConn.Execute(@"INSERT INTO Tb_Payment_Order(PayType, OrderSN, NoticeId, Amt, CreateTime) 
                                            VALUES(@PayType, @OrderSN, @NoticeId, @Amt, @CreateTime)",
                                    new { PayType = payType, OrderSN = OrderSN, NoticeId = NoticeId, Amt = Amt, CreateTime = dateNow }) <= 0)
                {
                    return(new ApiResult(false, "生成支付订单失败,请重试(1003)").toJson());
                }
                return(new ApiResult(true, new { OrderSN = OrderSN, QrCode = param["payinfo"].ToString() }).toJson());
            }
        }