//Public Method SendSMS
    public string SendSMS(string mobileno, string message)
    {
        if (CheckConnection())
        {
            try
            {
                SmsClient.ServerAddress = ServerAddress;
                SmsClient.Port = Convert.ToInt32(ServerPort);
                SmsClient.HttpProxy.ProxyMode = HttpProxyMode.AutoDetect;
                //SmsClient.HttpProxy.Host = ProxyAddress;
                //SmsClient.HttpProxy.Port = Convert.ToInt32(ProxyPort);

                SmsClient sms = new SmsClient(Username, Password);
                try
                {
                    SendMessageResult result = sms.SendMessage(mobileno, message);
                    return result.TaskId + "|" + result.MessageId;
                }
                catch (Exception ex)
                {
                    return ex.Message;
                }
            }
            catch (Exception ex)
            {
                return ex.Message;
            }
        }
        else
        {
            return "Error";
        }
    }
    //Public Method SendSMS
    public string SendSMS(string mobileno, string message)
    {
        if (CheckConnection())
        {
            try
            {
                SmsClient.ServerAddress       = ServerAddress;
                SmsClient.Port                = Convert.ToInt32(ServerPort);
                SmsClient.HttpProxy.ProxyMode = HttpProxyMode.AutoDetect;
                //SmsClient.HttpProxy.Host = ProxyAddress;
                //SmsClient.HttpProxy.Port = Convert.ToInt32(ProxyPort);

                SmsClient sms = new SmsClient(Username, Password);
                try
                {
                    SendMessageResult result = sms.SendMessage(mobileno, message);
                    return(result.TaskId + "|" + result.MessageId);
                }
                catch (Exception ex)
                {
                    return(ex.Message);
                }
            }
            catch (Exception ex)
            {
                return(ex.Message);
            }
        }
        else
        {
            return("Error");
        }
    }
Beispiel #3
0
        protected void DoAfterPay(TuanDai.Payment.ResultNotify resultNotify)
        {
            if (resultNotify.IsSuccess)
            {
                AccountRechareInfo accountRechare = getAccountRechare(resultNotify.OutTradeNo);
                if (accountRechare != null)
                {
                    //调用第三方渠道
                    try
                    {
                        TuanDai.PortalSystem.BLL.ThirdPartyChannel.RechargeCallBack(accountRechare.Id, accountRechare.UserId);
                    }
                    catch (Exception ex)
                    {
                        new TuanDai.LogSystem.LogClient.LogClients().WriteErrorLog(
                            "TuanDai.PortalSystem.BLL.ThirdPartyChannel.RechargeCallBack",
                            "", "", ex.Message);
                    }

                    UserBasicInfoInfo userBasicInfo = new UserBLL().GetUserBasicInfoModelById(accountRechare.UserId);
                    if (userBasicInfo != null)
                    {
                        var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                        if (isNewSmsRequest == "0")
                        {
                            var parameters = new Dictionary<string, object>();
                            parameters.Add("CurrentDate", DateTime.Now);
                            parameters.Add("RechargeMoney", resultNotify.TradeMoney);
                            parameters.Add("User", userBasicInfo);
                            parameters.Add("Host", GlobalUtils.WebURL);

                            var msgSender = new BusinessDll.MessageSend();
                            msgSender.SendMessage2(eventCode: MessageTemplates.RechargeSuccess, parameters: parameters,
                                mobile: userBasicInfo.TelNo, email: userBasicInfo.Email, userId: userBasicInfo.Id);
                        }
                        else
                        {
                            SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                            rechargeSuccessSmsRequest.EventCode = MsgTemplatesType.RechargeSuccess;
                            rechargeSuccessSmsRequest.PlatformSource = PlatformSource.Pc;
                            rechargeSuccessSmsRequest.UserId = userBasicInfo.Id;
                            rechargeSuccessSmsRequest.EmailAddress = userBasicInfo.Email;
                            rechargeSuccessSmsRequest.Mobile = userBasicInfo.TelNo;
                            rechargeSuccessSmsRequest.Parameters = new Dictionary<string, object>();
                            rechargeSuccessSmsRequest.Parameters.Add("RechargeMoney", resultNotify.TradeMoney);

                            string errorMessage = string.Empty;
                            SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                        }
                    }
                }
            }
        }
Beispiel #4
0
        /// <summary>
        /// 异步向所有投资者发送短信通知用户提前还款
        /// </summary>
        /// <param name="projectId"></param>
        private void DoSyncSendPhoneMsgToSubcribeUsers(Guid projectId)
        {
            var smsRequestPrepaymentRemind = new SmsRequest();

            smsRequestPrepaymentRemind.EventCode      = MsgTemplatesType.PrepaymentRemind;
            smsRequestPrepaymentRemind.PlatformSource = PlatformSource.WeiXin;
            smsRequestPrepaymentRemind.Parameters     = new Dictionary <string, object>();
            smsRequestPrepaymentRemind.Parameters.Add("ProjectId", projectId.ToString());
            string errorString = string.Empty;

            SmsClient.SendMessage(smsRequestPrepaymentRemind, ref errorString);

            if (!string.IsNullOrEmpty(errorString))
            {
                TuanDai.LogSystem.LogClient.LogClients.ErrorLog(TdConfig.ApplicationName,
                                                                "WXInvest/DoSyncSendPhoneMsgToSubcribeUsers",
                                                                JsonConvert.SerializeObject(smsRequestPrepaymentRemind), errorString);
            }
        }
