Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
.NET(Core)
正文
原创
2019-04-23
浏览 (
10833
)
微信公众号开发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前端
数据库
挨踢业界
随机文章
Visual Studio 2019 正式发布,重磅更新,支持live share
Vue2.x 组件通信方式详解,这篇讲全了
RDIFramework.NET 快速开发框架 WebEasyUI版本 V6.0发布
【干货】Vue3 组件通信方式详解
RDIFramework.NET V2.9版本 WinFom部分新增与修正的功能
RDIFramework.NET V3.3 Web版角色授权管理新增角色对操作权限项、模块起止生效日期的设置
团队项目开发"编码规范"之二:代码外观
【保姆级教程】Vue项目调试技巧
[强烈推荐]ORACLE SQL:经典查询练手第四篇(不懂装懂,永世饭桶!)
通过SignalR技术整合即时通讯(IM)在.NET敏捷开发框架中落地
.NET敏捷开发框架-RDIFramework.NET V6.0发布
RDIFramework.NET V3.2-> Web版本新增新的用户权限设置界面效率更高、更规范
.NET快速信息化系统开发框架 V3.2-新增锁定用户与解除锁定用户的功能
微信公众号开发系列-玩转微信开发-目录汇总
.NET快速信息化系统开发框架 V3.2->WinForm版本新增新的用户权限设置界面效率更高、更规范
Git(分布式版本控制系统)在Windows下的使用-将代码托管到开源中国(oschina)
前端神器-神级代码编辑软件Sublime Text下载、使用教程、插件推荐说明、全套快捷键
RDIFramework.NET V3.2-> “Tab”标签新增可“最大化”显示功能
实例演示使用RDIFramework.NET 框架的工作流组件进行业务流程的定义—请假申请流程-Web
【长文】带你搞明白Redis
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127