package com.yanzuoguang.wxxcx.ocr.card; import com.alibaba.fastjson.TypeReference; import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.JsonHelper; import com.yanzuoguang.wxxcx.base.*; /*** * 本接口提供基于小程序的身份证 OCR 识别 * * @author:heyanou */ public class WxOcrIdcardDataRequest implements WxXcxRequestUrl, WxXcxRequestUrlPara, WxXcxRequestPostFormData { private final WxXcxConfig wxXcxConfig; private final WxXcxRequest wxXcxRequest; private final WxXcxAccessToken accessToken; private final WxOcrIdcardDataReq req; public WxOcrIdcardDataRequest(WxXcxConfig wxXcxConfig, WxXcxRequest wxXcxRequest, WxXcxAccessToken accessToken, WxOcrIdcardDataReq req) { this.wxXcxConfig = wxXcxConfig; this.wxXcxRequest = wxXcxRequest; this.accessToken = accessToken; this.req = req; } @Override public String getPost() { return HttpHelper.getUrlParameter(req); } @Override public String getUrlPara() { return HttpHelper.getUrlParameter(accessToken); } @Override public String getUrl() { return wxXcxConfig.getBaseUrl() + wxXcxConfig.getOcrIdcardDataUrl() + "?" + this.getUrlPara(); } /*** * <b>response返回结果集检测</b> * @return 返回类对象 */ public WxOcrIdcardDataRes getResponse() { // todo: 检测参数是否合法 return this.wxXcxRequest.request(this, response -> { WxOcrIdcardDataRes ret = JsonHelper.deserialize(response, new TypeReference<WxOcrIdcardDataRes>() { }); WxXcxAssert.assertBaseError(ret); return ret; }); } }