Beispiel #5
0
        public static void SendMessageAsync(string AccountUsername, string AccountPassword, string mobileNo, string message, DateTime scheduleTime)
        {
            var smsClient = new SmsClient(AccountUsername, AccountPassword);

            var smsLog = new SmsLog
            {
                UserId = Current.User.Id,
                MobileNo = mobileNo,
                Message = message,
                SentTime = DateTime.Now,
                SmsStatus = SmsStatus.Sending,
                MessageId = "",
                TaskId = "",
                ErrorMsg = ""
            };
            smsLog.Id = (int)Current.DB.SmsLogs.Insert(smsLog);

            Task.Factory.StartNew(() =>
            {
                try
                {
                    SendMessageResult result;
                    if (scheduleTime == DateTime.MinValue)
                    {
                        result = smsClient.SendMessage(mobileNo, message);
                    }
                    else
                    {
                        result = smsClient.SendMessage(mobileNo, message, scheduleTime);
                    }
                    Current.DB.Execute(@"update SmsLogs
            set SmsStatus=@SmsStatus,
            MessageId=@MessageId,
            TaskId=@TaskId
            where Id = @id", new
                    {
                        SmsStatus = (int)SmsStatus.Success,
                        MessageId = result.MessageId,
                        TaskId = result.TaskId,
                        id = smsLog.Id
                    });
                }
                catch (GatewayException ge)
                {
                    Current.DB.Execute(@"update SmsLogs
            set SmsStatus=@SmsStatus,
            ErrorMsg=@ErrorMsg
            where Id = @id", new
                    {
                        SmsStatus = (int)SmsStatus.Error,
                        ErrorMsg = ge.Message,
                        id = smsLog.Id
                    });
                }
                catch (Exception ex)
                {
                    Current.DB.Execute(@"update SmsLogs
            set SmsStatus=@SmsStatus,
            ErrorMsg=@ErrorMsg
            where Id = @id", new
                    {
                        SmsStatus = (int)SmsStatus.Error,
                        ErrorMsg = ex.Message,
                        id = smsLog.Id
                    });
                }
            });
        }
