2018-03-08 13:57:34 coder_slsu 阅读数 16581
  • PHP微信接口开发

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

    15698 人正在学习 去看看 传智

接口测试帐号申请

1.测试号申请地址:https://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login,申请页面如下图:
这里写图片描述
2.点击登录按钮出现如下二维码界面,使用手机微信进行扫描登录。
这里写图片描述
3.扫描后手机微信上回提示确认登录,点击确认后PC端页面就会跳转至测试号管理页面如下:
这里写图片描述
4.URL填写:http://外网IP:端口号(或者直接写域名)/xxx/xxx 。外网IP或者域名可以在腾讯云,花生壳等购买。(注意:此处配置的URL必须是可以访问的公网地址)
Token:自主设置,这个token只用于验证开发者服务器。

5.此时填写好的URL和Token点击提交会提示配置失败

6.创建一个servlet用于接收并返回微信服务器发送的随机字符串。注意WebServlet中的path就是你将要绑定的URL的servlet path。

参数描述
signature:微信加密签名 
timestamp:时间戳 
nonce:随机数 
echostr:随机字符串 

@WebServlet("/wx")

public class ServerPortal extends HttpServlet {

    private static final long serialVersionUID = 1L;

    //此处的token就是url下面自定义填写用于验证服务器的token
    private static final String token = "4WX";

    protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {

        String echostr = request.getParameter("echostr");
        PrintWriter pw = response.getWriter();
        //将微信服务器发送过来的随机字符串返回给微信服务器
        pw.append(echostr);
        pw.flush();
        pw.close();
    }

    protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
        doGet(request, response);
    }
}

7.完成上述配置后,此时点击提交就会提示配置成功了。

8.接下来为自己的测试号推送菜单,菜单的详细规则见微信开发者文档 https://mp.weixin.qq.com/wiki?t=resource/res_main&id=mp1421141013

本文推送菜单示例未对异常做处理直接抛出,实际生产过程是不允许的。


public class CreateMenu {

    public static void main(String[] args) throws Exception {

         //微信菜单推送地址

         String custmMenuUrl = "https://api.weixin.qq.com/cgi-bin/menu/create?access_token=";
         //获取access_token
         String accessToken = getAccessToken();
         custmMenuUrl = custmMenuUrl + accessToken;
         URL url = new URL(custmMenuUrl);
         //建立连接
         HttpURLConnection connection = (HttpURLConnection) url.openConnection();
         connection.setRequestMethod("POST");
         connection.setDoOutput(true);
         connection.setDoInput(true);
         connection.connect();
         //发送菜单字符流
         OutputStream outputStream = connection.getOutputStream();
         outputStream.write(getMenuStr().getBytes("UTF-8"));
         outputStream.flush();
         outputStream.close();
         //接收返回信息
         InputStream inputStream = connection.getInputStream();
         int size =inputStream.available();
         byte[] bs =new byte[size];
         inputStream.read(bs);
         String message=new String(bs,"UTF-8");
         System.out.println(message);
 }

    public static String getMenuStr() throws JSONException, Exception{

        JSONObject menu = new JSONObject();//一级菜单对象
        JSONArray list = new JSONArray();//一级菜单列表
        //一级菜单内容(一级菜单最多允许3)
        JSONObject subButton = new JSONObject();
        JSONObject subButton2 = new JSONObject();
        JSONObject subButton3 = new JSONObject();

        //一级菜单内容2的二级菜单列表
        JSONArray subList = new JSONArray();
        JSONArray subList2 = new JSONArray();
        JSONArray subList3 = new JSONArray();

        //一级菜单内容2的二级菜单内容2
        JSONObject jsonObject = new JSONObject();
        JSONObject jsonObject2 = new JSONObject();
        JSONObject jsonObject3 = new JSONObject();

        jsonObject.put("type", "view");
        jsonObject.put("name", "百度");
        jsonObject.put("url", "http://www.baidu.com/");
        subList.put(jsonObject);

        jsonObject2.put("type", "view");
        jsonObject2.put("name", "内涵段子");
        jsonObject2.put("url", "http://www.budejie.com/");
        subList2.put(jsonObject2);

        jsonObject3.put("type", "view");
        jsonObject3.put("name", "新闻纵览");
        jsonObject3.put("url", "http://news.baidu.com/");
        subList3.put(jsonObject3);

        subButton.put("name", "度娘");
        subButton.put("sub_button", subList);

        subButton2.put("name", "未完待续");
        subButton2.put("sub_button", subList2);

        subButton3.put("name", "敬请期待");
        subButton3.put("sub_button", subList3);

        list.put(subButton);
        list.put(subButton2);
        list.put(subButton3);

        menu.put("button", list);
        return menu.toString();
    }

public static String getAccessToken() throws Exception{

//获取accss_token的地址
String accessTokenUrl = "https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=你的appId&secret=你的appsecret";

        URL url = new URL(accessTokenUrl);

        HttpURLConnection connection = (HttpURLConnection) url.openConnection();

        connection.setRequestMethod("GET");

        connection.setDoOutput(true);

        connection.setDoInput(true);

        connection.connect();
        //获取返回的字符
        InputStream inputStream = connection.getInputStream();

        int size =inputStream.available();

        byte[] bs =new byte[size];

        inputStream.read(bs);

        String message=new String(bs,"UTF-8");

        //获取access_token

        JSONObject jsonObject = new JSONObject(message);

        return jsonObject.getString("access_token");

    }

至此微信测试号申请成功并完成菜单推送,有任何问题请留言。

2016-07-05 20:01:18 RamboCracker 阅读数 1896
  • PHP微信接口开发

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

