using System.Text; using dodohold.core; namespace molilian.core { public partial class PddPoolCore { public static Dictionary GenerateSignature(PddPoolDTO account, Dictionary args) { if (args.ContainsKey("sign")) args.Remove("sign"); // 对参数进行ASCII升序排序 var sortedArgs = args.OrderBy(kv => kv.Key).ToDictionary(kv => kv.Key, kv => kv.Value); // 拼接排序后的参数 StringBuilder stringBuilder = new StringBuilder(); foreach (var kv in sortedArgs) { stringBuilder.Append(kv.Key).Append(kv.Value); } // 在头部和尾部分别拼接client_secret string signString = account.app_secret + stringBuilder.ToString() + account.app_secret; signString = signString.MD5(false, false); if (!args.TryAdd("sign", signString)) { args["sign"] = signString; } return args; } } }