Beispiel #6
0
        /// <summary>
        /// 新增银行卡简单绑定
        /// </summary>
        public void addsimplebankaccount()
        {
            Guid userid = WebUserAuth.UserId.Value;
            //UserBasicInfo basicmodel = db.UserBasicInfo.FirstOrDefault(p => p.Id == userid);
            var basicmodel = new UserBLL().GetUserBasicInfoModelById(userid);

            if (basicmodel == null)
            {
                PrintJson("-1", "用户不存在");
            }

            if (basicmodel.IsValidateIdentity != true || basicmodel.IsValidateMobile != true)
            {
                PrintJson("-10", "绑定银行卡前需完成身份证验证和手机验证");
            }

            if (!string.IsNullOrWhiteSpace(basicmodel.BankAccountNo))
            {
                PrintJson("-4", "最多添加1张银行卡");
            }
            int userBankCount = 0;
            //using (SqlConnection connection = PubConstant.CrateReadConnection())
            //{
            string            strSqlBank = @"SELECT Count(0) FROM UserBankInfo WITH(NOLOCK) WHERE UserId = @userId";
            DynamicParameters paramBank  = new Dapper.DynamicParameters();

            paramBank.Add("@userId", basicmodel.Id);
            userBankCount = TuanDai.DB.TuanDaiDB.QueryFirstOrDefault <int>(TdConfig.DBRead, strSqlBank, ref paramBank);
            //    userBankCount = connection.Query<int>(strSqlBank, paramBank).FirstOrDefault();
            //    connection.Close();
            //    connection.Dispose();
            //}

            if (userBankCount >= 1)
            {
                PrintJson("-4", "最多添加1张银行卡");
            }

            bool   status   = !string.IsNullOrEmpty(basicmodel.BankAccountNo) ? false : true;
            string account  = Context.Request["account"];
            int    bankType = Tool.SafeConvert.ToInt32(Context.Request["bankType"]);
            Regex  reg      = new Regex("^[\u4e00-\u9fa5]+$");

            //if (bankType == 9999)
            //{
            //    PrintJson("-2", "对不起!系统暂不支持该银行");
            //}

            if (!string.IsNullOrWhiteSpace(account))
            {
                account = account.Replace(" ", "");
            }

            Regex numreg = new Regex("^[0-9]*$");

            if (!numreg.IsMatch(account))
            {
                PrintJson("-5", "银行卡号输入有误");
            }

            //UserBasicInfo bankUser = db.UserBasicInfo.FirstOrDefault(p => p.BankAccountNo == account && p.Id != userid);
            //var bankUser = new UserBLL().WXGetUserBasicInfo(" BankAccountNo = @BankAccountNo and Id <>@Id",
            //    new SqlParameter[]
            //    {
            //        new SqlParameter("@BankAccountNo", account), new SqlParameter("@Id", userid)
            //    });
            if (BankNoExists(account, userid))
            {
                PrintJson("-3", "新的银行账号已经绑定另一用户,不能再绑定。");
            }

            basicmodel.BankAccountNo = account;
            basicmodel.BankType      = bankType;

            int iAuthenState = -1;   //-1代表不更新该字段

            if (basicmodel.IsValidateEmail && basicmodel.IsValidateIdentity && basicmodel.IsValidateMobile && basicmodel.IsSafeQuestion)
            {
                iAuthenState = 4;
            }
            int iResult = 0;
            //using (SqlConnection connection = PubConstant.CrateConnection())
            //{
            string            strSql = @"BEGIN TRANSACTION
                                DECLARE @errorSum INT
                                SET @errorSum = 0
                                if not exists(select 1 from UserBankInfo where UserId=@userId)
                                begin
                                    INSERT INTO UserBankInfo(UserId,BankNo,BankType) VALUES(@userId, @bankNo, @bankType)
                                end
                                SET @errorSum  = @errorSum + @@error
                                INSERT INTO BankInfoLog([Id],[UserId],[BankNo],[RealName],[AddDate],[type],[UpdateUserId],[CardNo])
                                VALUES(NEWID(), @userId, @bankNo, @realName, @addDate, @type, @updateUserId, @cardNo)
                                SET @errorSum  = @errorSum + @@error
                                IF(@AuthenState = 4)
                                BEGIN
                                UPDATE UserBasicInfo SET AuthenState = 4 WHERE ID = @userId
                                SET @errorSum  = @errorSum + @@error
                                END
                                IF(@errorSum = 0)
                                BEGIN
                                COMMIT TRANSACTION
                                END
                                ELSE
                                BEGIN
                                ROLLBACK TRANSACTION
                                END";
            DynamicParameters param  = new Dapper.DynamicParameters();

            param.Add("@userId", basicmodel.Id);
            param.Add("@bankNo", account);
            param.Add("@bankType", bankType);
            param.Add("@realName", basicmodel.RealName);
            param.Add("@addDate", DateTime.Now);
            param.Add("@type", 1);
            param.Add("@updateUserId", basicmodel.Id);
            param.Add("@cardNo", basicmodel.IdentityCard);
            param.Add("@AuthenState", iAuthenState);
            iResult = TuanDai.DB.TuanDaiDB.Execute(TdConfig.DBUserWrite, strSql, ref param);
            //    iResult = connection.Execute(strSql, param);
            //}
            string updateUserbasicinfoBank = "UPDATE dbo.UserBasicInfo SET BankAccountNo=@BankAccountNo,BankType=@BankType WHERE Id=@Id";
            var    userbasicinfoBankParam  = new Dapper.DynamicParameters();

            userbasicinfoBankParam.Add("@Id", basicmodel.Id);
            userbasicinfoBankParam.Add("@BankAccountNo", account);
            userbasicinfoBankParam.Add("@BankType", bankType);
            TuanDai.DB.TuanDaiDB.Execute(TdConfig.DBUserWrite, updateUserbasicinfoBank, ref userbasicinfoBankParam);
            if (iResult > 0)
            {
                if (status)
                {
                    TuanDai.PortalSystem.BLL.VipGetWorthBLL.AddGetWorth(userid, (int)ConstString.UserGrowthType.BindBankCard, null, 0);
                }
                WebLog log = new WebLog();
                log.AddDate        = DateTime.Now;
                log.BusinessId     = userid.ToString();
                log.BusinessTypeId = (int)ConstString.LogBusinessType.Add;
                log.UserId         = userid.ToString();
                log.UserTypeId     = (int)ConstString.LogUserType.WebUser;
                log.HandlerTypeId  = (int)ConstString.LogType.BankAccount;
                log.Content1       = "新增银行卡绑定";
                log.Content2       = "银行账号为:" + account;
                log.Content5       = "银行类型:" + bankType.ToString();
                log.Id             = Guid.NewGuid().ToString();
                WebLogInfo.WriteLoginHandler(log);

                #region 发送通知消息

                var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                if (isNewSmsRequest == "0")
                {
                    MessageSend ms  = new MessageSend();
                    var         dic = new Dictionary <string, object>();
                    dic.Add("UserName", basicmodel.RealName);
                    dic.Add("CurrentDate", DateTime.Now);
                    ms.SendMessage2(eventCode: MessageTemplates.ModifyBankAccount, parameters: dic,
                                    mobile: basicmodel.TelNo, email: basicmodel.Email, userId: basicmodel.Id);
                }
                else
                {
                    SmsRequest modifyBankAccountSuccess = new SmsRequest();
                    modifyBankAccountSuccess.EventCode      = MsgTemplatesType.ModifyBankAccountSuccess;
                    modifyBankAccountSuccess.PlatformSource = PlatformSource.WeiXin;
                    modifyBankAccountSuccess.UserId         = userid;
                    modifyBankAccountSuccess.Mobile         = basicmodel.TelNo;
                    modifyBankAccountSuccess.EmailAddress   = basicmodel.Email;
                    modifyBankAccountSuccess.Parameters     = new Dictionary <string, object>();
                    modifyBankAccountSuccess.Parameters.Add("ApplyDate", DateTime.Now);

                    string errorMessage = string.Empty;
                    SmsClient.SendMessage(modifyBankAccountSuccess, ref errorMessage);
                }


                #endregion

                var startDate = DateTime.Parse("2015-04-30 10:00:00");
                if (!string.IsNullOrEmpty(basicmodel.ExtenderKey))
                {
                    var extenderKey = basicmodel.ExtenderKey;
                    //var invitedUsers = db.UserBasicInfo.Where(x =>
                    //    x.ExtenderKey == extenderKey &&
                    //    x.IsValidateIdentity &&
                    //    x.BankAccountNo != null &&
                    //    x.AddDate >= startDate).Count();
                    var invitedUsers = GetInvitedUserCount(extenderKey, startDate);

                    //这种方式查询较慢,先注释掉.
                    //邀请人每邀请五个实名且绑定银行卡的用户可获得1个月VIP超级会员
                    //第101位客户开始不奖励
                    //if (invitedUsers >= 5 && invitedUsers <= 100 && (invitedUsers % 5 == 0))
                    //{
                    //    //var user = db.UserBasicInfo.FirstOrDefault(x => x.ExtendKey == extenderKey);
                    //    //var user = new UserBLL().WXGetUserBasicInfo(" ExtendKey=@ExtendKey",
                    //    //    new SqlParameter[] { new SqlParameter("@ExtendKey",extenderKey) });
                    //    var user = new UserBLL().GetUserBasicInfoByExtendKey(extenderKey);
                    //    if (user != null)
                    //    {
                    //        //var parameters = new ObjectParameter("outStatus", 0);
                    //        //db.p_GiveMember(user.Id, 0, "邀请好友注册赢VIP超级会员", 1, null, parameters);
                    //        var para = new Dapper.DynamicParameters();
                    //        para.Add("@userid", user.Id);
                    //        para.Add("@type", 0);
                    //        para.Add("@desc", "邀请好友注册赢VIP超级会员");
                    //        para.Add("@months", 1);
                    //        para.Add("@handlerUserId", null);
                    //        para.Add("@outStatus", 0, DbType.Int32, ParameterDirection.Output);
                    //        PublicConn.ExecuteTD(PublicConn.DBWriteType.UserWrite, "p_GiveMember", ref para);
                    //    }
                    //}
                }

                PrintJson("1", "操作成功");
            }
            else
            {
                PrintJson("0", "操作失败");
            }
        }
