2015-03-18 15:09:00 weixin_30345577 阅读数 3
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15687 人正在学习 去看看 传智

在本文中,我们列出微信公众平台上可以使用的API接口以及举例如何在微信公众平台调用这些接口实现相应的功能。

接口调用说明: ① Appkey请使用的微信公众号,不要使用默认的trailuser ② 接口返回类型为文本、图文、及音乐三种基本消息 ③ 请在所有消息底部主动加上“技术支持 方倍工作室” ④ JSON验证网址 http://apix.sinaapp.com/json/ ⑤ 接口将不定期增加或更新,欢迎指出错误 ⑥ 如果有想要实现的,请在下面评论中列出并提供数据来源 ⑦ 提供的例子为天气、笑话、点歌功能,其他接口可以同样的调用 ⑧ 每个IP每天免费最大调用次数为200次,不要使用公用IP,如SAE或BAE ⑨ SAE每日运行需要开支,欢迎主动付费使用,付费用户功能上将不受任何限制 ⑩ 不必费尽心思使用虚假的appkey,它仅为统计使用,真实appkey能得到更快更好的程序响应 ⑪ ⑫ ⑬ ⑭ ⑮ ⑯ ⑰ ⑱ ⑲ ⑳

 

 

001. 天气预报接口 [20130901]

city:城市名,传递时须做urlencode
http://apix.sinaapp.com/weather/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3

002. 空气质量指数接口 [20130901]

city:城市名,传递时须做urlencode
http://apix.sinaapp.com/airquality/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3

003. 快递查询接口 [20130901]

company:快递公司英文代码 点击查看英文代码列表
number:快递单号
http://apix.sinaapp.com/express/?appkey=trialuser&company=yuantong&number=3143490877
新版Web页查询
http://apix.sinaapp.com/express2/index.php

004. 智能快递查询接口 [20130901]

number:快递单号
http://apix.sinaapp.com/expressauto/?appkey=trialuser&number=3143490877
备注:支持EMS,申通快递,圆通快递,中通快递,汇通快递,天天快递,韵达快递,顺丰快递,宅急送,速尔快递,德邦物流,联昊通物流,全峰快递,中国邮政,如风达

005. 股票查询接口 [20130901]

code:股票代码[通达信代码]
http://apix.sinaapp.com/stock/?appkey=trialuser&code=000063

006. 股票分析接口 [20131004]

code:股票代码
http://apix.sinaapp.com/stockanalysis/?appkey=trialuser&code=000063

007. 公交线路接口 [20131004]

city:城市名,传递时须做urlencode
line:线路,传递时须做urlencode
http://apix.sinaapp.com/busline/?appkey=trailuser&city=%E6%B7%B1%E5%9C%B3&line=209

008. 公交、地铁换乘接口 [20131004]

city:城市名,传递时须做urlencode
start:起点,传递时须做urlencode
end:终点,传递时须做urlencode
http://apix.sinaapp.com/bus/?appkey=trailuser&city=%E6%B7%B1%E5%9C%B3&start=%E4%B8%96%E7%95%8C%E4%B9%8B%E7%AA%97&end=%E7%AB%B9%E5%AD%90%E6%9E%97

009. 地铁查询接口 [20131004]

http://apix.sinaapp.com/subway/?appkey=trialuser

010. 火车查询 [20131004]

http://apix.sinaapp.com/train/?appkey=trialuser

011. 汽车查询接口 [20131004]

http://apix.sinaapp.com/coach/?appkey=trialuser

012. 自驾线路 [20131004]

startcity:起点城市,传递时须做urlencode
startplace:起点地名,传递时须做urlencode
endcity:终点城市,传递时须做urlencode
endplace:终点地名,传递时须做urlencode
http://apix.sinaapp.com/driving/?appkey=trailuser&startcity=%E5%8C%97%E4%BA%AC&startplace=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6&endcity=%E5%8C%97%E4%BA%AC&endplace=%E5%A4%A9%E5%AE%89%E9%97%A8

013. 出租车费用 [20131004]

city:城市名,传递时须做urlencode
start:起点,传递时须做urlencode
end:终点,传递时须做urlencode
http://apix.sinaapp.com/taxi/?appkey=trailuser&city=%E5%8C%97%E4%BA%AC&start=%E6%B8%85%E5%8D%8E%E5%A4%A7%E5%AD%A6&end=%E5%A4%A9%E5%AE%89%E9%97%A8

 014. 航班状态接口 [20131004]

number:航班号
http://apix.sinaapp.com/flight/?appkey=trialuser&number=ca1111

015. 笑话接口 [20131004]

http://apix.sinaapp.com/joke/?appkey=trialuser

016. 周公解梦接口 [20131004]

content: 梦见内容,传递时须做urlencode
http://apix.sinaapp.com/dream/?appkey=trialuser&content=%E8%80%81%E5%B8%88

