Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
.NET(Core)
正文
原创
2019-04-23
浏览 (
10923
)
微信公众号开发C#系列-10、长链接转短链接
![](http://doc.rdiframework.net/blog/article/20190421115233673.png-pw) ## 1、概述 ## 短网址的好处众多,便于记忆,占用字符少等,现在市面上出现了众多的将长网址转变为短网址的方法,但是由于他们都是小的公司在幕后运营,所以很不靠谱,面对随时关闭服务的可能,这样也导致我们将转换好了的短网址也会失效失链!那么怎样才能使转换好了的短网址永久有效呢? ## 2、利用微信公众号接口实现长链接转短链接 ## 开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。微信公众号平台提供的长链接转短链接接口是: http请求方式: POST https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN 参数说明 | 参数 | 是否必须 | 说明 | |----------|:-------------:|------:| | access_token | 是 | 调用接口凭证 | | action | 是 | 此处填long2short,代表长链接转短链接 | | long_url | 是 | 需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url | 调用举例 curl -d "{\"action\":\"long2short\",\"long_url\":\"http://wap.koudaitong.com/v2/showcase/goods?alias=128wi9shh&spm=h56083&redirect_count=1\"}" "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN" 返回说明,正常情况下,微信会返回下述JSON数据包给公众号: {"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"} ## 代码参考 ## /// <summary> /// 长链接转短链接 /// </summary> /// <param name="longUrl">长链接</param> /// <returns></returns> [HttpPost] [ValidateInput(false)] [LoginAuthorize] public ActionResult GetShortUrl(string longUrl) { WeixinOfficialAccountEntity currentWeixinOfficialAccountEntity = RDIFrameworkService.Instance.WeixinBasicService.GetCurrentOfficialAccountEntity(ManageProvider.Provider.Current()); string token = currentWeixinOfficialAccountEntity.AccessToken; //微信请求地址 string url = "https://api.weixin.qq.com/cgi-bin/shorturl?access_token=" + token; //请求的json参数 string data = "{\"action\":\"long2short\",\"long_url\":\"" + longUrl + "\"}"; string ret = string.Empty; try { byte[] byteArray = System.Text.Encoding.UTF8.GetBytes(data); //转化 HttpWebRequest webReq = (HttpWebRequest)WebRequest.Create(new Uri(url)); webReq.Method = "POST"; webReq.ContentType = "application/json"; webReq.ContentLength = byteArray.Length; Stream newStream = webReq.GetRequestStream(); newStream.Write(byteArray, 0, byteArray.Length);//写入参数 newStream.Close(); HttpWebResponse response = (HttpWebResponse)webReq.GetResponse(); var ce = response.ContentEncoding; StreamReader sr = new StreamReader(response.GetResponseStream(), Encoding.GetEncoding("UTF-8")); ret = sr.ReadToEnd(); sr.Close(); response.Close(); newStream.Close(); } catch (Exception ex) { } //正常情况下,微信会返回下述JSON数据包给公众号: //{"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"} string errcode = "";//错误码。 string errmsg = "";//错误信息。 string short_url = "";//短链接。 //解析响应信息 if (!string.IsNullOrWhiteSpace(ret)) { JObject jo = (JObject)JsonConvert.DeserializeObject(ret); errcode = jo["errcode"].ToString();//错误码。 errmsg = jo["errmsg"].ToString();//错误信息。 short_url = jo["short_url"].ToString();//短链接。 } return Content(new JsonMessage { Success = true, Data = short_url, Type = ResultType.Success, Message = errmsg }.ToString()); } ##3、使用效果参考## ![长链接转短链接界面](http://doc.rdiframework.net/blog/article/20190421114128669.png-pw) ----- ![生成的短链接效果](http://doc.rdiframework.net/blog/article/20190421114147754.png-pw) 上面的界面我们把链接地址[http://www.guosisoft.com/article/detail/190](http://www.guosisoft.com/article/detail/190)通过我们提供的长链接转短链接界面功能转成了短链接[https://w.url.cn/s/ALO1xZC](https://w.url.cn/s/ALO1xZC)。 ## 参考文章 ## [微信公众平台技术文档-官方](https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1445241432) [Senparc.Weixin SDK + 官网示例源代码](https://github.com/JeffreySu/WeiXinMPSDK) [RDIFramework.NET — 基于.NET的快速信息化系统开发框架 — 系列目录](http://www.guosisoft.com/article/detail/190) [RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件介绍](http://www.guosisoft.com/article/detail/169) [RDIFramework.NET框架SOA解决方案(集Windows服务、WinForm形式与IIS形式发布)-分布式应用](http://www.guosisoft.com/article/detail/189) [RDIFramework.NET代码生成器全新V3.5版本发布-重大升级](http://www.guosisoft.com/article/detail/199) ----- 一路走来数个年头,感谢RDIFramework.NET框架的支持者与使用者,大家可以通过下面的地址了解详情。 RDIFramework.NET官方网站:http://www.rdiframework.net/ RDIFramework.NET官方博客:http://blog.rdiframework.net/ 同时需要说明的,以后的所有技术文章以官方网站为准,欢迎大家收藏! RDIFramework.NET框架由专业团队长期打造、一直在更新、一直在升级,请放心使用! 欢迎关注RDIFramework.net框架官方公众微信(微信号:guosisoft),及时了解最新动态。 扫描二维码立即关注 ![微信号:guosisoft](http://doc.rdiframework.net/weixin.png)
正文到此结束
本文标签:
.NET
微信开发
挨踢业界
Web前端
常用工具
版权声明:
本站原创文章,由
guosisoft.com
发布,遵循
CC 4.0 by-sa
版权协议,转载请附上原文出处链接和本声明。
上一篇
微信公众号开发C#系列-9、多公众号集中管理
下一篇
微信公众号开发C#系列-11、生成带参数二维码应用场景
热门推荐
{{article.title}}
热门指数:
浏览({{article.lookCount + 5000}})
相关文章
{{article.title}}
该篇文章的评论功能暂时被站长关闭
说给你听
本文目录
文章标签
RDIF.NET
其他
微信开发
.NET
消息交互
.NetCore
项目管理
常用工具
工作流
Web前端
数据库
挨踢业界
随机文章
RDIFramework.NET框架通过SignalR技术整合即时通讯(IM)
[顶]ORACLE PL/SQL编程详解之二:PL/SQL块结构和组成元素(为山九仞,岂一日之功)
前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键
RDIFramework.NET ━ .NET快速信息化系统开发框架 V3.2->用户管理模块新增“重置用户密码”功能
.NET快速信息化系统开发框架 V3.2 -> Web 用户管理模块编辑界面-组织机构选择支持级联选择
RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置
RDIFramework.NET敏捷开发框架Web新增邮件中心实现便捷式的邮件收发
Linux系统vi(vim)编辑器命令使用教程简单介绍
常用linux命令,开发必备
微软良心之作——Visual Studio Code 开源免费跨平台代码编辑器
全新跨平台版本.NET敏捷开发框架V5.0-RDIFramework.NET震撼发布
RDIFramework.NET开发框架WinForm版新增编码管理
RDIFramework.NET CS敏捷开发框架 V6.1发布(.NET6+、Framework双引擎、全网唯一)
团队项目开发“编码规范”之九:代码分析
GitHub重磅更新!私有代码库从此免费,开发者齐夸微软送福利
Vue 前端开发团队风格指南(史上最全)
书写高质量JavaScript代码的要义(The Essentials of Writing High Quality JavaScript)翻译
RDIFramework.NET平台代码生成器V3.1.6125.27586全新发布-更新于20161029(提供下载)
.NET快速信息化系统开发框架 V3.2->新增“行政区域管理”,同时大批量树采用异步加载
ORACLE常见问题一千问[401至500](不怕学不成、就怕心不诚!)
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127