Toggle navigation
首页
产品中心
全新RDIF.vNext低代码框架
镇店
.NET C/S开发框架
.NET Web敏捷开发框架
.NET 快速开发框架(全新EasyUI版本)
.NET 代码生成器
.NET WebAPI服务端开发框架
客户案例
付款方式
国思学堂
技术文章
新闻资讯
下载
关于
首页
技术文章
.NET(Core)
正文
原创
2019-04-23
浏览 (
11076
)
微信公众号开发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 WinForm版新增报表管理功能模块
信息系统项目管理系列之八:项目成本管理
一文搞懂flex(弹性盒布局)
RDIFramework.NET V3.3 WinForm版新增日程管理功能模块
Linux(CentOS7)安装与卸载MySQL8.0图文详解
RDIFramework.NET开发框架编码管理助力业务编码的自动处理
信息系统项目管理系列之四:项目可行性研究与评估
8 种主流数据迁移工具技术选型
团队项目开发“编码规范”之九:代码分析
微信公众号开发C#系列-12、微信前端开发利器:WeUI
2021 编程语言排行榜出炉!C#年度语言奖
史上最全面的SignalR系列教程-4、SignalR 自托管全解(使用Self-Host)-附各终端详细实例
mysql导入大量数据时报MySQL server has gone away错误的解决办法
.NET敏捷开发框架-RDIFramework.NET V5.1发布(跨平台)
.NET快速信息化系统开发框架 V3.2->WinForm版本新增新的用户权限设置界面效率更高、更规范
团队项目开发"编码规范"之八:代码格式检查
RDIFramework.NET ━ .NET快速信息化系统开发框架 ━ 工作流程组件WinForm业务平台
[推荐]ORACLE PL/SQL编程之五:异常错误处理(知已知彼、百战不殆)
微信公众号开发C#系列-5、用户和用户组管理-支持同步
[推荐]ORACLE PL/SQL编程之四:把游标说透(不怕做不到,只怕想不到)
网站信息
文章总数:599 篇
标签总数:8 个
分类总数:8 个
留言数量:1385 条
在线人数:
89
人
运行天数:1321天
最后更新:2023-05-18
QQ:406590790
13005007127