public ResultModel <AccessTokenModel> GetAccessTokenData(string code) { var url = string.Format(WrapConfig.AccessTokenUrl, BasicConfig.WeChat_AppId, BasicConfig.WeChat_Secret, code); var jsonResult = WHttpUtil.Get(url); if (!string.IsNullOrWhiteSpace(jsonResult)) { var result = JsonConvert.DeserializeObject <AccessTokenModel>(jsonResult); if (result == null) { return(new ResultModel <AccessTokenModel> { code = 0, msg = jsonResult, data = null }); } return(new ResultModel <AccessTokenModel> { code = 1, msg = jsonResult, data = result }); } return(null); }
public ResultModel <LoginSessionModel> Getjscode2session(string code) { var url = string.Format(SprogramConfig.jscode2session, BasicConfig.Sprogram_AppId, BasicConfig.SprogramAppSecret, code); var jsonResult = WHttpUtil.Get(url, ""); if (!string.IsNullOrWhiteSpace(jsonResult)) { var result = JsonConvert.DeserializeObject <LoginSessionModel>(jsonResult); if (result == null) { return(new ResultModel <LoginSessionModel> { code = 0, msg = jsonResult, data = null }); } return(new ResultModel <LoginSessionModel> { code = 1, msg = jsonResult, data = result }); } return(null); }
public async Task <ResultModel <AccessTokenModel> > GetAccessTokenDataAync(string code, string appid, string secret) { var url = string.Format(WrapConfig.AccessTokenUrl, appid, secret, code); var jsonResult = await WHttpUtil.HttpGetAsync(url); if (!string.IsNullOrWhiteSpace(jsonResult)) { var result = JsonConvert.DeserializeObject <AccessTokenModel>(jsonResult); if (result == null) { return(new ResultModel <AccessTokenModel> { code = 0, msg = jsonResult, data = null }); } return(new ResultModel <AccessTokenModel> { code = 1, msg = jsonResult, data = result }); } return(null); }
public ResultModel <AccessTokenModel> GetBaseAccessTokenData(string appid, string secret) { var url = string.Format(WrapConfig.BaseAccessTokenUrl, appid, secret); var jsonResult = WHttpUtil.HttpGet(url); if (!string.IsNullOrWhiteSpace(jsonResult)) { var result = JsonConvert.DeserializeObject <AccessTokenModel>(jsonResult); if (result == null) { return(new ResultModel <AccessTokenModel> { code = 0, msg = jsonResult, data = null }); } return(new ResultModel <AccessTokenModel> { code = 1, msg = jsonResult, data = result }); } return(null); }
public ResultModel <UserInfoModel> GetUser_InfoData(string accesstoken, string openid) { var url = string.Format(WrapConfig.User_InfoUrl, accesstoken, openid); var jsonResult = WHttpUtil.HttpGet(url); if (!string.IsNullOrWhiteSpace(jsonResult)) { var result = JsonConvert.DeserializeObject <UserInfoModel>(jsonResult); if (result == null || !string.IsNullOrWhiteSpace(result.errcode)) { return(new ResultModel <UserInfoModel> { code = 0, msg = jsonResult, data = null }); } return(new ResultModel <UserInfoModel> { code = 1, msg = jsonResult, data = result }); } return(null); }
public ResultModel <WechatStatusModel> CreateMenu(string appid, string appsecret, string menuhtml) { try { AuthorService author = new AuthorService(); var token = author.GetBaseAccessTokenData(); if (token != null && token.code == 1 && !string.IsNullOrWhiteSpace(token.data.access_token)) { string createurl = string.Format(WrapConfig.MenuCreate, token.data.access_token); var jsonresult = WHttpUtil.Get(createurl, menuhtml); var err = JsonConvert.DeserializeObject <ErroResult>(jsonresult); if (err.errmsg == "ok") { return(new ResultModel <WechatStatusModel> { code = 1, msg = "绑定微信目录成功", data = new WechatStatusModel() { msg = err.errmsg, status = true } }); } else { return(new ResultModel <WechatStatusModel> { code = 0, msg = "绑定微信目录失败", data = new WechatStatusModel() { msg = "错误代码:" + err.errcode + "," + err.errmsg, status = false } }); } } else { return(new ResultModel <WechatStatusModel> { code = 0, msg = "token获取为空", data = null }); } } catch (Exception e) { Log.Err(e, "CreateMenu创建菜单异常"); return(new ResultModel <WechatStatusModel> { code = 0, msg = e.Message, data = null }); } }
private WeChatPayData UnifiedOrder(WeChatPayData inputObj, int timeOut = 6) { string url = WrapConfig.UnifiedorderUrl; //检测必填参数 if (!inputObj.IsSet("out_trade_no")) { throw new Exception("缺少统一支付接口必填参数out_trade_no!"); } else if (!inputObj.IsSet("body")) { throw new Exception("缺少统一支付接口必填参数body!"); } else if (!inputObj.IsSet("total_fee")) { throw new Exception("缺少统一支付接口必填参数total_fee!"); } else if (!inputObj.IsSet("trade_type")) { throw new Exception("缺少统一支付接口必填参数trade_type!"); } //JSAPI关联参数 if (inputObj.GetValue("trade_type").ToString() == "JSAPI" && !inputObj.IsSet("openid")) { throw new Exception("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"); } //回调url if (!inputObj.IsSet("notify_url")) { inputObj.SetValue("notify_url", WrapConfig.WeChatCallBackUrl); } //支付场景 inputObj.SetValue("appid", BasicConfig.Wechat_PayaAppId); //公众账号ID inputObj.SetValue("mch_id", BasicConfig.WeChat_MchId); //商户号 inputObj.SetValue("spbill_create_ip", "8.8.8.8"); //终端ip inputObj.SetValue("nonce_str", GenerateNonceStr()); //随机字符串 string trade_type = inputObj.GetValue("trade_type").ToString(); string keyvalue = BasicConfig.WeChat_AppKey; inputObj.SetValue("sign", inputObj.MakeSign(trade_type, keyvalue)); //签名 string xml = inputObj.ToXml(); Log.Info("支付请求参数xml:" + xml); string response = WHttpUtil.Post(xml, url, false, timeOut); WeChatPayData result = new WeChatPayData(); result.LoadXml(response, trade_type, keyvalue); return(result); }
/// <summary> /// 上传图片、语音、视频、缩略图片永久素材 /// </summary> /// <param name="appid"></param> /// <param name="appsecret"></param> /// <param name="type">image、voice、video、thumb</param> /// <param name="media"></param> /// <param name="description"></param> /// <returns></returns> public ResultModel <ForeverMaterialModel> AppendForeverMaterial(string appid, string appsecret, string type, byte[] bt, string filename) { try { AuthorService author = new AuthorService(); var token = author.GetBaseAccessTokenData(); if (token != null && token.code == 1 && token.data != null && !string.IsNullOrWhiteSpace(token.data.access_token)) { string url = string.Format(WrapConfig.AddMaterial + token.data.access_token + "&type=" + type); var result = WHttpUtil.HttpMediaIdPost(url, bt, filename); if (result.Contains("errcode")) { //异常 var errorinfo = JsonConvert.DeserializeObject <ErroResult>(result); return(new ResultModel <ForeverMaterialModel> { code = 0, msg = errorinfo.errmsg, data = null }); } else { var material = JsonConvert.DeserializeObject <ForeverMaterialModel>(result); return(new ResultModel <ForeverMaterialModel> { code = 1, msg = "上传素材成功", data = material }); } } return(new ResultModel <ForeverMaterialModel> { code = 0, msg = "token获取为空", data = null }); } catch (Exception e) { Log.Err(e, "上传永久素材异常"); return(new ResultModel <ForeverMaterialModel> { code = 0, msg = e.Message, data = null }); } }
private WeChatPayData UnifiedOrder(WeChatPayData inputObj, int timeOut = 6) { try { string url = WrapConfig.UnifiedorderUrl; //检测必填参数 if (!inputObj.IsSet("out_trade_no")) { throw new Exception("缺少统一支付接口必填参数out_trade_no!"); } else if (!inputObj.IsSet("body")) { throw new Exception("缺少统一支付接口必填参数body!"); } else if (!inputObj.IsSet("total_fee")) { throw new Exception("缺少统一支付接口必填参数total_fee!"); } else if (!inputObj.IsSet("trade_type")) { throw new Exception("缺少统一支付接口必填参数trade_type!"); } //JSAPI关联参数 if (inputObj.GetValue("trade_type").ToString() == "JSAPI" && !inputObj.IsSet("openid")) { throw new Exception("统一支付接口中,缺少必填参数openid!trade_type为JSAPI时,openid为必填参数!"); } //NATIVE关联参数 if (inputObj.GetValue("trade_type").ToString() == "NATIVE" && !inputObj.IsSet("product_id")) { throw new Exception("统一支付接口中,缺少必填参数product_id!trade_type为JSAPI时,product_id为必填参数!"); } //回调url if (!inputObj.IsSet("notify_url")) { throw new Exception("统一支付接口中,缺少必填参数notify_url!trade_type为JSAPI时,notify_url为必填参数!"); } //支付场景 string trade_type = inputObj.GetValue("trade_type").ToString(); string keyvalue = ""; if (trade_type == "JSAPI") { inputObj.SetValue("appid", BasicConfig.Sprogram_AppId); //公众账号ID inputObj.SetValue("mch_id", BasicConfig.WeChat_MchId); //商户号 if (trade_type == "JSAPI") { keyvalue = BasicConfig.WeChat_AppKey; } } inputObj.SetValue("nonce_str", GenerateNonceStr()); //随机字符串 inputObj.SetValue("sign", inputObj.MakeSign(trade_type, keyvalue)); //签名 string xml = inputObj.ToXml(); //Log.Info("xml:" + xml); string response = WHttpUtil.Post(xml, url, false, timeOut); WeChatPayData result = new WeChatPayData(); result.LoadXml(response, trade_type, keyvalue); return(result); } catch (Exception ex) { throw new Exception(ex.ToString()); } }