微信卡券开发-查询卡券

一、介绍

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

二、注意

调取卡券使用的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<String,Object> resultMap = (Map<String, Object>) object.get("card");
    	if(resultMap.isEmpty()){
    		json.put("success", false);
			json.put("msg", "查询失败");
			return json;
		}
		Map<String, Object> generalCouponMap  = (Map<String, Object>) resultMap.get("general_coupon");
		Map<String, Object> baseInfoMap  = (Map<String, Object>) generalCouponMap.get("base_info");
		Map<String, Object> dateInfoMap  = (Map<String, Object>) baseInfoMap.get("date_info");
		Map<String, Object> skuMap  = (Map<String, Object>) 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;
	}
}

 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值