    15698 人正在学习 去看看 传智

微信公众平台的管理地址是:https://mp.weixin.qq.com

注册完个人公众号以后,登录到微信公众平台的管理后台,需要用微信扫一下二维码才能登录进去哦。。。

这个后台提供了基本的对公众号用户管理的功能,如下:

1)可以根据性别和地区对公众号用户群发消息

2)设置关注公众号后的自动“打招呼的消息”

3)自定义公众号里面的菜单项以及点击时跳转的网页

4)查看用户给公众号发送的消息,并且可以对某个用户单独消息回复

5)上传素材的功能,订阅号每日发送的消息带的图片要从上传的素材中找

各种数据统计的功能,如下:

1)用户分析:对每日新用户关注的数量、取消关注的数据、用户的性别、语言、省区、城市、机型分布情况进行统计

2)图文分析:统计公众号的图文信息发出去后7日内被阅读情况

3)菜单分析:统计每个菜单的点击的情况

4)消息分析:对公众号中所有发送的消息的人数、次数和关键词进行统计

5)接口分析:统计微信公众号的基础接口的调用次数、失败率、耗时等情况

6)网页分析:统计微信菜单导流出去的网页访问量和网页中的JSSDK调用量

推广功能,如下:

1)广告主:可以申请成为广告主,让微信朋友圈帮你传播广告或者软文

2)流量主:可以申请为流量主,接腾讯提供的广告,获取报酬

设置功能,如下:

1)公众号设置:对自己的公众号的各种基本信息进行设置

2)微信认证:

3)安全中心:各种登录该后台的操作记录

4)违规记录:记录公众号的违规情况

好了,上面提供的都是对公众号的基本管理功能,下面开始简述怎么做公众号的接口开发,进而使用更高级的功能。

1)在线接口调试工具:检测调用接口时发送的参数是否正确

2)web开发者工具:在PC上模拟访问微信中跳转的网页,主要是对JSSDK调用的调试

3)公众平台测试账号:可以先申请测试账号,先对接口中的高级接口测试,因为对于没有认证过的公众号只能调用最基本的接口

4)成为认证的公正号的话,可以授权第三方开发者来完成公众号的开发和运营

~~~~~~ 分割线 ~~~~~~~

下面是微信公众号接口开发文档中提供的各项功能的简单介绍,每个接口的调用是有次数限制的:

1)成为公众号开发者的验证,先要在公众号后台中填写一个服务器配置的表单,大概意思是说,在你的服务器的某目录中写个程序文件,由微信服务器通过http来调用一下,以验证这是这个公众号的服务器;

2)在使用微信公众号的每个接口时都会带有一个access_token的参数(如:https://api.weixin.qq.com/cgi-bin/menu/create?access_token=ACCESS_TOKEN),这个参数值需要向微信服务器申请,并且只有两小时的有效时间,获取地址为: https://api.weixin.qq.com/cgi-bin/token?grant_type=client_credential&appid=APPID&secret=APPSECRET,所以你的服务器需要在快到两小时的时候重新申请这个access_token,当然每天申请的次数是有限的,不能每个业务过来都重新申请这个;

3)可以设置接口错误报警,如果在实际的运营过程中,接口发生调用错误,微信服务器可以把报警信息直接发送给某个群,设置地址是“公众平台--开发者中心--接口报警”,但是我没有找到这个地方;

4)接口测试号是需要事先申请,所以开发功能的同时,先把测试号申请下来,以避免耽搁测试;

5)自定义公众号里面的菜单,可以调用接口来修改,还可以根据用户的性别和地区显示不同的菜单;

6)当用户点击公众号里的某个菜单时,微信服务器会将该点击请求发送到你的服务器,根据菜单的类型携带不同的数据;

7)点击某个菜单,可以跳转到你的服务器上的某个网页,微信提供了weixinUI实现了标准的几种微信界面UI和效果,还提供了JSSDK帮助网页实现更高级功能,比如打开摄像头,扫一扫,录音,播放视频等;

8)可以调用素材接口,事先将各种素材比如图片传到微信服务器,以供公众号每日推送的图文消息中使用;

9)可以给公众号贴上各种标签,也可以给用户贴标签,用来分类各种用户;

10)调用接口获取用户的基本信息,如openid,位置,备注名等;

11)公众号的各种信息设置,可以生成带场景的(针对某个用户的)二维码(比如每个用户都有自己的分销提成二维码),可以将长链转成短链,用户认证等接口;

