Esempio n. 1
0
        public FuncResult VerifySignature()
        {
            IMerchant merchant = GetMerchant();

            if (merchant == null)
            {
                return(FuncResult.FailResult("无效商户号", 400));
            }
            AsciiSortedDictionary <object> dic = JsonSerializer.Deserializer <AsciiSortedDictionary <object> >(GetRequestOriginalString());

            dic.Remove(item => item.Key.Equals("sign", StringComparison.OrdinalIgnoreCase) || item.Value == null || string.IsNullOrEmpty(item.Value.ToString()));
            StringBuilder builder = new StringBuilder();

            dic.Aggregate(builder, (b, kv) => b.Append(kv.Key).Append("=").Append(kv.Value).Append("&"));
            builder.Remove(builder.Length - 1, 1);
            bool res = merchant.VerifySignature(builder.ToString(), GetRequestSignature());

            return(new FuncResult {
                Success = res, Message = "签名验证不正确", StatusCode = 2
            });
        }