/** * @生成签名,详见签名生成算法 * @return 签名, sign字段不参加签名 */ public string MakeSign(string AdminHotelid, int Hotelid, string signType = "MD5") { ////转url格式 //string str = ToUrl(); ////在string后加入API KEY //str += "&key=" + WxPayConfig.KEY(AdminHotelid, Hotelid); ////MD5加密 //var md5 = MD5.Create(); //var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); //var sb = new StringBuilder(); //foreach (byte b in bs) //{ // sb.Append(b.ToString("x2")); //} ////所有字符转为大写 //return sb.ToString().ToUpper(); //转url格式 string str = ToUrl(); //在string后加入API KEY str += "&key=" + WxPayConfig.KEY(AdminHotelid, Hotelid); if (signType == SIGN_TYPE_MD5) { var md5 = MD5.Create(); var bs = md5.ComputeHash(Encoding.UTF8.GetBytes(str)); var sb = new StringBuilder(); foreach (byte b in bs) { sb.Append(b.ToString("x2")); } //所有字符转为大写 return(sb.ToString().ToUpper()); } else if (signType == SIGN_TYPE_HMAC_SHA256) { return(CalcHMACSHA256Hash(str, WxPayConfig.KEY(AdminHotelid, Hotelid))); } else { throw new WxPayException("sign_type 不合法"); } }