017. 中英互译 [20131104]

content: 翻译内容,传递时须做urlencode
http://apix.sinaapp.com/translate/?appkey=trialuser&content=%E8%A1%A8%E7%A4%BA

018. 星座运势接口 [20131104]

name: 星座名,传递时须做urlencode
http://apix.sinaapp.com/astrology/?appkey=trialuser&name=%E7%99%BD%E7%BE%8A%E5%BA%A7

019. 彩票开奖结果接口 [20131104]

name:彩票名称,传递时须做urlencode
http://apix.sinaapp.com/lottery/?appkey=trailuser&name=%E5%8F%8C%E8%89%B2%E7%90%83
备注:支持双色球,大乐透,3D,排列3,排列5,七星彩,七乐彩,胜负彩,任选九,六场半全场,四场进球

020. 苹果IMEI/序列号查询接口 [20131104]

number: IMEI号或序列号
http://apix.sinaapp.com/apple/?appkey=trialuser&number=358031058974471

021. 百科全书接口 [20131204]

word: 词条,传递时须做urlencode
http://apix.sinaapp.com/encyclopedia/?appkey=trialuser&word=%e5%be%ae%e4%bf%a1

022. 图书介绍 [20131104]

name: 图书名,传递时须做urlencode
http://apix.sinaapp.com/book/?appkey=trialuser&name=%E7%9B%97%E5%A2%93%E7%AC%94%E8%AE%B0

023. 歌曲介绍 [20131104]

name: 音乐名,传递时须做urlencode
http://apix.sinaapp.com/song/?appkey=trialuser&name=%E6%96%B0%E5%B9%B4%E5%A5%BD

024. 影片介绍 [20131104]

name: 电影名,传递时须做urlencode
http://apix.sinaapp.com/movie/?appkey=trialuser&name=%E9%BE%99%E7%8C%AB

025. 历史上的今天接口 [20140104]

http://apix.sinaapp.com/history/?appkey=trialuser

026. 经济指标

027. 财经大事

028. 手机充值

http://apix.sinaapp.com/recharge/?appkey=trialuser
备注:腾讯财付通官方网站充值接口,基于微信安全支付

029. 城市团购 [20140104]

city: 城市名,传递时须做urlencode,你可以指定一个固定城市 查看支持城市列表
keyword:关键字,传递时须做urlencode,可为商户名、商品名、地址等
http://apix.sinaapp.com/groupon/?appkey=trialuser&city=%E6%B7%B1%E5%9C%B3&keyword=%E5%8D%8E%E5%BC%BA%E5%8C%97

030. 城市优惠

031. 黄金

032. 白银

033. 外汇

034. 图片检索

035. 视频检索

036. 地图位置服务 [20140104]

lat:纬度
lng:经度
entity:查询名称,传递时须做urlencode
http://apix.sinaapp.com/map/?appkey=trialuser&lat=39.915&lng=116.404&entity=%E5%8C%BB%E9%99%A2

037. 菜谱 [20140104]

name: 菜谱名称,传递时须做urlencode
http://apix.sinaapp.com/recipe/?appkey=trialuser&name=%E5%89%81%E6%A4%92%E9%B1%BC%E5%A4%B4

038. 手机号码归属地查询接口 [20140105]

number: 手机号码
http://apix.sinaapp.com/mobilephone/?appkey=trialuser&number=13456789000

039. 身份证归属查询查询接口 [20140105]

number: 15或18位身份证号码
http://apix.sinaapp.com/idcard/?appkey=trialuser&number=542621201212210003

040. 电视节目表 [20140116]

http://apix.sinaapp.com/tvprogram/?appkey=trialuser

041. IP地址查询接口 [20140116]

http://apix.sinaapp.com/ip/?appkey=trialuser&ip=202.203.208.80

042. 每日宜忌查询接口 [20140116][源网站已关闭,失效]

http://apix.sinaapp.com/almanac/?appkey=trialuser

043. 疾病查询 [20140121]

name: 疾病名,传递时须做urlencode
http://apix.sinaapp.com/illness/?appkey=trailuser&name=%E6%84%9F%E5%86%92

044. 号码吉凶

045. 邮政编码

code:邮政编码
http://apix.sinaapp.com/postcode/?appkey=trailuser&code=518057

046. 产品比价查询接口 [20140118]

name: 商品名,传递时须做urlencode
http://apix.sinaapp.com/price/?appkey=trialuser&name=iphone%205s

047. 食物热量查询接口 [20140120]

name:食物名
http://apix.sinaapp.com/calorie/?appkey=trailuser&name=%E9%B8%A1%E8%9B%8B

048. 人品计算 [20140118]

