/// <summary> /// 统一下单 /// </summary> public async Task <UnifiedOrderResult> UnifiedOrder(UnifiedOrderParam param) { var url = "https://api.mch.weixin.qq.com/pay/unifiedorder"; var dataDic = new SortedDictionary <string, object>(); dataDic.SetValue("appid", _wxOptions.WxAppId); //配置文件读取 dataDic.SetValue("mch_id", _wxOptions.MechId); //配置文件读取 dataDic.SetValue("nonce_str", WeChatPayUtility.GeneratorNonceStr()); dataDic.SetValue("body", _wxOptions.Body); //传入或者配置 dataDic.SetValue("out_trade_no", param.OutTradeNo ?? WeChatPayUtility.GeneratorNonceStr()); dataDic.SetValue("total_fee", param.TotalFee); //传入 dataDic.SetValue("spbill_create_ip", ""); // dataDic.SetValue("notify_url", _wxOptions.NotifyUrl); //配置读取 dataDic.SetValue("trade_type", param.TradeType); //传入 if (param.TradeType == "JSAPI") { dataDic.SetValue("OpenId", param.OpenId); } //可选参数 dataDic.SetValue("goods_tag", _wxOptions.GoodsTag); dataDic.SetValue("attach", _wxOptions.Attach); dataDic.SetValue("time_start", DateTime.Now.ToString("yyyyMMddHHmmss")); dataDic.SetValue("time_expire", DateTime.Now.AddMinutes(40).ToString("yyyyMMddHHmmss")); var sign = WeChatPayUtility.MakeSign(dataDic.ToUrlString(), _wxOptions.MechKey); dataDic.SetValue("sign", sign); var xml = dataDic.ToXml(); var result = await _aSampleHttpClient.PostAsync <UnifiedOrderResult>(url, xml, DeserializeType.XmlDeserialize); return(result); }
public async Task <RedPackResult> SendRedPackAsync(RedPackParam param) { var url = "https://api.mch.weixin.qq.com/mmpaymkttransfers/sendredpack"; var dataDic = new SortedDictionary <string, object>(); var wxConfig = _options.Value; dataDic.SetValue("nonce_str", WeChatPayUtility.GeneratorNonceStr()); //配置文件读取 dataDic.SetValue("mch_billno", param.MchBillno ?? WeChatPayUtility.GeneratorNonceStr()); dataDic.SetValue("mch_id", wxConfig.MechId); //传入或者配置 dataDic.SetValue("wxappid", wxConfig.WxAppId); dataDic.SetValue("send_name", param.SendName); //传入 dataDic.SetValue("re_openid", param.ReOpenId); // dataDic.SetValue("total_amount", param.TotalAmount); //配置读取 dataDic.SetValue("total_num", param.TotalNum); //传入 dataDic.SetValue("wishing", param.Wishing); //传入 dataDic.SetValue("client_ip", param.ClientIp); //传入 dataDic.SetValue("act_name", param.ActName); //传入 dataDic.SetValue("remark", param.Remark); //传入 dataDic.SetValue("scene_id", param.SceneId); //传入 dataDic.SetValue("risk_info", param.RiskInfo); //传入 var sign = WeChatPayUtility.MakeSign(dataDic.ToUrlString(), wxConfig.MechKey); dataDic.SetValue("sign", sign); var certPath = Path.Combine(AppDomain.CurrentDomain.BaseDirectory, wxConfig.CertPath); var cert = new X509Certificate2(certPath); var result = await _aSampleHttpClient.PostAsync <RedPackResult>(url, dataDic.ToXml(), DeserializeType.XmlDeserialize, cert); return(result); }
/// <summary> /// 创建菜单按钮 /// </summary> /// <param name="menuJsonStr"></param> /// <returns></returns> public async Task <HttpRequestResult> CreateMenuAsync(string menuJsonStr) { //获取微信令牌 var accessToken = await GetAccessTokenAsync(); //创建菜单 var createMenuUrl = $"https://api.weixin.qq.com/cgi-bin/menu/create?access_token={accessToken.Data.ToString()}"; var result = await _aSampleHttpClient.PostAsync <CreateMenuResult>(createMenuUrl, menuJsonStr); if (result.ErrorCode == "0") { return(HttpRequestResult.Success(result, "")); } return(HttpRequestResult.Error(result.ErrorMsg)); }
public async Task <string> SaveFileAsync(IFormFile file) { //Log.Information($"FileSaverService -> SaveFile. webRootPath: {webRootPath}, file: {JsonConvert.SerializeObject(file)}"); try { var fileName = $"{Path.GetExtension(file.FileName)}"; var url = _configuration.GetSection("fileStorage:imageUrl").Value; var savePath = await _aSampleHttpClient.PostAsync(url, file); return(savePath); } catch (Exception ex) { //Log.Error(ex, "Saving failed: FileSaverService -> SaveFile"); throw ex; } }