最烦做微信公众平台的东西。。文档说得不清不楚,又没示例代码,只能自己 慢慢搜索,弄了一晚上,基本弄出来了,把本地的图片上传到微信的临时素材那里,返回媒体ID,用于其他操作,代码如下 :(自己导入相应的类System.Net.Http,JSON解析用的LitJson)
/// <summary>
/// 上传临时素材
/// 返回media_id
/// </summary>
/// <param name="userid"></param>
/// <returns></returns>
public string UploadLinShiSuCai(int userid) {
string imgpath = HttpContext.Current.Server.MapPath($"/upload/erweima/{userid}_2.png");
string appid = WxPayConfig.APPID;
string secret = WxPayConfig.APPSECRET;
//1. 获取AccessToken(有效期7200秒,开发者必须在自己的服务全局缓存access_token)
string url1 = $"https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid={appid}&secret={secret}";
string result = HttpService.Get(url1);
JsonData jd = JsonMapper.ToObject(result);
string access_token = (string)jd["access_token"];
string url2 = $"https://api.weixin.qq.com/cgi-bin/media/upload?access_token={access_token}&type=image";
//图片转为流
Image img = new Bitmap(imgpath);
MemoryStream stream = new MemoryStream();
img.Save(stream, ImageFormat.Png);
BinaryReader br = new BinaryReader(stream);
byte[] data = stream.ToArray();
stream.Close();
var boundary = "fbce142e-4e8e-4bf3-826d-cc3cf506cccc";
var client = new HttpClient();
client.DefaultRequestHeaders.Add("User-Agent", "KnowledgeCenter");
client.DefaultRequestHeaders.Remove("Expect");
client.DefaultRequestHeaders.Remove("Connection");
client.DefaultRequestHeaders.ExpectContinue = false;
client.DefaultRequestHeaders.ConnectionClose = true;
var content = new MultipartFormDataContent(boundary);
content.Headers.Remove("Content-Type");
content.Headers.TryAddWithoutValidation("Content-Type", "multipart/form-data; boundary=" + boundary);
var contentByte = new ByteArrayContent(data);
content.Add(contentByte);
contentByte.Headers.Remove("Content-Disposition");
contentByte.Headers.TryAddWithoutValidation("Content-Disposition", $"form-data; name=\"media\";filename=\"{userid}_2.png\"" + "");
contentByte.Headers.Remove("Content-Type");
contentByte.Headers.TryAddWithoutValidation("Content-Type", "image/png");
try
{
var result2 = client.PostAsync(url2, content);
if (result2.Result.StatusCode != HttpStatusCode.OK)
throw new Exception(result2.Result.Content.ReadAsStringAsync().Result);
string jsonstr = result2.Result.Content.ReadAsStringAsync().Result;
JsonData jd2 = JsonMapper.ToObject(jsonstr);
result = (string)jd2["media_id"];
return result;
}
catch (Exception ex)
{
throw new Exception(ex.Message + ex.InnerException.Message);
}
}
相关推荐
C#版 微信公众平台接口调用源码 打包下载
可能是目前全网最完整的 C# 版微信 SDK,封装全部已知的微信 API,支持公众平台(订阅号、服务号、小程序、小游戏、小商店)& 开放平台 & 商户平台(微信支付)& 企业微信(企业号)& 广告平台(广点通)& 对话开放...
已经全部调试通过,修改accesstoken即可使用
C# ASP.Net微信第三方公众平台源码 功能齐全 含源文件 非编译版,可二次开发
C# 开发微信公众平台
微信公众平台接口调用源码C#完整最新pixun.net版大家可以下载学习交流!
微信只有php版,自己改写的微信公众平台消息接口c#版
PHP微信公众平台上传和下载临时素材用例,把下载到的文件解压到PHP的根目录,浏览器打开静态(index.html)选择上传的图片,点击上传就可以。适合初学者,界面不是很好,没有进行过多的修饰,但功能比较实用。 注意...
基于C#开发,可以直接与微信公众平台接口对接,进行微信公众平台开发。
正在实验微信公众平台,随手写了这个小工具,默认可以post以微信公众平台要求的xml格式到指定的服务器地址,模拟微信服务器和你的服务器交互,默认的地址里的参数也是微信公众平台里要求的东西,显示的文字是返回的...
C#微信公众账号开发
HOOK微信接口的目的可能包括获取未公开的API调用,如聊天记录、用户信息等。 2. **网络通信分析**:微信使用加密的通信协议,通过HOOK网络请求,可以分析其数据包结构,解密通信内容,理解微信的内部逻辑。 3. **...
一些文档,关于C#做微信公众平台,可以结合本人的java开发微信公众平台,综合参考。
微信公众号开发.NET源码亲测可用,修改Web...然后发布放到服务器上,微信公众测试号上输入服务器URL(http://***/interfaceTest.ashx)和token值,提交成功后扫描测试号二维码,自动回复“谢谢关注微信01”,适合初学者
C#实现微信分账功能是指使用C#语言实现微信提供的分账功能,微信分账功能是指在微信支付平台上,商户可以将订单金额的一部分分配给其他合作方,例如供应商、代理商等,以便于商户和合作方之间的资金结算。...
《微信公众平台企业应用开发实战》全面介绍了微信公众平台已开放API的功能、使用方法及应用场景,详细解读了微信公众平台应用开发所需的各种技术、方法和技巧,深入讲解了微信公众平台开源开发框架Senparc.Weixin.MP...
提供access_token,文件,文件类型即可完成素材上传。
《微信公众平台企业应用开发实战》全面介绍了微信公众平台已开放API的功能、使用方法及应用场景,详细解读了微信公众平台应用开发所需的各种技术、方法和技巧,深入讲解了微信公众平台开源开发框架Senparc.Weixin.MP...
微信公众平台接口程序C#版 可以根据自己需要调整