예제 #1
0
        internal static EncodeReplyMessage EncodeReplyMessage(string timeStamp, string nonce,
                                                              string token, string raw)
        {
            string msgSigature = CreateSignature(token, timeStamp, nonce, raw);

            if (msgSigature == null)
            {
                return(null);
            }
            EncodeReplyMessage msg = new EncodeReplyMessage(raw, msgSigature, timeStamp, nonce);

            return(msg);
        }
예제 #2
0
        public OutputData DoAction(IInputData input)
        {
            if (!input.IsPost)
            {
                if (WeUtil.CheckSignature(input.QueryString[QueryStringConst.QS_SIGNATURE],
                                          input.QueryString[QueryStringConst.QS_TIMESTAMP],
                                          input.QueryString[QueryStringConst.QS_NONCE]))
                {
                    return(OutputData.Create(input.QueryString[QueryStringConst.QS_ECHO_STR]));
                }
                return(OutputData.Create("验名错误"));
            }
            else
            {
                ReceiveMessage  message = input.PostObject.Convert <ReceiveMessage>();
                BaseSendMessage result  = WeixinToolkitSettings.Current.NormalReply(message);
                WeixinToolkitSettings.Current.Log(message);

                if (result != null)
                {
                    string encodeType = input.QueryString[QueryStringConst.QS_ENCODE_TYPE]
                                        .Value <string>(QueryStringConst.NORMAL_MSG);
                    if (encodeType == QueryStringConst.NORMAL_MSG)
                    {
                        return(OutputData.CreateToolkitObject(result));
                    }
                    else
                    {
                        EncodeReplyMessage reply = WeUtil.EncryptMsg(result.ToXml(),
                                                                     input.QueryString[QueryStringConst.QS_TIMESTAMP],
                                                                     input.QueryString[QueryStringConst.QS_NONCE]);
                        return(OutputData.CreateToolkitObject(reply));
                    }
                }
                else
                {
                    return(OutputData.Create(string.Empty));
                }
            }
        }