微信卡券开发-JS接口领取卡券

一、介绍

微信卡券不支持服务端领取,只有JS接口进行领取,在这里面记录一下

二、注意

  1. 领取卡券使用access_token是普通access_token
  2. JS领取卡券的时候,返回的券号为编译过的需要做转义
  3. 下图的标红的位置记住必须要写这个

微信卡券开发-JS接口领取卡券_第1张图片

二、领取卡券代码实例

服务端代码

下方需要的类cardSignature:https://blog.csdn.net/cl11992/article/details/86574656

/**
 * 领取卡券
 */
@ProductException
@RequestMapping(value = "receive")
public ModelAndView infolist(HttpServletRequest request, HttpServletResponse response) throws Exception {
	ModelAndView mv = new ModelAndView("card/cardRecive");// 卡券领取页面
	// 领取卡券
	String appid = "XXXXXXXXX";//公众号appid
	String cardId = "XXXXXXXX";//卡券id
	String thirdCardId = "XXXXXXXX";//第三方卡券id
	
	mv.addObject("cardId", cardId);
	mv.addObject("thirdCardId", thirdCardId);
	mv.addObject("outerStr", cardId+","+thirdCardId);//扩展参数

	mv.addObject("config", cardSignature.getCardSignature(request, thirdCardId, appid));
	return mv;
}

cardRecive.html

成功回调进入${ctx}card/receiveSucces方法,可以在里面写自己的逻辑


	 
	
	

JS-SDK.js

##  微信接口


卡券券号解码(服务端接口)

下面使用的类

AccessTokenUtils:https://blog.csdn.net/cl11992/article/details/86304653

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

/**
 * 解码code
 */
private String decode(String encryptionCode,String appid) {
	String code = "";
	try {
		//获取access_token
		Map accessTokenMap = AccessTokenUtils.getAccessToken;
		String token = accessTokenMap("access_token");
		
		String url = "https://api.weixin.qq.com/card/code/decrypt?access_token=" + token;
		JSONObject json = new JSONObject();
		json.put("encrypt_code", encryptionCode);// 加密的code
		JSONObject object = UrlConUtil.httpsRequest(url, "POST", json.toString());
		int errcode = (int) object.get("errcode");
		if (errcode == 0) {
			code = (String) object.get("code");
		}
		return code;
	} catch (Exception e) {
		logger.debug("解码code报错:", e);
		return "";
	}
}

 

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