12)上面是现在主要的接口,其他的接口比如:数据统计、卡券、门店、小店、物联网设备、客服系统、摇一摇、商场wifi、扫一扫商品等,大部分是针对网店或者营销的方案,有的可能还处于测试状态,还不能使用。

好了,以上就是微信公众接口的简单介绍。

2016-05-03 16:54:45 dream20nn 阅读数 6041
  • PHP微信接口开发

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

    15698 人正在学习 去看看 传智

1.微信测试号申请:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

2.接口配置填写:由于此处URL只支持线上,而我们开发都在本地,所以要用到下面介绍的


3.Ngrok,一款国外的内网穿透利器,好处是监听本地端口映射到外网,支持外网访问本地环境【微信官方在QQ浏览器中内嵌了微信的本地测试环境其实就是用的Ngrok】这东西被墙了,并且只有注册了【貌似现在要付费?】才支持自定义域名【如果不是自定义域名,那么每次启动域名都随机,第2步中的URL还要每次变,很麻烦】

4.Natapp.cn-->基于Ngrok的免费内网穿透利器,名如其意。官网下载对应系统安装包,WINDOWS下解压,在对应文件夹内打开cmd然后执行下面的命令

【Ngrok -config ngrok.cfg -subdomain myqpp 8080】由于咱们用的Tomcat所以监听8080端口,myapp处输入自己需要设定的名称

5.执行4后下面的域名则为外网地址,访问此域名也就是访问-->127.0.0.1:8080


6.将此域名填写到第2步中的URL中,TOKEN随便填写即可,先不要点击提交【微信开发文档中有个例子,PHP的,用于验证服务器地址的有效性】

7.先不要启动咱的项目,先打开一个没有部署任何APP的Tomcat,在webapp/ROOT下面新建一个JSP页面,页面清空【不需要head,body等信息,清空所有】然后粘贴下面的代码

<%
out.print(request.getParameter("echostr"));
%>

8.点击提交即可绑定成功,然后用自己的微信扫面下方二维码关注测试公众号


9.由于获取用户userinfo,需要设置授权回调域名页面



10.现在可以关掉tomcat然后用咱们自己的项目进行开发了,注意替换对应的appID和appsecret

2016-09-06 16:07:59 chen517611641 阅读数 4422
  • PHP微信接口开发

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

    15698 人正在学习 去看看 传智

##准备工作
1.ngrok,微信的接口有一些是被动的接收从微信服务器发送的消息的,所以需要提供一个域名给微信服务器,ngrok可以将本机的指定端口,映射到一个域名。花生壳什么的也可以。
2.微信web开发者工具,微信官方的调试工具
##测试账号配置
###测试账号信息
在测试账号管理界面,你可以获取到AppID和APPSecret。
###接口配置信息
这里写图片描述

验证URL有效性成功后即接入生效,成为开发者。如果公众号类型为服务号(订阅号只能使用普通消息接口),可以在公众平台网站中申请认证,认证成功的服务号将获得众多接口权限,以满足开发者需求。

此后用户每次向公众号发送消息、或者产生自定义菜单点击事件时,开发者填写的服务器配置URL将得到微信服务器推送过来的消息和事件,然后开发者可以依据自身业务逻辑进行响应,例如回复消息等。

下面的文档描述了这个接口的作用:
http://mp.weixin.qq.com/wiki/8/f9a0b8382e0b77d87b3bcc1ce6fbc104.html
###JS接口安全域名
这里写图片描述
配置在ngrok生成的域名,配置这个配置项的目的是让开发者可以在该域名下调用微信开放的JS接口。
JS-SDK相关的内容可以看这里:
http://mp.weixin.qq.com/wiki/7/aaa137b55fb2e0456bf8dd9148dd613f.html
###测试账号二维码
这里写图片描述
用测试账号扫一下这个二维码,就能关注这个测试账号了,回复信息什么的就可以测试了。
###体验接口权限列表
这里写图片描述
测试账号默认大部分接口都是默认开启的,有几个需要手动开启。
这里需要注意的是网页授权获取用户基本信息这个。
这里写图片描述
如上所示,这里需要配置一个域名,网页授权成功回调的时候,必须是这个域名下的地址才行,不然就报scope参数错误或没有scope权限的错误。
至此,开发环境就搭建好了,可以按照微信公众平台开发文档里的微信网页开发部分写一个网页授权获取基本信息的demo了。

2018-01-10 10:26:10 joefany 阅读数 100785
  • PHP微信接口开发

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

    15698 人正在学习 去看看 传智

官方链接:http://mp.weixin.qq.com/debug/cgi-bin/sandbox?t=sandbox/login

扫描关注后登录

需要填写接口配置,一个公网能访问的域名,推荐用natapp。

填写JS接口安全域名 ,设置JS接口安全域后,通过关注该测试号,开发者即可在该域名下调用微信开放的JS接口,请阅读微信JSSDK开发文档

注意:不知道啥原因,用自己的帐号申请测试帐号后貌似不能立即关注,但是同事的微信能关注。自己的帐号是过了两天就能关注了。



微信开发

阅读数 210

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