设置小程序业务域名(JAVA实现)

当我们在做微信小程序开发或者是公众号开发的时候,会涉及到代码上传和审核,发布的问题,当然微信会给我们一个后台,去进行小程序的上传和审核,发布,但是我们现在,想要这个后台在自己的后台管理中使用,这个时候就需要公众平台第三方平台,这里提供了一系列的接口给我们去运用,https://open.weixin.qq.com/cgi-bin/showdocument?action=dir_list&t=resource/res_list&verify=1&id=open1419318292&token=&lang=zh_CN
这里我们就说一下设置小程序业务域名接口的实现,使用JAVA去实现这个功能,首先我们来看微信提供的api文档
设置小程序业务域名(JAVA实现)_第1张图片
从这里我们可以看出这个接口他的crud都是一个接口中去实现的,其实这个功能我们可以分2个接口去实现,
1.当action为git的时候,我们不需要其他的参数,只是查询出所有的数据,这个接口是可以无限期的去调用
2.当action为add,delete,set时,这个接口一个月只能调用5次,所以这个是要把接口参数测试的非常好才去调用
所有这个是要注意的点,下面我们来用java实现这个接口的调用:
在调用接口的时候,要先获取接口凭证才能去调用业务域名的接口 : https://blog.csdn.net/qq_41971087/article/details/82559144 这里是获取接口凭证的实例

ServiceImpl代码:

	private final String API_MODIFY_DOMAIN = "https://api.weixin.qq.com/wxa/setwebviewdomain?access_token=TOKEN";
	
	
	@Resource
	WechatOpenService openService;
	
	/**
	 * 获取业务域名信息:
	 */
	@Override
	public WxaSetwebviewDomain getDomain(String appId) throws WxErrorException {
		//获取接口凭证
		String accesstoken = openService.getWxOpenComponentService().getAuthorizerAccessToken(appId, false);
		JsonObject jsonObject = new JsonObject();
		jsonObject.addProperty("action", "get");
		//发生post请求 accesstoken接口参数
		String responseContent = openService.post(API_MODIFY_DOMAIN.replace("TOKEN", accesstoken),
				jsonObject.toString()); //调用接口的参数
		return WxOpenGsonBuilder.create().fromJson(responseContent, WxaSetwebviewDomain.class);
	}

	/**
	 * 业务域名
	 */
	@Override
	public WxOpenBaseResult setwebviewDomain(String appId, String action, List domains) throws WxErrorException {
		//获取接口凭证
		String accesstoken = openService.getWxOpenComponentService().getAuthorizerAccessToken(appId, false);
		JsonObject jsonObject = new JsonObject();
		jsonObject.addProperty("action", action);
		//参数 业务域名可能有多个
		JsonArray requestdomainArray = new JsonArray();
		for (String domain : domains) {
			requestdomainArray.add(domain);
		}
		jsonObject.add("webviewdomain", requestdomainArray);
		//发生post请求 accesstoken接口参数
		String responseContent = openService.post(API_MODIFY_DOMAIN.replace("TOKEN", accesstoken),
				jsonObject.toString()); //接口参数
		return WxOpenGsonBuilder.create().fromJson(responseContent, WxOpenBaseResult.class);
	}

contrller:


	/**
	 * 获取业务域名信息:
	 * @param appid
	 * @return
	 */
	@RequestMapping("/appSetwebviewDomain.do")
	@ResponseBody
	public JsonResult appSetwebviewDomain(String appid) {
		if(StringUtil.isBank(appid)) 
		 return JsonResult.renderError("appid不能为空");
		AuthorizerInfo authorizerInfo = authorizerinfoService.getById(appid);
		String miniProgramInfoStr = authorizerInfo.getMiniProgramInfo();
		JSONObject jsonData = JSONObject.parseObject(miniProgramInfoStr);
		System.err.println("用户唯一标识:"+appid);
		try {
			WxaSetwebviewDomain domain = iWxaSetwebviewDomainService.getDomain(appid);
			if(domain.getErrcode() == 0) {
				return JsonResult.renderSuccessWithData(domain);
			}else {
				return JsonResult.renderError("获取业务域名信息失败");
			}
		}catch(WxErrorException e) {
			e.printStackTrace();
		}
	return JsonResult.renderError("获取业务域名信息错误");
	}
	
	
	/**
	 * 业务域名
	 * @param appid
	 * @param requestUrls
	 * @return
	 */
	@RequestMapping("/setwebviewDomains.do")
	@ResponseBody
	public JsonResult SetwebviewDomains(String appid,String requestUrls) {
		System.err.println("微信用户唯一标识:"+appid+"添加的业务域名:"+requestUrls);
	if(StringUtil.isBank(appid))
		return JsonResult.renderError("appid不能为空");
		List asList = Arrays.asList(requestUrls.split(","));
	try {
			WxOpenBaseResult domain = iWxaSetwebviewDomainService.setwebviewDomain(appid, "set", asList);
			if(domain.getErrcode()  == 0) {
				return JsonResult.renderSuccessWithData(domain);
			}else {
				return JsonResult.renderError("获取业务域名信息失败");
			}
		}catch(WxErrorException e) {
			e.printStackTrace();
			LOGGER.error("修改业务域名异常", e.toString());
		}

		
		return JsonResult.renderError("获取业务域名信息错误");
	}
	

当操作的时候,只需要填set就可以了,不需要去想add和delete的问题,set没有会添加,有会覆盖的
里面的工具类型其实也很简单,大家看下代码,提供参考就可以了,如果有问题请在下方评论

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