Пример #1
0
        public OutputData DoAction(IInputData input)
        {
            if (!input.IsPost)
            {
                int    appId     = input.QueryString["AppId"].Value <int>();
                string returnStr = WeCorpUtil.VerifyURL(appId,
                                                        input.QueryString[QueryStringConst.QS_MSG_SIGNATURE],
                                                        input.QueryString[QueryStringConst.QS_TIMESTAMP],
                                                        input.QueryString[QueryStringConst.QS_NONCE],
                                                        input.QueryString[QueryStringConst.QS_ECHO_STR]);
                if (!string.IsNullOrEmpty(returnStr))
                {
                    return(OutputData.Create(returnStr));
                }
                return(OutputData.Create("验名错误"));
            }
            else
            {
                if (input.PostObject == null)
                {
                    return(OutputData.Create(string.Empty));
                }

                ReceiveMessage     message = input.PostObject.Convert <ReceiveMessage>();
                BaseSendMessage    result  = WeixinToolkitSettings.Current.CorpReply(message);
                EncodeReplyMessage reply;
                if (result != null)
                {
                    reply = WeCorpUtil.EncryptMsg(message.AgentId, result.ToXml(),
                                                  input.QueryString[QueryStringConst.QS_TIMESTAMP],
                                                  input.QueryString[QueryStringConst.QS_NONCE]);
                }
                else
                {
                    reply = null;
                }

                WeixinToolkitSettings.Current.Log(message);

                if (result != null)
                {
                    return(OutputData.CreateToolkitObject(reply));
                }
                else
                {
                    return(OutputData.Create(string.Empty));
                }
            }
        }
Пример #2
0
        public static string DecryptMsg(EncodeReceiveMessage message, string msgSignature,
                                        string timeStamp, string nonce)
        {
            string encryptMsg = message.Encrypt;

            var setting = WeixinSettings.Current;

            //verify signature
            if (WeCorpUtil.VerifySignature(setting.Token, timeStamp, nonce, encryptMsg, msgSignature))
            {
                string appId;
                string sMsg = Cryptography.AesDecrypt(encryptMsg, setting.EncodingAESKey, out appId);
                return(sMsg);
            }
            return(null);
        }
Пример #3
0
        private static JsAccessToken CreateToken()
        {
            string url;

            if (WeixinSettings.Current.Mode == WeixinMode.Normal)
            {
                url = WeUtil.GetUrl(WeConst.JS_TICKET);
            }
            else
            {
                url = WeCorpUtil.GetCorpUrl(WeCorpConst.JS_TICKET, WeixinSettings.Current.CorpUserManagerSecret);
            }
            JsAccessToken token = ReadToken(url, WeConst.JS_MODE, new JsAccessToken());

            SaveToken(token);
            return(token);
        }