name: 人名,传递时须做urlencode
http://apix.sinaapp.com/moral/?appkey=trialuser&name=%E5%BC%A0%E4%B8%89

049. 违章查询 [20140118]

http://apix.sinaapp.com/peccancy/?appkey=trialuser

050. 药物查询 [20140117]

name: 药物名,传递时须做urlencode
http://apix.sinaapp.com/medicine/?appkey=trialuser&name=%E9%9D%92%E9%9C%89%E7%B4%A0

051. 周易算命 [20140117]

name: 人名,传递时须做urlencode
http://apix.sinaapp.com/fortune/?appkey=trailuser&name=%E5%BC%A0%E4%B8%89

052. 机票查询 [20140118]

http://apix.sinaapp.com/airline/?appkey=trialuser

053. 酒店查询 [20140119]

http://apix.sinaapp.com/hotel/?appkey=trialuser

054. 驾照模拟考试 [20140119]

http://apix.sinaapp.com/drivingtest/?appkey=trialuser

056. 在线点歌查询接口 [20140119]

singer: 歌手名,传递时须做urlencode
song: 歌曲名,传递时须做urlencode
http://apix.sinaapp.com/music/?appkey=trialuser&singer=%E5%87%A4%E5%87%B0%E4%BC%A0%E5%A5%87&song=%E6%9C%80%E7%82%AB%E6%B0%91%E6%97%8F%E9%A3%8E

057. 车牌归属地吉凶 [20140119]

number:车牌号码。例如:湘C12345,传递时须做urlencode
http://apix.sinaapp.com/platenumber/?appkey=trialuser&number=%E6%B9%98C12345

058. 冬吴相对论 [20140120]

number:节目期号
http://apix.sinaapp.com/dongwu/?appkey=trialuser&number=123

059. 每日英语 [20140120]

type:类型,目前支持translation, listening
http://apix.sinaapp.com/daily/?appkey=trailuser&type=translation

060. 实时路况 [20140120]

http://apix.sinaapp.com/traffic/?appkey=trialuser

061. 菜价查询 [20140121]

http://apix.sinaapp.com/foodprice/?appkey=trialuser

062. 成语词典 [20140121]

word:成语名,传递时须做urlencode
http://apix.sinaapp.com/idiom/?appkey=trailuser&word=%E6%96%B9%E5%85%B4%E6%9C%AA%E8%89%BE

 063. 人脸识别接口 [20140315]

picurl:图片地址,传递时须做urlencode
http://apix.sinaapp.com/face/?appkey=trialuser&picurl=http://www.ineiyi.com/uploads/allimg/1312/79-131213142315.jpg

 064. 四六级成绩查询接口 [20140317]

http://apix.sinaapp.com/cet/?appkey=trialuser

 

转载于:https://www.cnblogs.com/iiot/p/4347226.html

2016-09-06 15:14:27 LanBuff 阅读数 1748
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15687 人正在学习 去看看 传智
我们前一篇已经讲了,微信平台(不管是订阅号还是服务号)和我们的网站进行交互时,都是通过微信平台开放给外部系统的接口调用来实现的,也就是说,粉丝向公众号发送一次交互(文字,图片,声音或者菜单点击都算交互)后,微信平台会向你配置的url所对应的网站发出调用请求,来执行你的网站的代码,在代码中你进行各种处理后返回一个处理结果。

           你的网站具体使用什么语言来开发取决于你自己的爱好,不过我建议大家使用php来做,因为目前做web开发php是最方便的,当然你也可以用java写,没关系的,我们以php为例说明。

         微信平台在配置url时会验证一下你对应的这个url的网站是否真实存在,是否是你自己的网站。验证的原理很简单,你首先填写一个Token(你不用管这个是什么,只要记住它其实就是一个字符串符号,用来生成一个代表你自己身份的签名),然后填写你的网站的url,点击提交,如下图。


            平台就会向这个url所对应的网站发送一个GET请求,同时携带4个参数。参数参考图2的说明。如下图。



       其中timestamp是一个时间戳。时间戳其实就是从 1970年 1月1日至当前时间的总秒数。你就数吧,从1970年 1月 1日到我们现在这个时刻一共流逝了多少秒那么这个时间戳就是多少。所以时间戳任何时刻都是不同的。Nonce和echostr都是平台产生的随机数。Signature也就是签名,它是经过如下计算得到的:

       将当前时间戳(timestamp),nonce以及你输入的TOKEN按照字母顺序排序后拼接在一起形成一个字符串。例如: timestamp是345632,nonce是132a,TOKEN是123,那么我们先按照字母顺序排列,得到这样的顺序:123,132a,345632.然后拼接得到:123132a345632.最后经过SHA1加密运算得到签名Signature:E69E5E13D8B045923EF1BE38DF938F5621CA3004。SHA1是一个加密算法,细节这里就不讲了。这些参数一会都会通过查询参数的形式发送给我们网站的。