Beispiel #7
0
        protected void Page_Load(object sender, EventArgs e)
        {
            TuanDai.Payment.Log.Info(this.GetType().ToString(), "开始易宝回调");
            string callback_result = "";

            try
            {
                if (Request["data"] == null || Request["encryptkey"] == null)
                {
                    TuanDai.Payment.Log.Info(this.GetType().ToString(), "参数不正确");
                    Response.Write("参数不正确!");
                    Response.End();
                }

                TuanDai.Payment.Log.Info(this.GetType().ToString(), "易宝回调加密参数:" + Request["data"] + ",密钥:" + Request["encryptkey"]);
                //商户注意:接收到易宝的回调信息后一定要回写success用以保证握手成功!

                string data       = Request["data"];       //回调中的参数data
                string encryptkey = Request["encryptkey"]; //回调中的参数encryptkey
                callback_result = YJPayUtil.checkYbCallbackResult(data, encryptkey);
                var resultData = JsonConvert.DeserializeObject <SortedDictionary <string, string> >(callback_result);
                TuanDai.Payment.Log.Info(this.GetType().ToString(), "The Pay result is Values  : " + callback_result);

                if (resultData == null || resultData.ContainsKey("error_msg"))
                {
                    Response.Write("参数不正确!");
                    Response.End();
                }

                var status         = resultData["status"].ToString();
                var rechargeMoney  = resultData["amount"].ToString();
                var out_trade_no   = resultData["orderid"].ToString();
                var transaction_id = resultData["yborderid"].ToString();

                string            strSQL   = "p_OnLineRechargeHandler";
                DynamicParameters dyParams = new DynamicParameters();
                dyParams.Add("@orderno", out_trade_no);
                dyParams.Add("@MediumMoney", decimal.Parse(rechargeMoney) / 100);
                dyParams.Add("@MediumOrderNo", transaction_id);
                dyParams.Add("@outStatus", 0, DbType.Int32, ParameterDirection.Output, 20);
                if (status == "1")
                {
                    dyParams.Add("@handlerStatus", 2);
                }
                else
                {
                    dyParams.Add("@handlerStatus", 1);
                }
                PublicConn.ExecuteTD(PublicConn.DBWriteType.FundWrite, strSQL, ref dyParams, CommandType.StoredProcedure);

                int result = dyParams.Get <int>("@outStatus");
                if (result == 1)
                {
                    AccountRechareInfo accountRechare = getAccountRechare(out_trade_no);
                    if (accountRechare != null)
                    {
                        //List<int> typeList = new List<int>() { 2, 3, 4, 6, 8,9,11, 12 };
                        //if (db.AccountRechare.Count(p => p.UserId == accountRechare.UserId && p.Status == 2 && typeList.Contains(p.type)) == 1)
                        //{
                        //    TuanDai.PortalSystem.BLL.VipGetWorthBLL.AddGetWorth(accountRechare.UserId, (int)ConstString.UserGrowthType.FirstReCharge, null, 0);
                        //}

                        TuanDai.PortalSystem.BLL.UserBLL bll = new TuanDai.PortalSystem.BLL.UserBLL();
                        UserBasicInfoInfo userBasicInfo      = bll.GetUserBasicInfoModelById(accountRechare.UserId);
                        if (userBasicInfo != null)
                        {
                            var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                            if (isNewSmsRequest == "0")
                            {
                                var parameters = new Dictionary <string, object>();
                                parameters.Add("User", userBasicInfo);
                                parameters.Add("CurrentDate", DateTime.Now);
                                parameters.Add("RechargeMoney", rechargeMoney);
                                parameters.Add("Host", GlobalUtils.WebURL);

                                var messageSender = new BusinessDll.MessageSend();
                                messageSender.SendMessage2(eventCode: MessageTemplates.RechargeSuccess, parameters: parameters,
                                                           mobile: userBasicInfo.TelNo, email: userBasicInfo.Email, userId: userBasicInfo.Id);
                            }
                            else
                            {
                                SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                                rechargeSuccessSmsRequest.EventCode      = MsgTemplatesType.RechargeSuccess;
                                rechargeSuccessSmsRequest.PlatformSource = PlatformSource.Pc;
                                rechargeSuccessSmsRequest.UserId         = userBasicInfo.Id;
                                rechargeSuccessSmsRequest.EmailAddress   = userBasicInfo.Email;
                                rechargeSuccessSmsRequest.Mobile         = userBasicInfo.TelNo;
                                rechargeSuccessSmsRequest.Parameters     = new Dictionary <string, object>();
                                rechargeSuccessSmsRequest.Parameters.Add("RechargeMoney", rechargeMoney);

                                string errorMessage = string.Empty;
                                SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                            }
                        }
                    }
                }

                //NetLog.WriteBatchwithdrawHandler("交易成功", string.Concat("签名:", sPara["sign"].ToString(), "签名方式:", sPara["sign_type"].ToString(), "我方处理状态:", result.ToString().Trim(), "连连处理状态:", sPara["result_pay"].ToString()));
                Response.Write(@"SUCCESS");
                Response.End();

                //SoftLog.LogStr("支付成功回调信息:" + callback_result, "yeepay/CallbackLog");
            }
            catch (Exception err)
            {
                TuanDai.Payment.Log.Info(this.GetType().ToString(), "支付失败:" + err.ToString() + "," + Request["data"] + Environment.NewLine + Request["encryptkey"] + "处理结果:" + callback_result);
                //SoftLog.LogStr("支付失败:" + err.ToString() + "," + Request["data"] + Environment.NewLine + Request["encryptkey"] + "处理结果:" + callback_result, "yeepay/CallbackLog");
                Response.Write("支付失败!");
                Response.End();
            }
            finally
            {
                //SoftLog.LogStr("支付回调信息" + Request["data"] + Environment.NewLine + Request["encryptkey"] + "处理结果:" + callback_result, "yeepay/CallbackLog");
            }
        }
