微信公众号中的微信分享到朋友圈、分享到QQ、分享到好友功能都是可以帮助营销活动支持的,今天就说一下公众号生成带参数的二维码分享到朋友圈功能
根据微信公众号提供的开发者文档我们可以看出提供的有方法,我们第一步就要先获取附录1的jsapi_ticket,直接写代码了
他的获取方式和我之前写的获取access_token方法很相似
get请求获取https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token=ACCESS_TOKEN&type=jsapi
[java] view plain copy
- /**
- * 获取js调用微信接口的门票
- * @param access_token
- * @throws Exception
- * json中的ticket就是微信js接口的临时票据
- */
- public static synchronized void getJsApiTicket(String access_token) throws Exception {
- if (JSAPI_TICKET == null || System.currentTimeMillis() - LASTTOKENTIME_FOR_JSAPI_TICKET > 7000*1000) {
- String url = "https://api.weixin.qq.com/cgi-bin/ticket/getticket?access_token="
- + access_token + "&type=jsapi";
- HttpClient httpClient = new DefaultHttpClient();
- HttpResponse resp = httpClient.execute(new HttpGet(url));
- if (HttpStatus.SC_OK == resp.getStatusLine().getStatusCode()) {
- JSONObject jsonObject = new JSONObject(EntityUtils.toString(
- resp.getEntity(), "utf-8"));
- JSAPI_TICKET = jsonObject.getString("ticket");
- LASTTOKENTIME_FOR_JSAPI_TICKET = System.currentTimeMillis();
- }
- }
- }
当我拿到JSAPI_TICKET之后就要进行签名的算法了
我们要获取一个带有参数的二维码,这个时候二维码分为两种情况
目前有2种类型的二维码:
1、临时二维码,是有过期时间的,最长可以设置为在二维码生成后的30天(即2592000秒)后过期,但能够生成较多数量。临时二维码主要用于帐号绑定等不要求二维码永久保存的业务场景
2、永久二维码,是无过期时间的,但数量较少(目前为最多10万个)。永久二维码主要用于适用于帐号绑定、用户来源统计等场景。
临时二维码请求说明
http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json
POST数据例子:{"expire_seconds": 604800, "action_name": "QR_SCENE", "action_info": {"scene": {"scene_id": 123}}}
或者也可以使用以下POST数据创建字符串形式的二维码参数:
{"expire_seconds": 604800, "action_name": "QR_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
永久二维码请求说明
http请求方式: POST
URL: https://api.weixin.qq.com/cgi-bin/qrcode/create?access_token=TOKENPOST数据格式:json
POST数据例子:{"action_name": "QR_LIMIT_SCENE", "action_info": {"scene": {"scene_id": 123}}}
或者也可以使用以下POST数据创建字符串形式的二维码参数:
{"action_name": "QR_LIMIT_STR_SCENE", "action_info": {"scene": {"scene_str": "test"}}}
官网中有一句话很重要
创建二维码ticket
每次创建二维码ticket需要提供一个开发者自行设定的参数(scene_id),分别介绍临时二维码和永久二维码的创建二维码ticket过程。
参数说明
参数 | 说明 |
---|---|
expire_seconds | 该二维码有效时间,以秒为单位。 最大不超过2592000(即30天),此字段如果不填,则默认有效期为30秒。 |
action_name | 二维码类型,QR_SCENE为临时的整型参数值,QR_STR_SCENE为临时的字符串参数值,QR_LIMIT_SCENE为永久的整型参数值,QR_LIMIT_STR_SCENE为永久的字符串参数值 |
action_info | 二维码详细信息 |
scene_id | 场景值ID,临时二维码时为32位非0整型,永久二维码时最大值为100000(目前参数只支持1--100000) |
scene_str | 场景值ID(字符串形式的ID),字符串类型,长度限制为1到64 |
返回说明
正确的Json返回结果: