public static TxProvider GetTxProvider(UserType userType, string userId, GetUserRegisterInfo cb = null) { if (String.IsNullOrEmpty(userId)) { throw new BusinessException("初始化TxProvider失败,userId不能为空"); } else { userId = userId.Trim(); } //当前默认为123456 var userPwd = "123456"; TxProvider p; if (TryGetTxProvider(userId, out p)) { return(p); } else { //看用户是否注册 if (UserIsExist(userId)) { return(BuildProvider(userId, userPwd)); } else { //注册 var regErrorReason = String.Empty; if (UserRegister(userType, userId, userPwd, cb, out regErrorReason)) { return(BuildProvider(userId, userPwd)); } else { throw new BusinessException($"{userId}注册失败。(原因:{regErrorReason})"); } } } }
private static bool UserRegister(UserType userType, string userId, string userPwd, GetUserRegisterInfo cb, out string regErrorReason) { regErrorReason = String.Empty; try { var param = new Dictionary <string, string>(); param.Add("userType", userType.ToString()); param.Add("userId", userId); param.Add("loginPwd", userPwd); if (cb != null) { var reginfo = cb.Invoke(userType, userId); if (reginfo == null) { throw new BusinessException("未能获取到注册信息,无法完成注册"); } param.Add("userName", reginfo.UserName); param.Add("sex", reginfo.Sex.ToString()); param.Add("faceUrl", reginfo.FaceUrl.NullDefault()); param.Add("extInfo", reginfo.ExtInfo.NullDefault()); } else { //如果不穿就自动生成一个名字 param.Add("userName", userId); param.Add("sex", "0"); param.Add("faceUrl", String.Empty); param.Add("extInfo", String.Empty); } return(Common.WebApiHelper.Post <bool>(GetIMApiServer() + "/user/register", param.AsHttpParams())); } catch (Exception ex) { regErrorReason = ex.Message; return(false); } }