Exemplo n.º 1
0
        public static RedPackInfo SearchOrder(string ordercode, int WeChatType)
        {
            string vkey    = "ZZCXXCZ090115";
            string orderid = ordercode;
            string dt      = DateTime.Now.ToString("yyyyMMddhhmmssfff");
            string sign    = Common.getMD5.MD5(vkey + dt + orderid).ToUpper();
            string url     = "http://wxhb.esmartwave.com/redpack/" + (WeChatType == 1 ? "yh" : WeChatType == 2 ? "yb" : "sm") + "_order.aspx?sign=" + sign + "&orderid=" + orderid + "&dt=" + dt;

            try
            {
                string result = Common.WebNet.doPost(url, "").Replace("xml", "RedPackInfo");

                RedPackInfo xml = Deserialize(typeof(RedPackInfo), result) as RedPackInfo;

                if (xml.return_code.ToUpper() == "SUCCESS" && xml.result_code.ToUpper() == "SUCCESS")
                {
                    //SENDING:发放中
                    //SENT:已发放待领取
                    //FAILED:发放失败
                    //RECEIVED:已领取
                    //RFUND_ING:退款中
                    //REFUND:已退款

                    xml.IsSend = true;
                }
                else
                {
                    xml.IsSend = false;
                }
                return(xml);
            }
            catch {
                return(null);
            }
        }
Exemplo n.º 2
0
        public RedPackInfo GetRedpackInfo(string appId, string mch_id, string mch_billno, string partnerkey, string weixincertpath, string weixincertpassword)
        {
            PayDictionary payDictionary = new PayDictionary();

            payDictionary.Add("nonce_str", Utils.CreateNoncestr());
            payDictionary.Add("mch_billno", mch_billno);
            payDictionary.Add("mch_id", mch_id);
            payDictionary.Add("appid", appId);
            payDictionary.Add("bill_type", "MCHT");
            string value = SignHelper.SignPackage(payDictionary, partnerkey);

            payDictionary.Add("sign", value);
            string data = SignHelper.BuildXml(payDictionary, false);
            string text = "";

            try
            {
                text = RedPackClient.Send(weixincertpath, weixincertpassword, data, RedPackClient.QueryRedPackUrl);
            }
            catch (Exception ex)
            {
                text = ex.Message;
            }
            RedPackInfo result;

            if (!string.IsNullOrEmpty(text) && text.Contains("return_code"))
            {
                result = RedPackClient.ConvertDic <RedPackInfo>(RedPackClient.FromXml(text));
            }
            else
            {
                result = new RedPackInfo
                {
                    return_code = "FAIL",
                    return_msg  = text,
                    status      = ""
                };
            }
            return(result);
        }
Exemplo n.º 3
0

        
Exemplo n.º 4
0
        public void RedPackCheckJob()
        {
            new StringBuilder();
            DateTime  time             = DateTime.Now.Date.AddDays(-3.0);
            DataTable table            = new DataTable();
            string    query            = "select UserId,SerialID,RedpackId,Amount from Hishop_BalanceDrawRequest WHERE IsCheck=2 AND RequestType=3 AND CheckTime>=@CheckTime";
            DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);

            this.database.AddInParameter(sqlStringCommand, "CheckTime", DbType.DateTime, time);
            using (IDataReader reader = this.database.ExecuteReader(sqlStringCommand))
            {
                table = DataHelper.ConverDataReaderToDataTable(reader);
            }
            RedPackClient   client         = new RedPackClient();
            SiteSettings    masterSettings = SettingsManager.GetMasterSettings(true);
            DistributorsDao dao            = new DistributorsDao();

            if ((table != null) && (table.Rows.Count > 0))
            {
                foreach (DataRow row in table.Rows)
                {
                    string      str2 = row["RedpackId"].ToString();
                    RedPackInfo info = client.GetRedpackInfo(masterSettings.WeixinAppId, masterSettings.WeixinPartnerID, str2, masterSettings.WeixinPartnerKey, masterSettings.WeixinCertPath, masterSettings.WeixinCertPassword);
                    if (info != null)
                    {
                        redPackStatus status = info.Getstatus();
                        if (((int)status == 4) || ((int)status == 2))
                        {
                            int id = int.Parse(row["SerialID"].ToString());
                            Globals.Debuglog(string.Concat(new object[] { "BalanceDrawRequest-", id, ":", info.ToString() }), "RedPackCheck.txt");
                            decimal num2   = decimal.Parse(row["Amount"].ToString());
                            int     userId = int.Parse(row["UserId"].ToString());
                            dao.UpdateBalanceDistributors(userId, -1M * num2);
                            dao.UpdateRedPackStatus(id, "红包" + status.ToString(), null);
                        }
                    }
                }
            }
            query = "select UserId,Id,RedpackId,Amount from Hishop_MemberAmountRequest WHERE State=2 AND RequestType=3 AND CheckTime>=@CheckTime";
            AmountDao dao2 = new AmountDao();

            sqlStringCommand = this.database.GetSqlStringCommand(query);
            this.database.AddInParameter(sqlStringCommand, "CheckTime", DbType.DateTime, time);
            using (IDataReader reader2 = this.database.ExecuteReader(sqlStringCommand))
            {
                table = DataHelper.ConverDataReaderToDataTable(reader2);
            }
            if ((table != null) && (table.Rows.Count > 0))
            {
                foreach (DataRow row2 in table.Rows)
                {
                    string      str3  = row2["RedpackId"].ToString();
                    RedPackInfo info2 = client.GetRedpackInfo(masterSettings.WeixinAppId, masterSettings.WeixinPartnerID, str3, masterSettings.WeixinPartnerKey, masterSettings.WeixinCertPath, masterSettings.WeixinCertPassword);
                    if (info2 != null)
                    {
                        redPackStatus status2 = info2.Getstatus();
                        if (((int)status2 == 4) || ((int)status2 == 2))
                        {
                            int num4 = int.Parse(row2["Id"].ToString());
                            Globals.Debuglog(string.Concat(new object[] { "MemberAmountRequest-", num4, ":", info2.ToString() }), "RedPackCheck.txt");
                            decimal.Parse(row2["Amount"].ToString());
                            int.Parse(row2["UserId"].ToString());
                            dao2.SetAmountRequestStatus(new int[] { num4 }, 3, "红包" + status2.ToString(), "", "SYSJOB");
                        }
                    }
                }
            }
        }