Beispiel #8
0
        private string UserInsertByPhone(string phone)
        {
            string pwd = new UserBLL().GetRandomPassword(8);//随机密码

            if (!phone.IsPhone())
            {
                return("手机号码格式不正确");
            }

            string strIp = Tool.WebFormHandler.GetIP();

            string[] ips    = strIp.Split(',');
            string   realIp = ips.Length > 1 ? ips[1] : ips[0];
            string   result = Users.UserIsRegByIP(realIp);

            if (result != "1")
            {
                string dt = result.Split('|')[1];
                return("注册失败:为防止恶意注册,请在" + dt + "后重新注册");
            }

            Guid userid = Guid.NewGuid();
            //var model = WXRegister.AddUserInfo(userid, _app, pwd, phone, "", "",
            //    "", "", 0, realIp);


            string from = _app;

            if (!string.IsNullOrEmpty(_appUserId))
            {
                from += "_" + _appUserId;
            }
            #region 写用户信息
            UserRegisterInfo registerUser = new UserRegisterInfo();
            registerUser.Id             = userid;
            registerUser.ExtenderKey    = "";
            registerUser.UserName       = string.Format("{0}wx{1}", phone, DateTime.Now.ToString("yyMMdd")); //针对重复注册特殊处理
            registerUser.Pwd            = pwd;
            registerUser.Email          = string.Empty;
            registerUser.TelNo          = phone;
            registerUser.ThirdPartyId   = string.Empty;
            registerUser.ThirdPartyType = (int)ConstString.ThirdPartyType.TuandaiUser;
            registerUser.RegisterFrom   = from;
            registerUser.RegisterIP     = realIp;
            registerUser.OpenId         = GlobalUtils.OpenId;
            registerUser.NickName       = registerUser.UserName;
            string msg = string.Empty;
            var    userBasicInfoInfo = new UserBLL().RegiserUser(registerUser, ref msg);
            if (userBasicInfoInfo != null && !string.IsNullOrEmpty(userBasicInfoInfo.ExtenderKey))
            {
                //记录日志
                SysLogHelper.WriteErrorLog("会员推广_AddUserInfo", "UserName:" + userBasicInfoInfo.UserName + ";ExtendKey:" + userBasicInfoInfo.ExtenderKey);
            }
            #endregion

            if (userBasicInfoInfo != null)
            {
                RegisterUserHandler.AsyncAfterRegister(_app, userBasicInfoInfo);

                if ((userBasicInfoInfo.uStatus ?? 0) == 1)
                {
                    var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                    if (isNewSmsRequest == "0")
                    {
                        //改用新的发短信,邮件,系统消息
                        var messageSender = new MessageSend();
                        //var parameters = new Dictionary<string, object>();
                        //parameters.Add("User", model);
                        //parameters.Add("CurrentDate", DateTime.Now);
                        //parameters.Add("ExtenderKey", model.ExtenderKey);
                        //messageSender.SendMessage2(eventCode: MessageTemplates.RegisterSuccess, parameters: parameters, mobile: model.TelNo, email: model.Email, userId: model.Id);

                        //将生成的密码已短信方式发送给用户
                        var parameters = new Dictionary <string, object>();
                        parameters.Add("PassWord", pwd);
                        messageSender.SendMessage2(option: SendOption.Sms, eventCode: MessageTemplates.BindMobile,
                                                   parameters: parameters, mobile: userBasicInfoInfo.TelNo);
                    }
                    else
                    {
                        SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                        rechargeSuccessSmsRequest.EventCode      = MsgTemplatesType.BindMobile;
                        rechargeSuccessSmsRequest.PlatformSource = PlatformSource.WeiXin;
                        rechargeSuccessSmsRequest.UserId         = userBasicInfoInfo.Id;
                        rechargeSuccessSmsRequest.EmailAddress   = userBasicInfoInfo.Email;
                        rechargeSuccessSmsRequest.Mobile         = userBasicInfoInfo.TelNo;
                        rechargeSuccessSmsRequest.Parameters     = new Dictionary <string, object>();
                        rechargeSuccessSmsRequest.Parameters.Add("PassWord", pwd);

                        string errorMessage = string.Empty;
                        SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                    }

                    try
                    {
                        TuanDai.InfoSystem.Model.LoginLog loginLogEntity = new TuanDai.InfoSystem.Model.LoginLog();
                        loginLogEntity.Id         = Guid.NewGuid().ToString();
                        loginLogEntity.UserId     = userBasicInfoInfo.Id.ToString();
                        loginLogEntity.IpAddress  = Tool.WebFormHandler.GetIP();
                        loginLogEntity.LoginDate  = DateTime.Now;
                        loginLogEntity.DeviceType = "WeiXin";
                        loginLogEntity.DeviceName = _app + "自动注册登录";
                        //LoginLogService logApi = new LoginLogService();
                        //logApi.AddLoginLog(loginLogEntity);
                        TuanDai.WXApiWeb.SysLogHelper.AddLoginLog(loginLogEntity);
                    }
                    catch (Exception ex)
                    {
                        NetLog.WriteLoginHandler("写入注册成功登录日志出错", Tool.ExceptionHelper.GetExceptionMessage(ex));
                    }
                }

                #region 注册成功后自动登录

                if (GlobalUtils.IsWeiXinBrowser)
                {
                    string strOpenId = TuanDai.WXApiWeb.Common.WeiXinApi.GetUserWXOpenId(userBasicInfoInfo.Id);
                    if (strOpenId.IsNotEmpty())
                    {
                        GlobalUtils.WriteOpenIdToCookie(strOpenId.ToText());
                    }
                }
                WebUserAuth.SignIn(userid.ToString());

                #endregion
            }
            else
            {
                return("添加用户失败");
            }
            return(string.Empty);
        }