为了能够接受这些参数我们需要一个自己的php网站。Ok,我们现在就开始搭建这样的一个网站。

       1. 先下载WAMP集成安装套件,这个很简单,大家一路点击“下一步”,最后点击一下“完成”就可以了,我是直接安装在C盘根目录的,安装好了以后的目录结构 如下图. 安装完成后我们可以看到,我们需要的apache,mysql和php都已经安装好了,而且默认帮你安装了一个管理工具,非常方便。最重要的就是www这个目录,这个是就我们即将要创建的网站的根目录。



2. 进入www目录,新建一个index.php的文件,在里面只写入一行代码,如下图所示。




              然后在浏览器里面输入localhost,如果出现上图的页面,说明我们的服务器环境是已经ok,我们就可以继续下一步了。

 3.      接下来,我们开始代码处理。我们首先获取平台传过来的4个参数,

 

具体的代码见下面,里面已经有很详细的说明了哦。这里再说一下,为什么使用php,大家看到没有,用php 代码只有不到100行,而我之前用java实现过同样的功能,却花了500多行,这得益于php的很多函数以及帮我们做好了,我们可以直接使用。所以,php特别适合中小型网站的哦开发哦。大家也可以用其他语言换个方式实现一下试试。






        这里再补充解释一下上面的代码:代码的处理过程是这样的,将传过来的时间戳timestamp,随机数nonce和你自己输入的TOKEN(你自己输入的,所以当然知道TOKEN是多少)排序,拼接,SHA1处理,最后得到一个签名。

 

        因为我们得到这个签名的过程和平台处理的过程是一模一样的,所以我们得到的签名和平台发送给我们的签名Signature的值应该是一模一样的。

        将得到的结果和传过来的签名Signature比较,如果相等,就返回echostr(echostr也是平台发给我们的参数哦)给平台,告诉平台我已经接受到了你的请求,而且这个请求在网络传输的过程中没有被篡改(因为签名相等)。这样验证就通过了,相当于和平台和我们的网站之间建立了一个可信的通信通道。

     如果你看到平台显示下面的信息,说明验证通过了,你就可以正式开始你的微信开发了。





.2. 使用php开发微信服务器端


          我们的微信商城其实就是一个web程序,只不过这个web程序的客户端不再是浏览器而是微信平台了,所以,任何支持web服务器端开发的语言都可以作为我们微信商城的开发语言,例如Java、php等。为什么这里我选择php呢,因为php是目前为止最适合web开发的语言,而且随着我们的深入,你会发现php在web开发上的强大之处,很多java要很多行代码才能够实现的功能,php只要一句代码就可以很好的实现了。所以,我们选择php作为我们的示例开发语言。

        那么,大家在使用php开发时,我相信一提到调试,很多人还是会觉得很头疼,特别是新手更加是这样。我见过很多人抱怨php调试非常不方便,只能使用一些echo,print等输出语句输出变量值来进行调试,这样的确是非常麻烦的,因为这些输出语句无法设置断点。所以,我这里首先帮大家解决php断点调试的问题,因为没有这个断点调试的“利器”,以后的开发中出现问题,你想解决是很痛苦的。

       说起php的断点调试,我相信很多同学首先想到的就是zend studio+zend debugger,没错,你可以这么做,但是,这么做就意味着你需要手动配置很多东西,而且还不一样能保证停留在断点处。这里,我就不饶湾子了,我教大家一个很方便的工具,直接安装一下就可以原来调试php了。

       这个工具就是XAMPP+PhpEclipse的组合,其中XAMPP是一个集成安装包,里面包括了:Apache, MySQL、PHP和Perl。XAMPP其中的A代表Apache,M代表MySQL,第一个P代表PHP,第2个P代表Perl.这个工具自身携带了php调试功能xdbug,大家安装以后几乎不需要特意配置就可以用来调试php了。

 

 

下面请跟着我一步步来操作:

1.打开http://www.apachefriends.org/zh_cn/download.html,下载XAMPP for Windows1.8.2 & 1.8.3


2.     解压该压缩包,并双击    xampp-win32-1.8.0-VC9-installer.exe

3.       一路点Next,在选择文件安装位置时,选择安装在C:\盘根目录。




4.  等待安装



5. 完成。



6.     完成后会自动打开控制面板。其中1处是启动各种服务的按钮,2 是配置各种服务的按钮,3是查看各种服务的日志的按钮。