Exemplo n.º 5
0
        public void RedPackCheckJob()
        {
            StringBuilder stringBuilder = new StringBuilder();
            DateTime      dateTime      = DateTime.Now.Date.AddDays(-3.0);

            System.Data.DataTable dataTable = new System.Data.DataTable();
            string query = "select UserId,SerialID,RedpackId,Amount from Hishop_BalanceDrawRequest WHERE IsCheck=2 AND RequestType=3 AND CheckTime>=@CheckTime";

            System.Data.Common.DbCommand sqlStringCommand = this.database.GetSqlStringCommand(query);
            this.database.AddInParameter(sqlStringCommand, "CheckTime", System.Data.DbType.DateTime, dateTime);
            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                dataTable = DataHelper.ConverDataReaderToDataTable(dataReader);
            }
            RedPackClient   redPackClient   = new RedPackClient();
            SiteSettings    masterSettings  = SettingsManager.GetMasterSettings(true);
            DistributorsDao distributorsDao = new DistributorsDao();

            if (dataTable != null && dataTable.Rows.Count > 0)
            {
                foreach (System.Data.DataRow dataRow in dataTable.Rows)
                {
                    string      mch_billno  = dataRow["RedpackId"].ToString();
                    RedPackInfo redpackInfo = redPackClient.GetRedpackInfo(masterSettings.WeixinAppId, masterSettings.WeixinPartnerID, mch_billno, masterSettings.WeixinPartnerKey, masterSettings.WeixinCertPath, masterSettings.WeixinCertPassword);
                    if (redpackInfo != null)
                    {
                        redPackStatus redPackStatus = redpackInfo.Getstatus();
                        if (redPackStatus == redPackStatus.已退款 || redPackStatus == redPackStatus.发放失败)
                        {
                            int num = int.Parse(dataRow["SerialID"].ToString());
                            Globals.Debuglog(string.Concat(new object[]
                            {
                                "BalanceDrawRequest-",
                                num,
                                ":",
                                redpackInfo.ToString()
                            }), "RedPackCheck.txt");
                            decimal d      = decimal.Parse(dataRow["Amount"].ToString());
                            int     userId = int.Parse(dataRow["UserId"].ToString());
                            distributorsDao.UpdateBalanceDistributors(userId, -1m * d);
                            distributorsDao.UpdateRedPackStatus(num, "红包" + redPackStatus.ToString(), null);
                        }
                    }
                }
            }
            query = "select UserId,Id,RedpackId,Amount from Hishop_MemberAmountRequest WHERE State=2 AND RequestType=3 AND CheckTime>=@CheckTime";
            AmountDao amountDao = new AmountDao();

            sqlStringCommand = this.database.GetSqlStringCommand(query);
            this.database.AddInParameter(sqlStringCommand, "CheckTime", System.Data.DbType.DateTime, dateTime);
            using (System.Data.IDataReader dataReader = this.database.ExecuteReader(sqlStringCommand))
            {
                dataTable = DataHelper.ConverDataReaderToDataTable(dataReader);
            }
            if (dataTable != null && dataTable.Rows.Count > 0)
            {
                foreach (System.Data.DataRow dataRow in dataTable.Rows)
                {
                    string      mch_billno  = dataRow["RedpackId"].ToString();
                    RedPackInfo redpackInfo = redPackClient.GetRedpackInfo(masterSettings.WeixinAppId, masterSettings.WeixinPartnerID, mch_billno, masterSettings.WeixinPartnerKey, masterSettings.WeixinCertPath, masterSettings.WeixinCertPassword);
                    if (redpackInfo != null)
                    {
                        redPackStatus redPackStatus = redpackInfo.Getstatus();
                        if (redPackStatus == redPackStatus.已退款 || redPackStatus == redPackStatus.发放失败)
                        {
                            int num = int.Parse(dataRow["Id"].ToString());
                            Globals.Debuglog(string.Concat(new object[]
                            {
                                "MemberAmountRequest-",
                                num,
                                ":",
                                redpackInfo.ToString()
                            }), "RedPackCheck.txt");
                            decimal d      = decimal.Parse(dataRow["Amount"].ToString());
                            int     userId = int.Parse(dataRow["UserId"].ToString());
                            amountDao.SetAmountRequestStatus(new int[]
                            {
                                num
                            }, 3, "红包" + redPackStatus.ToString(), "", "SYSJOB");
                        }
                    }
                }
            }
        }