diff --git a/B3WeChat/BO/ScanLoginRequest.cs b/B3WeChat/BO/ScanLoginRequest.cs index bc19656..67cafdf 100644 --- a/B3WeChat/BO/ScanLoginRequest.cs +++ b/B3WeChat/BO/ScanLoginRequest.cs @@ -26,5 +26,7 @@ namespace BWP.B3WeChat.BO public bool Confirmed { get; set; } public string CustomerUsername { get; set; } + + public string VerifyCode { get; set; } } } diff --git a/B3WeChat/Rpcs/ClientRpc.cs b/B3WeChat/Rpcs/ClientRpc.cs index dd3baeb..aa98b1e 100644 --- a/B3WeChat/Rpcs/ClientRpc.cs +++ b/B3WeChat/Rpcs/ClientRpc.cs @@ -3,6 +3,7 @@ using Bwp.MainSystem.BO; using BWP.B3WeChat.BO; using BWP.B3WeChat.BO.NamedValueTemplate; using BWP.B3WeChat.Utils; +using BWP.Web.Utils; using Forks.EnterpriseServices.BusinessInterfaces; using Forks.EnterpriseServices.DomainObjects2; using Forks.EnterpriseServices.DomainObjects2.DQuery; @@ -154,6 +155,65 @@ namespace BWP.B3WeChat.Rpcs } + /// + /// 请求登录验证码 + /// + /// + /// + [Rpc(RpcFlags.SkipAuth)] + public static void SendLoginVerifyCode(long requestID,string username) + { + var request = WebBLUtil.GetSingleDmo(new Tuple("ID", requestID)); + + if (request == null || request.Confirmed) + { + throw new Exception("请求已失效"); + } + + var openID = WebBLUtil.GetDmoProperty("OpenID", + new Tuple("CustomerCode", request.CustomerCode), + new Tuple("CustomerUsername", username)); + + if (string.IsNullOrEmpty(openID)) + { + throw new Exception("未能发现匹配的用户"); + } + + request.VerifyCode = StringUtil.CreateRandomString("0123456789", 6); + + using (var context = new TransactionContext()) + { + context.Session.Update(request); + context.Commit(); + } + + SendMessageUtil.SendSystemMessage(openID, request.CustomerUsername, "您请求登录系统的验证码是:" + request.VerifyCode); + + } + + [Rpc(RpcFlags.SkipAuth)] + public static void VerifyCodeLogin(long requestID, string username, string verifyCode) + { + var request = WebBLUtil.GetSingleDmo(new Tuple("ID", requestID)); + + if (request == null || request.Confirmed) + { + throw new Exception("请求已失效"); + } + + if (request.VerifyCode == verifyCode) + { + request.Confirmed = true; + + using (var context = new TransactionContext()) + { + context.Session.Update(request); + context.Commit(); + } + + } + } + /// /// 浏览器查询是否已扫码登录 ///