7.    点击Apache,MySql   的Start按钮,启动apache web服务器和mysql 数据库服务器,如下图,能看到Pid和ports的下方出现了 值 时表示服务启动成功 。

     如果出现启动报错时,检查一下是否 相关的端口被占用了,修改配置文件里面的相关端口的配置后再重新启动试试。




     下载并解压phpeclipse,点击运行,你会发现聪明的phpeclipse已经自动发现了xampp,并且已经自动帮你配置好了。




        接下来很重要的一步,我们将创建一个php网站项目,并且验证一下我们的xampp是否能对我们的php网站进行调试。只有我们的调试能正常进行,以后的课程中我才能一步步的帮大家分析微信平台和我们的网站的交互过程的细节,大家才能真正明白原理,然后大家在实际中遇到问题时也可以使用调试来分析解决。

 

       1.    首先,新建一个php项目 。增加一个php文件,里面随便加一些最简单的代码。并设置几个断点。这里注意:设置断点时一定不要双击来设置,一定要通过在左侧右键,然后在弹出的右键菜单里面选择:“Toggle Xdebug BreakPoint”来设置。这是因为双击设置的是java的断点,而我们是需要对php设置断点,必须通过右键的方式来设置,这样设置的才是php的断点,这样的断点XDebug才可以识别。否则,你很容易会出现莫名其妙的无法在断点处停住的问题。







2.   接下来,打开我们的xampp的安装目录,我的是:C:\xampp\php,用记事本打开里面的php.ini配置文件。我们要把里面的最后一部分关于xdebug的配置前的注释打开。修改好之后的截图如下:







       这样,我们就打开了xampp的xdebug调试功能。如果你不是很肯定是否已经打开了该调试功能,可以自己创建任意一个php项目,在里面写上一个文件,在该文件里面写上:phpinfo();然后执行以下,看看是否有如下输出:





3.      这样,我们已经完成了服务器端的配置。接下来需要在我们的phpeclipse里面设置一下,让我们的ide能够和我们服务器端的xdebug通信。跟我来。打开windows-prefrences下面的phpeclipse,按照如下图所示 检查是否配置正确。




4.       接下来就可以测试一下我们的调试功能是否能正常调试了。一起来。在file.php上右击,选择debug as->debugconfiguration   




5.   配置 完保存后,以后调试时,只需要在工具栏的那个debug图标下选择我们刚才的配置就可以进行调试了,如下图。







6.      这时,我们在phpeclipse里面自带的浏览器或者在ie浏览器里面输入:http://localhost:8080/phpTest/file.php?XDEBUG_SESSION_START=testID
注意后面的参数:XDEBUG_SESSION_START=testID这里的testID 就是我们之前在debug配置里面设置的标识字符串。如图。




7. 最后,停在断点的效果如下图所示。





     有了断点单步调试的功能,接下来我们不管做什么php网站,都方便很多了。在下一讲,我将结合php单步调试给大家深入分析微信商城开发的原理。

2018-08-02 11:55:19 jiepan9178 阅读数 1617
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15687 人正在学习 去看看 传智

整理一下微信API文档,以备未来开发,本文API内容为常用的微信开发API整理,内容有待完善......

package cn.vision.weixindemo.utils.base.API;

public class WeiXin_API {

    //    授权类
    /**
     * 获取授权Token
     * https请求方式: GET
     *  字段      必填              备注
     * grant_type	是	    获取access_token填写client_credential
     * appid	    是	    第三方用户唯一凭证
     * secret	    是	    第三方用户唯一凭证密钥,即appsecret
     *
     * by Vision
     */
    public static String API_GET_ACCESS_TOKEN = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";

//    菜单类
    /**
     * 创建菜单
     * http请求方式:POST(请使用https协议)
     * 字段             必填                             备注
     * button	        是	                            一级菜单数组,个数应为1~3个
     * sub_button	    否	                            二级菜单数组,个数应为1~5个
     * type	            是	                            菜单的响应动作类型,view表示网页类型,click表示点击类型,miniprogram表示小程序类型
     * name	            是	                            菜单标题,不超过16个字节,子菜单不超过60个字节
     * key	        click等点击类型必须                  菜单KEY值,用于消息接口推送,不超过128字节
     * url	        view、miniprogram类型必须	        网页 链接,用户点击菜单可打开链接,不超过1024字节。 type为miniprogram时,不支持小程序的老版本客户端将打开本url。
     * media_id	    media_id类型和view_limited类型必须	调用新增永久素材接口返回的合法media_id
     * appid	    miniprogram类型必须	                小程序的appid(仅认证公众号可配置)
     * pagepath 	miniprogram类型必须	                 小程序的页面路径
     *
     * by Vision
     */
    public static String API_POST_CREATE_MENU = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN";

    /**
     * 查询菜单
     *http请求方式:GET
     * 字段             必填                             备注
     * access_token     是                          微信开发者授权token
     * by Vision
     */
    public static String API_GET_QUERY_MENU = "https://api.weixin.qq.com/cgi-bin/menu/get?access_token=ACCESS_TOKEN";