Beispiel #9
0
    protected void Page_Load(object sender, EventArgs e)
    {
        WebSettingInfo webSetting = new WebSettingBLL().GetWebSettingInfo("E27798C9-9301-4176-AC0B-6F3916F389EA");

        partnerConfig = new PartnerConfig(webSetting.Param1Value, webSetting.Param2Value, webSetting.Param3Value, webSetting.Param5Value);
        SortedDictionary <string, string> sPara = GetRequestPost();

        if (null == sPara)
        {
            Response.End();
        }

        if (sPara.Count > 0)//判断是否有带返回参数
        {
            NetLog.WriteBatchwithdrawHandler("接收连连支付异步通知数据", string.Concat("【", "签名:", sPara["sign"].ToString(), "签名方式:", sPara["sign_type"].ToString(), "我方订单号:", sPara["no_order"].ToString(), "充值金额:", sPara["money_order"].ToString(), "连连订单号:", sPara["oid_paybill"].ToString(), "】"));

            if (!PaymentUtil.CheckSign(sPara, partnerConfig.YTPublicKey, //验证失败
                                       partnerConfig.MD5Key))
            {
                var out_trade_no   = sPara["no_order"].ToString();
                var rechargeMoney  = sPara["money_order"].ToString();
                var transaction_id = sPara["oid_paybill"].ToString();

                //ObjectParameter outStatus = new ObjectParameter("outStatus", "0");
                //db.p_OnLineRechargeHandler(1, out_trade_no, decimal.Parse(rechargeMoney), transaction_id, outStatus);
                //int result = int.Parse(outStatus.Value.ToString());

                NetLog.WriteBatchwithdrawHandler("连连验签失败", string.Concat("签名:", sPara["sign"].ToString(), "签名方式:", sPara["sign_type"].ToString(), "连连处理状态:9999"));

                Response.Write(@"{""ret_code"":""9999"",""ret_msg"":""验签失败""}");
                Response.End();
            }
            else
            {
                var out_trade_no   = sPara["no_order"].ToString();
                var rechargeMoney  = sPara["money_order"].ToString();
                var transaction_id = sPara["oid_paybill"].ToString();

                string            strSQL   = "p_OnLineRechargeHandler";
                DynamicParameters dyParams = new DynamicParameters();
                dyParams.Add("@orderno", out_trade_no);
                dyParams.Add("@MediumMoney", decimal.Parse(rechargeMoney));
                dyParams.Add("@MediumOrderNo", transaction_id);
                dyParams.Add("@outStatus", 0, DbType.Int32, ParameterDirection.Output, 20);

                if (sPara["result_pay"].ToString().ToLower() == "success".ToLower())
                {
                    dyParams.Add("@handlerStatus", 2);
                }
                else
                {
                    dyParams.Add("@handlerStatus", 1);
                }
                PublicConn.ExecuteTD(PublicConn.DBWriteType.FundWrite, strSQL, ref dyParams, CommandType.StoredProcedure);
                int result = dyParams.Get <int>("@outStatus");

                AccountRechareInfo accountRechare = getAccountRechare(out_trade_no);
                if (accountRechare != null)
                {
                    var para = new DynamicParameters();
                    para.Add("@UserId", accountRechare.UserId);
                    var count = PublicConn.QuerySingleWrite <int>("select count(0) from AccountRechare with(nolock) where UserId=@UserId and Status =2   and type in (2, 3, 4, 6, 8, 12)", ref para);
                    if (count == 1)
                    {
                        TuanDai.PortalSystem.BLL.VipGetWorthBLL.AddGetWorth(accountRechare.UserId, (int)ConstString.UserGrowthType.FirstReCharge, null, 0);
                    }

                    UserBasicInfoInfo userBasicInfo = new UserBLL().GetUserBasicInfoModelById(accountRechare.UserId);
                    if (userBasicInfo != null)
                    {
                        var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                        if (isNewSmsRequest == "0")
                        {
                            var parameters = new Dictionary <string, object>();
                            parameters.Add("User", userBasicInfo);
                            parameters.Add("CurrentDate", DateTime.Now);
                            parameters.Add("RechargeMoney", rechargeMoney);
                            parameters.Add("Host", GlobalUtils.WebURL);

                            var messageSender = new BusinessDll.MessageSend();
                            messageSender.SendMessage2(eventCode: MessageTemplates.RechargeSuccess, parameters: parameters,
                                                       mobile: userBasicInfo.TelNo, email: userBasicInfo.Email, userId: userBasicInfo.Id);
                        }
                        else
                        {
                            SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                            rechargeSuccessSmsRequest.EventCode      = MsgTemplatesType.RechargeSuccess;
                            rechargeSuccessSmsRequest.PlatformSource = PlatformSource.Pc;
                            rechargeSuccessSmsRequest.UserId         = userBasicInfo.Id;
                            rechargeSuccessSmsRequest.EmailAddress   = userBasicInfo.Email;
                            rechargeSuccessSmsRequest.Mobile         = userBasicInfo.TelNo;
                            rechargeSuccessSmsRequest.Parameters     = new Dictionary <string, object>();
                            rechargeSuccessSmsRequest.Parameters.Add("RechargeMoney", rechargeMoney);

                            string errorMessage = string.Empty;
                            SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                        }



                        //第三方渠道回调
                        try
                        {
                            TuanDai.PortalSystem.BLL.ThirdPartyChannel.RechargeCallBack(accountRechare.Id, accountRechare.UserId);
                        }
                        catch (Exception ex)
                        {
                            new TuanDai.LogSystem.LogClient.LogClients().WriteErrorLog(
                                "TuanDai.PortalSystem.BLL.ThirdPartyChannel.RechargeCallBack",
                                "", "", ex.Message);
                        }
                    }
                }

                NetLog.WriteTraceLogHandler("交易成功", string.Concat("签名:", sPara["sign"].ToString(), "签名方式:", sPara["sign_type"].ToString(), "我方处理状态:", result.ToString().Trim(), "连连处理状态:", sPara["result_pay"].ToString()));
                Response.Write(@"{""ret_code"":""0000"",""ret_msg"":""交易成功""}");
                Response.End();
            }
        }
        else
        {
            //var out_trade_no = sPara["no_order"].ToString();
            //var rechargeMoney = sPara["money_order"].ToString();
            //var transaction_id = sPara["oid_paybill"].ToString();

            //ObjectParameter outStatus = new ObjectParameter("outStatus", "0");
            //db.p_OnLineRechargeHandler(1, out_trade_no, decimal.Parse(rechargeMoney), transaction_id, outStatus);
            ////Response.Write(@"{""ret_code"":""9999"",""ret_msg"":""验签失败""}");

            //int result = int.Parse(outStatus.Value.ToString());

            NetLog.WriteBatchwithdrawHandler("连连交易参数为空失败", "连连处理状态:9999");
            Response.Write(@"{""ret_code"":""9999"",""ret_msg"":""交易失败""}");
            Response.End();
        }

        // 解析异步通知对象
        // sPara 字典对象
        // TODO:更新订单,发货等后续处理
    }
