微信卡券开发-查询卡券

一、介绍

最近我在做一个微信卡券的项目,在微信公众号新建了卡券,在项目中需要做查询,把微信公众号建的卡券查询出来并存到数据库中,记录一下开发流程,省的以后走弯路

二、注意

调取卡券使用的access_token是普通access_token

获取普通access_token方法:https://blog.csdn.net/cl11992/article/details/86304653

三、代码实例

下面代码需要的类

UrlConUtil:https://blog.csdn.net/cl11992/article/details/86303800

/**
 * 秒转换为指定格式的日期
 * @param second
 * @param patten
 * @return
 */
private String secondToDate(long second,String patten) {
    Calendar calendar = Calendar.getInstance();
    calendar.setTimeInMillis(second * 1000);//转换为毫秒
    Date date = calendar.getTime();
    SimpleDateFormat format = new SimpleDateFormat(patten);
    String dateString = format.format(date);
    return dateString;
}

/**
 * 查询卡券
 * @param accessToken	普通access_token
 * @param cardId	第三方卡券id
 * @return
 */
private JSONObject getCard(String accessToken, String cardId){
	JSONObject json = new JSONObject();
	try{
		JSONObject paramjson = new JSONObject();
        String url="https://api.weixin.qq.com/card/get?access_token="+accessToken;
        paramjson.put("card_id", cardId);
        JSONObject object = UrlConUtil.httpsRequest(url, "POST", paramjson.toString());
        int errcode = (int) object.get("errcode");
        if(errcode!=0){
        	json.put("success", false);
			json.put("msg", "查询失败");
			return json;
        }
        Map resultMap = (Map) object.get("card");
    	if(resultMap.isEmpty()){
    		json.put("success", false);
			json.put("msg", "查询失败");
			return json;
		}
		Map generalCouponMap  = (Map) resultMap.get("general_coupon");
		Map baseInfoMap  = (Map) generalCouponMap.get("base_info");
		Map dateInfoMap  = (Map) baseInfoMap.get("date_info");
		Map skuMap  = (Map) baseInfoMap.get("sku");
		//卡券类型
    	String cardType = (String)resultMap.get("card_type");
    	json.put("cardType", cardType);
		//卡券名称
    	String name = (String)baseInfoMap.get("title");
    	json.put("name", name);
		//卡券logo
    	String logo = (String)baseInfoMap.get("logo_url");
    	json.put("logo", logo);
		//开始时间(秒数需要转换格式)
		int beginTimestamp = (int)dateInfoMap.get("begin_timestamp");
		String beginDate = secondToDate(beginTimestamp,"yyyy-MM-dd");
		json.put("beginDate", beginDate);
		//到期时间(秒数需要转换格式)
		int endTimestamp = (int)dateInfoMap.get("end_timestamp");
		String endDate = secondToDate(endTimestamp,"yyyy-MM-dd");
		json.put("endDate", endDate);
		//卡券总数量
		int allCount = (int)skuMap.get("total_quantity");
		json.put("allCount", allCount);
		//卡券剩余数量
		int surplusCount = (int)skuMap.get("quantity");
		json.put("surplusCount",surplusCount);
		//卡券说明
		String explain = (String) baseInfoMap.get("description");
		json.put("explain", explain);
		//卡券领取限制
		int singleCount = (int)skuMap.get("get_limit");
		json.put("singleCount",singleCount);
		//卡券详情返回数据
		json.put("returnValue",resultMap);
		//返回内容
		json.put("success", true);
		json.put("msg", "操作成功");
		return json;
	}catch (Exception e) {
		json.put("success", false);
		json.put("msg", "查询失败");
		return json;
	}
}

 

你可能感兴趣的:(微信,微信开发)