package com.yanzuoguang.wxxcx.phonenumber; import com.alibaba.fastjson.TypeReference; import com.yanzuoguang.util.helper.HttpHelper; import com.yanzuoguang.util.helper.JsonHelper; import com.yanzuoguang.wxxcx.base.*; /*** * code换取用户手机号。 每个 code 只能使用一次,code的有效期为5min * * @author:heyanou */ public class WxPhonenumberGetPhoneNumberDataRequest implements WxXcxRequestUrl, WxXcxRequestUrlPara, WxXcxRequestPostFormData { private final WxXcxConfig wxXcxConfig; private final WxXcxRequest wxXcxRequest; private final WxXcxAccessToken accessToken; private final WxPhonenumberGetPhoneNumberDataReq req; public WxPhonenumberGetPhoneNumberDataRequest(WxXcxConfig wxXcxConfig, WxXcxRequest wxXcxRequest, WxXcxAccessToken accessToken, WxPhonenumberGetPhoneNumberDataReq 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.getPhonenumberGetPhoneNumberDataUrl() + "?" + this.getUrlPara(); } /*** * <b>response返回结果集检测</b> * @return 返回类对象 */ public WxPhonenumberGetPhoneNumberDataRes getResponse() { // todo: 检测参数是否合法 return this.wxXcxRequest.request(this, response -> { WxPhonenumberGetPhoneNumberDataRes ret = JsonHelper.deserialize(response, new TypeReference<WxPhonenumberGetPhoneNumberDataRes>() { }); WxXcxAssert.assertBaseError(ret); return ret; }); } }