/// <summary> /// 优惠券接口(同步方法) /// 算法 /// 1:key-value 降序排列(a-z) /// 2:对value url编码 /// 3:value url编码结果小写全部转换为大写 /// 4:url参数+key MD5 32加密生成sign作为参数 /// </summary> /// <param name="memberOrder"></param> /// <param name="doPost"></param> public static string ConfirmMemberOrder(ConfirmMemberOrder memberOrder) { using (var client = new HttpClient()) { var url = ConfigHelper.GetAppConfig("MemberOrderConfirm"); var paramaters = new List <KeyValuePair <string, string> >(); paramaters.Add(new KeyValuePair <string, string>("appid", 1002.ToString())); paramaters.Add(new KeyValuePair <string, string>("product_fee", memberOrder.product_fee.ToString())); paramaters.Add(new KeyValuePair <string, string>("products", Newtonsoft.Json.JsonConvert.SerializeObject(memberOrder.products))); paramaters.Add(new KeyValuePair <string, string>("shop_name", memberOrder.shop_name)); paramaters.Add(new KeyValuePair <string, string>("shop_sn", memberOrder.shop_sn)); paramaters.Add(new KeyValuePair <string, string>("uid", memberOrder.uid.ToString())); paramaters = paramaters.OrderBy(item => item.Key).ToList(); var paramString = string.Empty; paramaters.ForEach(item => { paramString += $"{item.Key}={Ingpal.BusinessStore.Infrastructure.Encodetool.UrlEncode((item.Value??""))}&"; }); int pos = paramString.LastIndexOf("&"); paramString = paramString.Remove(pos); var urlString = paramString.Trim() + $"6196248fb93d30b7de7553749857300c"; var sign = Encodetool.Md5_32(urlString); paramString += $"&sign={sign}"; Task <HttpResponseMessage> resonse = client.GetAsync(url + paramString); var resString = resonse.Result.Content.ReadAsStringAsync().GetAwaiter().GetResult(); return(resString); } }
public async static void ConfirmMemberOrder(ConfirmMemberOrder memberOrder, Func <string, bool> doPost) { using (var client = new HttpClient()) { var url = $"http://test-api-store-park.ptdev.cn/cash/order/confirm?"; var param = $"uid={ memberOrder.uid.ToString()}"; param += $"&appid={1002}"; param += $"&product_fee ={memberOrder.product_fee.ToString()}"; param += $"&products ={Newtonsoft.Json.JsonConvert.SerializeObject(memberOrder.products)}"; param += $"&shop_sn ={memberOrder.shop_sn}"; param += $"&shop_name ={memberOrder.shop_name}"; param += $"&sign_key =6196248fb93d30b7de7553749857300c"; // param += ConfigHelper.GetAppConfig("Secretkey"); //param += Encodetool.Md5_32(param); HttpResponseMessage resonse = await client.GetAsync(url + param); var resString = await resonse.Content.ReadAsStringAsync(); doPost(resString); } }