    /**
     * 删除菜单
     *  字段             必填                             备注
     * access_token     是                          微信开发者授权token
     * by Vision
     */
    public static String API_GET_DELETE_MENU = "https://api.weixin.qq.com/cgi-bin/menu/delete?access_token=ACCESS_TOKEN";
//个性化菜单
    /**
     * 预留
     */

//IP类
    /**
     * 获取微信服务器ip
     *  字段             必填                             备注
     * access_token     是                          微信开发者授权token
     * by Vision
     */
    public static String API_GET_GETCALLBACKIP ="https://api.weixin.qq.com/cgi-bin/getcallbackip?access_token=ACCESS_TOKEN";


//    客服类
    /**
     * 添加客服账号
     *  http请求方式: POST
     *
     *      "kf_account" : "test1@test",
     *      "nickname" : "客服1",
     *      "password" : "pswmd5",
     *
     *  by Vision
     */
    public static String API_POST_ADDKF = "https://api.weixin.qq.com/customservice/kfaccount/add?access_token=ACCESS_TOKEN";

    /**
     * 修改客服账号
     * http请求方式: POST
     *
     *      "kf_account" : "test1@test",
     *      "nickname" : "客服1",
     *      "password" : "pswmd5",
     *
     * by Vision
     */
    public static String API_POST_UPDATEKF = "https://api.weixin.qq.com/customservice/kfaccount/update?access_token=ACCESS_TOKEN";

    /**
     * 删除客服账号
     * http请求方式: GET
     *      "kf_account" : "test1@test",
     *      "nickname" : "客服1",
     *      "password" : "pswmd5",
     *
     * by Vision
     */
    public static String API_GET_DELETEKF = "https://api.weixin.qq.com/customservice/kfaccount/del?access_token=ACCESS_TOKEN";

    /**
     * 上传客服头像
     * http请求方式: POST/FORM
     *
     * 调用示例:使用curl命令,用FORM表单方式上传一个多媒体文件,curl命令的具体用法请自行了解
     *
     * by Vision
     */
    public static String API_POST_KFHEADIMG = "http://api.weixin.qq.com/customservice/kfaccount/uploadheadimg?access_token=ACCESS_TOKEN&kf_account=KFACCOUNT";

    /**
     * 客服发送消息
     * http请求方式: POST
     *  不同的消息类型需要提交不同的参数,具体请查阅官方文档
     *
     * by Vision
     */
    public static String API_POST_KFCONTEXT = "https://api.weixin.qq.com/cgi-bin/message/custom/send?access_token=ACCESS_TOKEN";

    /**
     *  http请求方式: POST
     * 开发者可通过调用“客服输入状态”接口,返回客服当前输入状态给用户。
     * 字段             必填           备注
     * access_token	    是	        调用接口凭证
     * touser	        是	        普通用户(openid)
     * command	        是	        "Typing":对用户下发“正在输入"状态 "CancelTyping":取消对用户的”正在输入"状态
     * by Vision
     */
    public static String API_POST_KF_TYPING = "POST https://api.weixin.qq.com/cgi-bin/message/custom/typing?access_token=ACCESS_TOKEN";

//     模板消息类
    /**
     * 设置所行业
     * http请求方式: POST
     *
     *  参数	        是否必须	    说明
     * access_token 	是	        接口调用凭证
     * industry_id1	    是	        公众号模板消息所属行业编号
     * industry_id2	    是	        公众号模板消息所属行业编号
     *
     * 编号消息请查阅官方文档
     * by  Vision
     */
    public static String API_POST_SET_INDUSTRY = "https://api.weixin.qq.com/cgi-bin/template/api_set_industry?access_token=ACCESS_TOKEN";

    /**
     * 获取设置的行业信息
     * http请求方式:GET
     *
     * 参数	            是否必须	    说明
     * access_token	    是	        接口调用凭证
     *
     * by Vision
     */
    public static String API_GET_INDUSTRY = "https://api.weixin.qq.com/cgi-bin/template/get_industry?access_token=ACCESS_TOKEN";

    /**
     * 获得模板ID
     * http请求方式: POST
     *
     * 参数               	是否必须	        说明
     * access_token	        是	            接口调用凭证
     * template_id_short	是	            模板库中模板的编号,有“TM**”和“OPENTMTM**”等形式
     * by Vision
     */
    public static String API_GET_TEMPLATE = "https://api.weixin.qq.com/cgi-bin/template/api_add_template?access_token=ACCESS_TOKEN";

    /**
     * 获取模板列表
     * http请求方式:GET
     * https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN
     *
     * 参数	            是否必须	    说明
     * access_token	    是	        接口调用凭证
     */
    public static String API_GET_ALL_PRIVATE_TEMPLATE = "https://api.weixin.qq.com/cgi-bin/template/get_all_private_template?access_token=ACCESS_TOKEN";