Beispiel #10
0
        private void InitData()
        {
            try
            {
                WebSettingInfo webSetting = new WebSettingBLL().GetWebSettingInfo("fe5e5a30-b12c-4888-9858-12cbe80e1018");

                string MemberID       = Request.Params["MemberID"];          //商户号
                string TerminalID     = Request.Params["TerminalID"];        //商户终端号
                string TransID        = Request.Params["TransID"];           //商户流水号
                string Result         = Request.Params["Result"];            //支付结果(1:成功,0:失败)
                string ResultDesc     = Request.Params["ResultDesc"];        //支付结果描述
                string FactMoney      = Request.Params["FactMoney"];         //实际成交金额
                string AdditionalInfo = Request.Params["AdditionalInfo"];    //订单附加消息
                string SuccTime       = Request.Params["SuccTime"];          //交易成功时间
                string Md5Sign        = Request.Params["Md5Sign"].ToLower(); //md5签名
                string Md5Key         = "abcdefg";                           //webSetting.Param2Value;//ConfigurationManager.AppSettings["Md5key"];//密钥 双方约定
                String mark           = "~|~";                               //分隔符

                //string _Md5Key = "100000178";//测试商户号//webSetting.Param1Value;//WebConfigurationManager.AppSettings["Md5key"];

                string _WaitSign = "MemberID=" + MemberID + mark + "TerminalID=" + TerminalID + mark + "TransID=" + TransID + mark + "Result=" + Result + mark + "ResultDesc=" + ResultDesc + mark
                                   + "FactMoney=" + FactMoney + mark + "AdditionalInfo=" + AdditionalInfo + mark + "SuccTime=" + SuccTime
                                   + mark + "Md5Sign=" + Md5Key;

                SysLogHelper.WriteTraceLog("等待验签参数", _WaitSign);
                //验证签名成功
                if (Md5Sign.ToLower() == Md5Encrypt(_WaitSign).ToLower())
                {
                    ///支付结果(1:成功,0:失败)
                    DynamicParameters dyParams = new DynamicParameters();
                    string            strSQL   = "";
                    if (Result == "1")
                    {
                        strSQL   = "p_OnLineRechargeHandler";
                        dyParams = new DynamicParameters();
                        dyParams.Add("@handlerStatus", 2);
                        dyParams.Add("@MediumMoney", decimal.Divide(decimal.Parse(FactMoney), 100));
                        dyParams.Add("@MediumOrderNo", (TransID + SuccTime).Trim());
                        dyParams.Add("@outStatus", 0, DbType.Int32, ParameterDirection.Output, 20);

                        PublicConn.ExecuteTD(PublicConn.DBWriteType.FundWrite, strSQL, ref dyParams, CommandType.StoredProcedure);

                        int presult = dyParams.Get <int>("@outStatus");

                        SysLogHelper.WriteTraceLog("宝付支付交易成功", string.Concat("签名:", Md5Sign.ToLower(), "签名方式:", "MD5", "我方处理状态:", presult.ToString().Trim(), "宝付处理状态:", Result, "支付单号:", TransID));

                        AccountRechareInfo accountRechare = getAccountRechare(TransID);
                        if (accountRechare != null)
                        {
                            strSQL   = "select count(1) from AccountRechare where UserId=@userId and Status=2 and  [type] in(2, 3, 4, 6, 8, 12)";
                            dyParams = new DynamicParameters();
                            dyParams.Add("@userId", accountRechare.UserId);
                            int iCount = PublicConn.QuerySingleWrite <int>(strSQL, ref dyParams);
                            if (iCount > 0)
                            {
                                TuanDai.PortalSystem.BLL.VipGetWorthBLL.AddGetWorth(accountRechare.UserId, (int)ConstString.UserGrowthType.FirstReCharge, null, 0);
                            }
                            UserBasicInfoInfo userBasicInfo = new UserBLL().GetUserBasicInfoModelById(accountRechare.UserId);
                            if (userBasicInfo != null)
                            {
                                var isNewSmsRequest = ConfigHelper.getConfigString("IsNewSmsRequest", "0");
                                if (isNewSmsRequest == "0")
                                {
                                    var parameters = new Dictionary <string, object>();
                                    parameters.Add("CurrentDate", DateTime.Now);
                                    //parameters.Add("RechargeMoney", FactMoney);
                                    parameters.Add("RechargeMoney", decimal.Divide(decimal.Parse(FactMoney), 100));//宝付充值以分为单位
                                    parameters.Add("User", userBasicInfo);
                                    parameters.Add("Host", GlobalUtils.WebURL);

                                    var msgSender = new BusinessDll.MessageSend();
                                    msgSender.SendMessage2(eventCode: MessageTemplates.RechargeSuccess, parameters: parameters,
                                                           mobile: userBasicInfo.TelNo, email: userBasicInfo.Email, userId: userBasicInfo.Id);
                                }
                                else
                                {
                                    SmsRequest rechargeSuccessSmsRequest = new SmsRequest();
                                    rechargeSuccessSmsRequest.EventCode      = MsgTemplatesType.RechargeSuccess;
                                    rechargeSuccessSmsRequest.PlatformSource = PlatformSource.Pc;
                                    rechargeSuccessSmsRequest.UserId         = userBasicInfo.Id;
                                    rechargeSuccessSmsRequest.EmailAddress   = userBasicInfo.Email;
                                    rechargeSuccessSmsRequest.Mobile         = userBasicInfo.TelNo;
                                    rechargeSuccessSmsRequest.Parameters     = new Dictionary <string, object>();
                                    rechargeSuccessSmsRequest.Parameters.Add("RechargeMoney", FactMoney);

                                    string errorMessage = string.Empty;
                                    SmsClient.SendMessage(rechargeSuccessSmsRequest, ref errorMessage);
                                }
                            }
                        }
                        Response.Write("OK");
                        Response.End();
                    }

                    //if (Result == "0")
                    //{
                    //    db.p_OnLineRechargeHandler(1, TransID.Trim(), decimal.Divide(decimal.Parse(FactMoney), 100), (TransID + SuccTime).Trim(), outStatus);
                    //    int presult = int.Parse(outStatus.Value.ToString());
                    //    NetLog.WriteLoginHandler("宝付支付交易失败", string.Concat("签名:", Md5Sign.ToLower(), "签名方式:", "MD5", "我方处理状态:", presult.ToString().Trim(), "宝付处理状态:", Result, "支付单号:", TransID));

                    //    Response.Write("Fail");
                    //}
                }
                else
                {
                    SysLogHelper.WriteTraceLog("宝付验签失败", string.Concat("宝付返回签名:", Md5Sign.ToLower(), "等待验签", Md5Encrypt(_WaitSign).ToLower(), "签名方式:", "MD5", "宝付处理状态:", Result));
                    Response.Write("校验失败");
                    Response.End();
                }
            }
            catch (Exception ex)
            {
                SysLogHelper.WriteErrorLog("宝付支付失败", "错误详细信息:" + ex.Message + "|" + ex.StackTrace);
                Response.Write("Fail");
                Response.End();
            }
        }