微信公众平台开发4-长链接转短链接口调用实例(含源码)
微信公众平台开发-access_token获取及应用(含源码)
作者: 孟祥磊-《微信公众平台开发实例教程》
将一条长链接转成短链接。开发者用于生成二维码的原链接(商品、支付二维码等)太长导致扫码速度和成功率下降,将原长链接通过此接口转成短链接再生成二维码将大大提升扫码速度和成功率。
一.实例调用
接口说明
http请求方式:GET
接口调用地址:
https://api.weixin.qq.com/cgi-bin/shorturl?access_token=ACCESS_TOKEN
请求参数说明,如表所示:
参数 |
是否必须 |
说明 |
access_token |
是 |
调用接口凭证 |
action |
是 |
此处填long2short,代表长链接转短链接 |
long_url |
是 |
需要转换的长链接,支持http://、https://、weixin://wxpay 格式的url |
返回说明:
正常情况下,微信会返回JSON数据包给公众号,如下所示:
{"errcode":0,"errmsg":"ok","short_url":"http:\/\/w.url.cn\/s\/AvCo6Ih"}
返回信息参数说明,如表所示:
参数 |
说明 |
errcode |
错误码。 |
errmsg |
错误信息。 |
short_url |
短链接。 |
使用程序调用接口获取:
<?php /**微信长链接转短链接 */ require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; $output=getdata($url); $tokenarr=(array)json_decode($output); $token=$tokenarr['access_token']; $date='{"action":"long2short","long_url":"https://item.jd.com/12041625.html"}'; $shorturl="https://api.weixin.qq.com/cgi-bin/shorturl?access_token=".$token.""; $shortarr=(array)json_decode(getshort($date,$shorturl)); echo $shortarr['short_url'];function sendcontent($date, $url) {$ch = curl_init();curl_setopt($ch, CURLOPT_URL, $url);curl_setopt($ch, CURLOPT_POSTFIELDS, $date);curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, FALSE);curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);$data = curl_exec($ch);curl_close($ch);return $data; } ?>
²代码解析
require('wei_function.php');包含wei_function.php,使用getdata()函数,获取到access_token后,我们需要将指定数据发送到对应网址服务器,然后获取服务器返回的数据。
$date='{"action":"long2short","long_url":"http://www.jikexueyuan.com/course/1578.html"}';
为需要发送的数据,格式为JSON,这里转换的一个长链接为:
https://item.jd.com/12041625.html
将数据发送到:$shorturl="https://api.weixin.qq.com/cgi-bin/shorturl?access_token=".$token."";
这里除了getdata()函数外,增加了一个sendcontent()的函数,该函数与getdata()不同的是,它除向服务器发送链接请求外,还可以发送单独的数据到对方服务器,对方服务器再根据所发送的数据,返回对应的结果。
同样将sendcontent()函数写到wei_function.php文件中,此时wei_function.php文件内的函数分别有object_array()、get_weather()、getdata()、以及sendcontent(),该文件见《微信公众平台开发实例一书》第95页,优化后的代码:
<?php /**微信长链接转短链接 */ require('wei_function.php'); $appid="wx78478e595939c538"; $secret="5540e8ccab4f71dfad752f73cfb85780"; $url="https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=".$appid."&secret=".$secret.""; $output=getdata($url);$tokenarr=(array)json_decode($output); $token=$tokenarr['access_token']; //发送xml数据 $date='{"action":"long2short","long_url":"https://item.jd.com/12041625.html"}'; //长链接转短链接接口地址 $shorturl="https://api.weixin.qq.com/cgi-bin/shorturl?access_token=".$token.""; $shortarr=(array)json_decode(sendcontent($date,$shorturl)); echo $shortarr['short_url']; ?>
运行该文件,得到如图所示的信息,长链接成功被转换为短链接。
转载于:https://www.cnblogs.com/mxlbook/p/6513923.html
微信公众平台开发4-长链接转短链接口调用实例(含源码)相关推荐
- 微信公众平台开发之订阅号申请,接口验证篇
2019独角兽企业重金招聘Python工程师标准>>> 1,运营主体选择 微博公众平台的账号目前分为两类,一是服务号,另外一种是订阅号,分析我网站的需求(每天给粉丝推送美食信息,回复 ...
- 微信公众平台开发最佳实践
<微信公众平台开发最佳实践>共分10章,案例程序采用广泛流行的PHP.MySQL.XML.CSS.JavaScript.HTML5等程序语言及数据库实现.系统完整地介绍微信公众平台基础接口 ...
- php 自定义菜单 openid,微信公众平台开发(99) 自定义菜单获取OpenID
关键字 微信公众平台 自定义菜单 OpenID 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-menu-get-openid.html 在这篇 ...
- 视频教程-微信公众平台开发入门-微信开发
微信公众平台开发入门 订阅后,请点击此处观看大牛全套视频课程:课程播放页链接 价格可能因活动略有浮动 刘运强 ¥39.00 立即订阅视频课 订阅后:请点击此处观看视频课程 视频教程-微信公众平台开发入 ...
- 第八篇 :微信公众平台开发实战Java版之如何网页授权获取用户基本信息
第一部分:微信授权获取基本信息的介绍 我们首先来看看官方的文档怎么说: 如果用户在微信客户端中访问第三方网页,公众号可以通过微信网页授权机制,来获取用户基本信息,进而实现业务逻辑. 关于网页授权回调域 ...
- 第一篇:微信公众平台开发实战Java版之了解微信公众平台基础知识以及资料准备...
相信很多人或多或少听说了微信公众平台的火热.但是开发还是有一点门槛,鉴于挺多朋友问我怎么开发,问多了,自己平时也进行以下总结. 所以下面给大家分享一下我的经验: 第一部分 介绍微信公众号的一些简单 ...
- 视频教程-微信公众平台开发实战PHP版-微信开发
微信公众平台开发实战PHP版 互联商通创始人/架构师, 在IT领域摸爬滚打20年的全栈老程序员(架构师.培训讲师).熟悉iOS.Android及LNMP的架构下快速开发互联网相关项目.精通微信和支付宝 ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十一):高级接口说明
这里所说的高级接口是指面向通过认证的服务号开通的高级功能. 高级功能大致可以分类为: 用户接口 分组接口 客服接口(有别于之前介绍的多客服) 群发接口 多媒体接口 二维码接口 模板消息接口(不是所有账 ...
- 微信公众平台开发(104) 自定义菜单扫一扫、发图片、发地理位置
关键字:微信公众平台 自定义菜单 扫一扫 发图片 发地理位置 作者:方倍工作室 原文:http://www.cnblogs.com/txw1958/p/weixin-menu-new-type.htm ...
最新文章
- cgroup介绍、安装和控制cpu,内存,io示例
- Redis中bitmap的妙用 1
- 关于JavaScript 数组 的一切
- java pdf表单域实现_Java 创建PDF表单域 - 文本框、复选框、列表框、组合框、按钮等...
- 【转】Linux命令之查看文件占用空间大小-du,df
- 几天没写代码,就……
- node:爬虫爬取网页图片 1
- Linux操作系统内核源码目录结构详解
- 《算法图解》——二分查找
- SAP系统资产盘盈盘亏的处理
- 基于虹软人脸识别技术,实现新生实时身份认证和报到统计
- 尚融宝——阿里云短信验证功能(sms)
- 32位XP开启直接支持4g内存
- CTF网络安全大赛介绍
- 《Linuxnbsp;Kernelnbsp;Development》读书…
- 笔记本玩梦幻西游开启时自动全屏,而且两边还有黑边!
- 字符串(如DNA序列,蛋白质序列)的编码和用于机器学习和神经网络
- python用bbp公式计算圆周率_利用BBP公式来计算Pi圆周率的PHP代码
- Richard Matthew Stallman
- 基于AutoHotkey的智能翻译器
热门文章
- C++ string类常用函数
- oracle怎么设置脚本,ORACLE安装预设置脚本
- 巡查准确率怎么算_【达睿原创】需求预测准确率,你怎么看 ?
- 课节6: 图神经网络进阶模型之 ERNIESage下
- DeFi协议ValueDeFi疑似再次遭到攻击
- Reflexer Labs将于4月15日进行首次FLX代币分配
- 企业网站+Axure企业官网通用模板+公司官网通用模板+web端高保真原型+门户官网+物流企业+门户网站+服务中心+产品中心+新闻中心+帮助中心+企业官网+公司官网+公司网站+登录注册+高保真交互
- 小微企业——信用风险与放款原则分析
- Linux权限、角色作用
- 《PHP程序员面试笔试宝典》——如何巧妙地回答面试官的问题?