    /**
     * 删除模板
     * http请求方式:POST
     * https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN
     *
     * 参数	            是否必须    	说明
     * access_token	    是	            接口调用凭证
     * template_id	    是	            公众帐号下模板消息ID
     */
    public static String API_POST_DEL_PRIVATE_TEMPLATE = "https://api.weixin.qq.com/cgi-bin/template/del_private_template?access_token=ACCESS_TOKEN";

    /**
     * 发送模板消息
     * http请求方式: POST
     * https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN
     * 参数	            是否必填    	说明
     * touser	        是	            接收者openid
     * template_id	    是	            模板ID
     * url	            否	            模板跳转链接
     * miniprogram	    否	            跳小程序所需数据,不需跳小程序可不用传该数据
     * appid	        是	            所需跳转到的小程序appid(该小程序appid必须与发模板消息的公众号是绑定关联关系,暂不支持小游戏)
     * pagepath	        否	            所需跳转到小程序的具体页面路径,支持带参数,(示例index?foo=bar),暂不支持小游戏
     * data	            是	            模板数据
     * color	        否	            模板内容字体颜色,不填默认为黑色
     *
     */
    public static String API_POST_SENDTEMPLATE = "https://api.weixin.qq.com/cgi-bin/message/template/send?access_token=ACCESS_TOKEN";

//    自动回复类
    /**
     * http请求方式: GET(请使用https协议)
     * https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info?access_token=ACCESS_TOKEN
     *  具体参数请查阅官方文档
     */
    public static String API_GET_CURRENT_AUTOREPLY_INFO = "https://api.weixin.qq.com/cgi-bin/get_current_autoreply_info?access_token=ACCESS_TOKEN";
}

 

2018-01-07 14:06:25 gougouge555 阅读数 1574
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15687 人正在学习 去看看 传智

微信开发的准备工作

首先申请微信开发的测试公众号,登陆后会看到微信后台管理界面,如下所示
常用参数:AppID(公众号用户名ID),AppSecret(公众号密匙——相当于密码)

目的:通过appid和appsecret可以通过微信服务端获取到小纸条(临时口令token)

获取token的URL
https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET

可以查阅微信API左侧导航栏-->开始开发-->获取access_token

将URL中的大写的APPID与APPSECRET替换为测试公众号参数进行访问,微信会返回Json格式的数据

若APPID与APPSECRET没有错误,将会返还

access_token ——公众号管理口令
exprires ——有效时间
若有错误,则会返还如下数据包

{"errcode":40013,"errmsg":"invalid appid"}
errcode ——错误代码,可以查阅官方API进行错误排查

errmsg ——错误信息

作为JavaEE开发微信,我使用的是java.net.URL类

import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.net.URL;

public class TokenTest {
	public static void main(String[] args) throws IOException {
	
		String getToken = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET";
		//替换字符串
		getToken = getToken.replaceAll("APPID", "wx5470979c202cffb4");
		getToken = getToken.replaceAll("APPSECRET", "642fe995d0bcb88d52ce14f6e1d4e7a3");
		//开启URL,将数据包转换成字符串
		URL url = new URL(getToken);
		InputStreamReader isr = new InputStreamReader(url.openStream());
		BufferedReader br = new BufferedReader(isr);
		StringBuffer sb = new StringBuffer();
		int cp = 0;
		while ((cp = br.read())!=-1){
			sb.append((char) cp);
		}
		
		System.out.println(sb.toString());
		
	}
}
打印结果如下
{"access_token":"5_ATkgQGjgtEZ7p-Zrorz9gcikrweszy2vbcxAjL6mBNH6jIeyQl4cdHKPmwMK_xKrWFSwFTaHu2T6fmQSKgiROMxtG9Tknq_1zEQ7JIlSMieIXVNNhOBpzD20rJy2xf2KaWnmTAFfPoas_xqdCXTiAFAGBX","expires_in":7200}

通过数据包的数据,可以获取到access_token。

Access_Token

  • 测试号每日获取上限200次,正式公众号为每日上限2000次
  • access_token的有效期目前为2个小时,需定时刷新,重复获取将导致上次获取的access_token失效
  • 当产生新access_token,旧access_token即失效,产生新access_token与旧access_token之间存在五分钟共存时间,保证业务的平滑过渡
获取到Access_Token后,接下来我们进行修改公众号按钮的操作,按钮如下所示


微信API添加按钮说明

微信API位置:左侧导航栏-->自定义菜单-->自定义菜单创建接口

调用接口,post方式传输json
http请求方式
POST(请使用https协议) 
https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN

这里,只需要替换掉ACCESS_TOKEN,其他按钮数据使用Post方式传输即可。
按钮数据格式
{
     "button":[
     {    
          "type":"click",
          "name":"今日歌曲",
          "key":"V1001_TODAY_MUSIC"
      },
      {
           "name":"菜单",
           "sub_button":[
           {    
               "type":"view",
               "name":"搜索",
               "url":"http://www.soso.com/"
            },
            {
               "type":"click",
               "name":"赞一下我们",
               "key":"V1001_GOOD"
            }]
       }]
 }



常用的数据类型有
button 一级类目按钮,1~3个
sub_button 二级类目按钮,1~5个
type 按钮类型,常用类型:click(点击事件,会偷偷地发送数据给服务器)
    view(连接到一个网页)
name 按钮显示名称
url 链接的地址
以Post方式提交数据, 这里引用了另一篇博文,感谢原作者。
import java.io.BufferedReader;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.net.URL;
import java.nio.charset.Charset;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
import com.aishang.util.HttpRequest;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;



public class WechatTest {
	static String access_tonken = ""; 
	
	public static void main(String[] args) throws Exception {
		
		Scanner scan = new Scanner(System.in);
		int flag = 0;
		do{
			System.out.println("请输入要选择的操作");
			System.out.println("1.获取token");
			System.out.println("2.添加按钮");
			int a = scan.nextInt();
			switch (a) {
			case 1:
				String token = getToken("wx5470979c202cffb4","642fe995d0bcb88d52ce14f6e1d4e7a3");
				System.out.println("服务器返回信息:" + token);
				JSONObject parseObject = JSON.parseObject(token);
				access_tonken = (String)parseObject.get("access_token");
				System.out.println("access_tonken是:" + access_tonken);
				break;
				
			case 2:
				String butURL = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token="+access_tonken;
				String sendPost = HttpRequest.sendPost(butURL,"{\"button\":[{ \"type\":\"click\",\"name\":\"今日歌曲\",\"key\":\"V1001_TODAY_MUSIC\"},{\"name\":\"菜单\", \"sub_button\":[{\"type\":\"view\", \"name\":\"搜索\",\"url\":\"http://www.soso.com/\"},{\"type\":\"click\",\"name\":\"赞一下我们\", \"key\":\"V1001_GOOD\"}]}]}" );
				System.out.println(sendPost);
				break;
	
			default:
				break;
			}
			
			System.out.println("是否继续        -1【是】    -2【否】");
			flag = scan.nextInt();
			 
		}while(flag == 1);
		
		
		
		
	}
}





控制台输出

请输入要选择的操作
1.获取token
2.添加按钮
1
===================================
服务器返回信息:{"access_token":"5_nJBWPP2in70xxmLkrgC-i8lzBQNFAMID9ygQAiTDnxzUp6bJLYq28iX5YLOGUAtM0L7Nxz0jNUktyRJEpt4Af3zKDIQSyDl-AeXFtXSzxhz_IGRmqhB8f6ub5_zd1S7Frm1hf9E1rd8A_nN2MXUgAHAYJG","expires_in":7200}
======================================

access_tonken是:5_nJBWPP2in70xxmLkrgC-i8lzBQNFAMID9ygQAiTDnxzUp6bJLYq28iX5YLOGUAtM0L7Nxz0jNUktyRJEpt4Af3zKDIQSyDl-AeXFtXSzxhz_IGRmqhB8f6ub5_zd1S7Frm1hf9E1rd8A_nN2MXUgAHAYJG
========================================
是否继续        -1【是】    -2【否】
1
请输入要选择的操作
1.获取token
2.添加按钮
2
=======================================
{"errcode":0,"errmsg":"ok"}
是否继续        -1【是】    -2【否】

当显示errcode=0时,意味着添加成功,进入到测试公众号后台管理界面,可以清楚的看到测试关注用的二维码



*注意:每次调试后需要重新关注测试公众号,操作不要过快。


-----------------------------------------------分割线----------------------------------------------

大家能够看到这里,首先感谢大家的阅读,如果大家有兴趣,可以关注一波,每一周一更



2017-09-22 08:20:06 towtotow 阅读数 522
  • PHP微信接口开发

    微信公众平台是运营者通过公众号为微信用户提供资讯和服务的平台,而公众平台开发接口则是提供服务的基础,开发者在公众平台网站中创建公众号、获取接口权限后,可以通过阅读本接口文档来帮助开发...

    15687 人正在学习 去看看 传智

微信公众号开发中,

获取常用的信息,

微信会直接把结果返回给你。


但是有时我们需要获取一些权限级别高的信息时,

微信会要求我们提供access token

只有通过access token验证后,

才会把内容返回给我们。


11token.jpg


今天的微信开发视频课程中,

将会告诉你怎么获得公众平台开发需要用到的access token…

微信公众号开发获取access token方法,源代码视频教程在线观看

http://edu.csdn.net/course/detail/2586/42345

没有更多推荐了,返回首页