Commit 24b2509a authored by chenchao.deng's avatar chenchao.deng

接入ipv

parent 09f8b8b0
......@@ -646,9 +646,9 @@ public class ShopServiceImpl implements ShopService {
);
ipResourceRepository.saveAll(pageIpResourceListToSave);
Page<ShopResultDto> shopDtoPage = new PageImpl<>(shopResultDtos, pageable, shopResultDtos.size());
Page<ShopResultDto> shopDtoPage = new PageImpl<>(shopResultDtos, pageable, shopIds.size());
shopPageResultDto.setShopList(shopDtoPage.getContent());
PageInfo pageInfo = new PageInfo(shopDtoPage.getPageable().getPageNumber(), shopDtoPage.getTotalPages(), shopResultDtos.size());
PageInfo pageInfo = new PageInfo(shopDtoPage.getPageable().getPageNumber(), shopDtoPage.getTotalPages(), shopIds.size());
shopPageResultDto.setShopPage(pageInfo);
}
logger.info("getshoplist step-6:{},{}", username, System.currentTimeMillis() - start);
......
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppAddIpWhiteListReq {
private String appUsername; //渠道商主账号 必要
private String ip; //ip地址 必要
private int proxyType; //代理类型 可选 默认104 104=动态国外 105=动态国内
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppAddIpWhiteListResp {
private List<String> ipWhiteList; //ip白名单
public List<String> getIpWhiteList() {
return ipWhiteList;
}
public void setIpWhiteList(List<String> ipWhiteList) {
this.ipWhiteList = ipWhiteList;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppAreaResp {
private String code; //地域代码
private String name; //地域名称
private String cname; //地域中文名
private List<AppAreaResp> children; //下级地域
public String getCode() {
return code;
}
public void setCode(String code) {
this.code = code;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getCname() {
return cname;
}
public void setCname(String cname) {
this.cname = cname;
}
public List<AppAreaResp> getChildren() {
return children;
}
public void setChildren(List<AppAreaResp> children) {
this.children = children;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppAuthUserReq {
private String username; //平台主账号 选填 平台主账号和渠道商主账号两个必填一个
private String appUsername; //渠道商主账号 选填 平台主账号和渠道商主账号两个必填一个
private int authType; //认证类型 1 未实名 2 个人实名 3 企业实名
private String authName; //真实姓名或者企业名
private String no; //实名证件号码或者企业营业执照号码
private String vsp; //vsp
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public int getAuthType() {
return authType;
}
public void setAuthType(int authType) {
this.authType = authType;
}
public String getAuthName() {
return authName;
}
public void setAuthName(String authName) {
this.authName = authName;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public String getVsp() {
return vsp;
}
public void setVsp(String vsp) {
this.vsp = vsp;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppAuthUserResp {
private String username; //平台账号
private int authStatus; //认证状态 1=未实名 2=个人实名 3=企业实名
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public int getAuthStatus() {
return authStatus;
}
public void setAuthStatus(int authStatus) {
this.authStatus = authStatus;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppCreateUserResp {
private String appUsername; //渠道商主账号
private String username; //平台主账号
private String password; //主账号密码
private int status; //用户状态 1=正常 2=禁用
private int authStatus; //认证状态 1=未实名 2=个人实名 3=企业实名
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getAuthStatus() {
return authStatus;
}
public void setAuthStatus(int authStatus) {
this.authStatus = authStatus;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppDelIpWhiteListReq {
private String appUsername; //渠道商主账号 必要
private String ip; //ip地址 必要
private int proxyType; //代理类型 可选 默认104 104=动态国外 105=动态国内
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppDelIpWhiteListResp {
private List<String> ipWhiteList; //ip白名单
public List<String> getIpWhiteList() {
return ipWhiteList;
}
public void setIpWhiteList(List<String> ipWhiteList) {
this.ipWhiteList = ipWhiteList;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppDrawByApiItem {
private String ProxyUrl;
private String List;
public String getProxyUrl() {
return ProxyUrl;
}
public void setProxyUrl(String proxyUrl) {
ProxyUrl = proxyUrl;
}
public String getList() {
return List;
}
public void setList(String list) {
List = list;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppDrawByApiReq {
private String appUsername; //渠道商主账号 必要
private int proxyType; //代理类型 必要 104=动态国外 105=动态国内
private int num; //提取ip数量 可选 默认1
private String addressCode; //地址代码 可选 取值 areaCode countryCode stateCode cityCode 四种之一
private String protocol; //协议 可选 默认socks5 取值 socks5 http 之一
private String returnType; //数据格式 可选 默认txt 取值 txt json 之一
private int delimiter; //分隔符 可选 只有数据格式是txt的时候生效 默认1 (1=\r\n 2=/br 3=\r 4=\n 5=\t)
private int maxFlowLimit; //最大流量限制 可选 大于0的时候生效
private String productNo; //产品编号
public int getProxyType() {
return proxyType;
}
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public String getAddressCode() {
return addressCode;
}
public void setAddressCode(String addressCode) {
this.addressCode = addressCode;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getReturnType() {
return returnType;
}
public void setReturnType(String returnType) {
this.returnType = returnType;
}
public int getDelimiter() {
return delimiter;
}
public void setDelimiter(int delimiter) {
this.delimiter = delimiter;
}
public int getMaxFlowLimit() {
return maxFlowLimit;
}
public void setMaxFlowLimit(int maxFlowLimit) {
this.maxFlowLimit = maxFlowLimit;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppDrawByApiResp {
private List<AppDrawByApiItem> list;
public List<AppDrawByApiItem> getList() {
return list;
}
public void setList(List<AppDrawByApiItem> list) {
this.list = list;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppDrawByPwdItem {
private String ProxyUrl;
private List<String> List;
public String getProxyUrl() {
return ProxyUrl;
}
public void setProxyUrl(String proxyUrl) {
ProxyUrl = proxyUrl;
}
public List<String> getList() {
return List;
}
public void setList(List<String> list) {
List = list;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppDrawByPwdReq {
private String appUsername; //必要(渠道商子账号名
private String addressCode; //地址代码 可以传 areaCode countryCode stateCode cityCode 四种之一
private String sessTime; //有效时间 1-120分钟 默认5分钟
private int num; //数量 默认1
private int proxyType; //代理类型 104=动态国外 105=动态国内
private int maxFlowLimit; //子账号最大流量限制 可选 大于0的时候生效
private String productNo; //产品编号
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getAddressCode() {
return addressCode;
}
public void setAddressCode(String addressCode) {
this.addressCode = addressCode;
}
public String getSessTime() {
return sessTime;
}
public void setSessTime(String sessTime) {
this.sessTime = sessTime;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public int getMaxFlowLimit() {
return maxFlowLimit;
}
public void setMaxFlowLimit(int maxFlowLimit) {
this.maxFlowLimit = maxFlowLimit;
}
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppDrawByPwdResp {
private List<AppDrawByPwdItem> list;
public List<AppDrawByPwdItem> getList() {
return list;
}
public void setList(List<AppDrawByPwdItem> list) {
this.list = list;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppFlowUseLogItem {
private int used; // 已使用流量 B
private int total; // 总流量 B
private int balance; // 剩余流量 B
private int usedTime; // 使用时间 单位秒
public int getUsed() {
return used;
}
public void setUsed(int used) {
this.used = used;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getBalance() {
return balance;
}
public void setBalance(int balance) {
this.balance = balance;
}
public int getUsedTime() {
return usedTime;
}
public void setUsedTime(int usedTime) {
this.usedTime = usedTime;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppFlowUseLogReq {
private String appUsername; // 渠道商主账号 必要
private String startTime; // 开始时间 可选 默认7天前 格式 2021-01-01 00:00:00
private String endTime; // 结束时间 可选当天 格式 2021-01-01 00:00:00
private int page; // 页码 可选 默认1
private int pageSize; // 每页数量 可选 默认10 最大100
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getEndTime() {
return endTime;
}
public void setEndTime(String endTime) {
this.endTime = endTime;
}
public String getStartTime() {
return startTime;
}
public void setStartTime(String startTime) {
this.startTime = startTime;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppFlowUseLogResp {
private List<AppFlowUseLogItem> list; // 结束时间 可选当天 格式 2021-01-01 00:00:00
private int total; // 总数量
private int curPage; // 当前页
public List<AppFlowUseLogItem> getList() {
return list;
}
public void setList(List<AppFlowUseLogItem> list) {
this.list = list;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public int getCurPage() {
return curPage;
}
public void setCurPage(int curPage) {
this.curPage = curPage;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppGetAreaReq {
private List<String> codes; //获取地域代码对应表,为null获取全部
public List<String> getCodes() {
return codes;
}
public void setCodes(List<String> codes) {
this.codes = codes;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppGetInstanceReq {
private List<String> Instances; //平台实例编号
public List<String> getInstances() {
return Instances;
}
public void setInstances(List<String> instances) {
Instances = instances;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppGetOrderReq {
private String orderNo; // 平台订单编号
private int page; // 页码 默认1
private int pageSize; // 每页显示数量 默认10 最大100
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppInfoResp {
private String appName; // 应用名
private String coin; // 余额
private int useBridge; // 使用桥 1 不使用 2使用
private String callbackUrl; // 回调地址
private String credit;// 授信额度
private int status;// 1正常 -1禁用
public String getAppName() {
return appName;
}
public void setAppName(String appName) {
this.appName = appName;
}
public String getCoin() {
return coin;
}
public void setCoin(String coin) {
this.coin = coin;
}
public int getUseBridge() {
return useBridge;
}
public void setUseBridge(int useBridge) {
this.useBridge = useBridge;
}
public String getCallbackUrl() {
return callbackUrl;
}
public void setCallbackUrl(String callbackUrl) {
this.callbackUrl = callbackUrl;
}
public String getCredit() {
return credit;
}
public void setCredit(String credit) {
this.credit = credit;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppInstanceOpenReq {
private String appOrderNo; //购买者订单号(渠道商订单号)
private List<OpenParam> params; //购买代理产品列表
public String getAppOrderNo() {
return appOrderNo;
}
public void setAppOrderNo(String appOrderNo) {
this.appOrderNo = appOrderNo;
}
public List<OpenParam> getParams() {
return params;
}
public void setParams(List<OpenParam> params) {
this.params = params;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppInstanceOpenResp {
private String orderNo; //平台订单号
private String appOrderNo; //购买者订单号(渠道商订单号) 原样返回
private String amount; //花费金额
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getAppOrderNo() {
return appOrderNo;
}
public void setAppOrderNo(String appOrderNo) {
this.appOrderNo = appOrderNo;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppInstanceReleaseReq {
private String orderNo; //购买者订单号(渠道商订单号)
private List<String> instances; //平台实例编号
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public List<String> getInstances() {
return instances;
}
public void setInstances(List<String> instances) {
this.instances = instances;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppInstanceReleaseResp {
private String orderNo; //平台订单号
private String appOrderNo; //购买者订单号(渠道商订单号) 原样返回
private String amount; //花费金额
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getAppOrderNo() {
return appOrderNo;
}
public void setAppOrderNo(String appOrderNo) {
this.appOrderNo = appOrderNo;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppInstanceRenewReq {
private String appOrderNo; //购买者订单号(渠道商订单号)
private List<Instance> instances; //实例列表
public String getAppOrderNo() {
return appOrderNo;
}
public void setAppOrderNo(String appOrderNo) {
this.appOrderNo = appOrderNo;
}
public List<Instance> getInstances() {
return instances;
}
public void setInstances(List<Instance> instances) {
this.instances = instances;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.Date;
import java.util.List;
public class AppInstanceResp {
private String instanceNo; //平台实例编号(渠道商续费和释放操作使用该编号)
private int proxyType; //代理类型 101=静态云平台 102=静态国内家庭 103=静态国外家庭 104=动态国外 105=动态国内 201=whatsapp
private String protocol; //协议类型 多个用英文逗号分隔 1=socks5 2=http 3=https 4=ssh
private String ip; //代理ip地址
private int port; //代理端口
private String regionId; //区域地址
private String countryCode; //国家代码
private String cityCode; //城市代码
private String useType; //使用方式 多个用英文逗号分隔 1=账密 2=ip白名单 3=uuid(uuid写password内)
private String username; //账户名或uuid 动态为平台主账号
private String pwd; //密码
private String orderNo; //创建该实例的平台订单号
private int userExpired; //到期时间
private float flowTotal; //总流量
private float flowBalance; //剩余流量
private int status; //1=待创建 2=创建中 3=运行中 6=已停止 10=关闭 11=释放
private int renew; //1 自动续费
private List<String> bridges; //桥地址列表
private Date openAt; //开通时间
private Date renewAt; //最后成功续费时间
private Date releaseAt; //释放成功时间
private String productNo; //产品编号
public String getInstanceNo() {
return instanceNo;
}
public void setInstanceNo(String instanceNo) {
this.instanceNo = instanceNo;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public String getIp() {
return ip;
}
public void setIp(String ip) {
this.ip = ip;
}
public String getRegionId() {
return regionId;
}
public void setRegionId(String regionId) {
this.regionId = regionId;
}
public int getPort() {
return port;
}
public void setPort(int port) {
this.port = port;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getUseType() {
return useType;
}
public void setUseType(String useType) {
this.useType = useType;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public int getUserExpired() {
return userExpired;
}
public void setUserExpired(int userExpired) {
this.userExpired = userExpired;
}
public float getFlowTotal() {
return flowTotal;
}
public void setFlowTotal(float flowTotal) {
this.flowTotal = flowTotal;
}
public float getFlowBalance() {
return flowBalance;
}
public void setFlowBalance(float flowBalance) {
this.flowBalance = flowBalance;
}
public int getRenew() {
return renew;
}
public void setRenew(int renew) {
this.renew = renew;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public List<String> getBridges() {
return bridges;
}
public void setBridges(List<String> bridges) {
this.bridges = bridges;
}
public Date getOpenAt() {
return openAt;
}
public void setOpenAt(Date openAt) {
this.openAt = openAt;
}
public Date getRenewAt() {
return renewAt;
}
public void setRenewAt(Date renewAt) {
this.renewAt = renewAt;
}
public Date getReleaseAt() {
return releaseAt;
}
public void setReleaseAt(Date releaseAt) {
this.releaseAt = releaseAt;
}
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppOpenReq {
private String reqId;
private String version; // 版本 v2
private String encrypt; // 加密方式 aes,rsa(版本2以上提供,默认aes,老接口rsa)aes cbc模式
private String appKey; // appKey
private String params; // 根据加密方式密文 转base64
public AppOpenReq() {
}
public AppOpenReq(String reqId, String version, String encrypt, String appKey, String params) {
this.appKey = appKey;
this.encrypt = encrypt;
this.params = params;
this.reqId = reqId;
this.version = version;
}
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public String getVersion() {
return version;
}
public void setVersion(String version) {
this.version = version;
}
public String getEncrypt() {
return encrypt;
}
public void setEncrypt(String encrypt) {
this.encrypt = encrypt;
}
public String getParams() {
return params;
}
public void setParams(String params) {
this.params = params;
}
public String getAppKey() {
return appKey;
}
public void setAppKey(String appKey) {
this.appKey = appKey;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppOrderResp {
private String orderNo; //平台订单号
private String appOrderNo; //渠道商(购买订单)订单号
private int type; //订单类型 1=新建 2=续费 3=释放
private int status; //订单状态 1=待处理 2=处理中 3=处理成功 4=处理失败 5=部分完成
private int count; //购买数量
private String amount; //总价
private int refund; //是否有退费 1存在退费
private int page; //页码 原样返回
private int pageSize; //每页显示数量 原样返回
private int total; //订单对应实例总数量
private List<AppInstanceResp> instances; //订单对应实例列表
public String getOrderNo() {
return orderNo;
}
public void setOrderNo(String orderNo) {
this.orderNo = orderNo;
}
public String getAppOrderNo() {
return appOrderNo;
}
public void setAppOrderNo(String appOrderNo) {
this.appOrderNo = appOrderNo;
}
public int getType() {
return type;
}
public void setType(int type) {
this.type = type;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public String getAmount() {
return amount;
}
public void setAmount(String amount) {
this.amount = amount;
}
public int getRefund() {
return refund;
}
public void setRefund(int refund) {
this.refund = refund;
}
public int getPage() {
return page;
}
public void setPage(int page) {
this.page = page;
}
public int getPageSize() {
return pageSize;
}
public void setPageSize(int pageSize) {
this.pageSize = pageSize;
}
public int getTotal() {
return total;
}
public void setTotal(int total) {
this.total = total;
}
public List<AppInstanceResp> getInstances() {
return instances;
}
public void setInstances(List<AppInstanceResp> instances) {
this.instances = instances;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppProductAreaReq {
private String productNo; //平台产品编号
private int proxyType; //代理类型 104=动态国外 105=动态国内
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppProductAreaResp {
private String productNo; //平台产品编号
private int proxyType; //代理类型
private String areaCode; //区域代码(洲)
private String countryCode;//国家代码
private String stateCode; //州省代码
private String cityCode; //城市代码
private int status; //状态 1=上架 -1=下架
private String region; //上游供应商区域
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getStateCode() {
return stateCode;
}
public void setStateCode(String stateCode) {
this.stateCode = stateCode;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public String getRegion() {
return region;
}
public void setRegion(String region) {
this.region = region;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppProductSyncReq {
private List<Integer> proxyType; //代理类型 101=静态云平台 102=静态国内家庭 103=静态国外家庭 104=动态国外 105=动态国内 201=whatsapp
public List<Integer> getProxyType() {
return proxyType;
}
public void setProxyType(List<Integer> proxyType) {
this.proxyType = proxyType;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppProductSyncResp {
private String productNo;//必要,产品Id 保持唯一
private String productName; //必要,商品名
private int proxyType; //必要, 101=静态云平台 102=静态国内家庭 103=静态国外家庭 104=动态国外 105=动态国内 201=whatsapp
private String useType; //必要, ,分割 1=账密 2=白名单 3=uuid
private String protocol; //必要,1=socks5 2=http 3=https 4=ssh
private int useLimit; //必要,1=出口ip国外 2=出口ip国内 3=无限制
private int sellLimit; //必要,1=大陆可售 2=海外可售 3=无限制
private String areaCode; //区域code
private String countryCode; //必要,国家代码 3位 iso标准
private String stateCode; //必要,州省代码 6位
private String cityCode; //必要,城市代码 向我方提取
private String detail; //商品描述
private String costPrice; //必要 价格
private int inventory; //必要 库存
private int ipType; //ip类型 1=ipv4 2=ipv6 3=随机 默认1
private int ispType; //ispType 1=单isp 2=双isp
private int duration; //必要 时长 0无限制
private int unit; //单位 1=天 2=周(7天) 3=月(自然月) 4=年(自然年365,366)
private int bandWidth; //带宽|流量时必要 单位 MB
private int bandWidthType; //带宽类型 1=独享 2=共享 3=流量包
private String bandWidthPrice; //额外带宽价格
private int maxBandWidth; //可设置最大带宽
private int flow; //流量包
private int cpu; //cpu数
private float memory; //内存容量
private int enable; //是否可以购买 1可以
private String supplierCode; //供应商代码
private List<CIDRBlock> cidrBlocks; //支持网段及数量 新增 2024/06/27
public String getProductName() {
return productName;
}
public void setProductName(String productName) {
this.productName = productName;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public String getUseType() {
return useType;
}
public void setUseType(String useType) {
this.useType = useType;
}
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
public String getProtocol() {
return protocol;
}
public void setProtocol(String protocol) {
this.protocol = protocol;
}
public int getUseLimit() {
return useLimit;
}
public void setUseLimit(int useLimit) {
this.useLimit = useLimit;
}
public int getSellLimit() {
return sellLimit;
}
public void setSellLimit(int sellLimit) {
this.sellLimit = sellLimit;
}
public String getAreaCode() {
return areaCode;
}
public void setAreaCode(String areaCode) {
this.areaCode = areaCode;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getStateCode() {
return stateCode;
}
public void setStateCode(String stateCode) {
this.stateCode = stateCode;
}
public String getDetail() {
return detail;
}
public void setDetail(String detail) {
this.detail = detail;
}
public String getCostPrice() {
return costPrice;
}
public void setCostPrice(String costPrice) {
this.costPrice = costPrice;
}
public int getInventory() {
return inventory;
}
public void setInventory(int inventory) {
this.inventory = inventory;
}
public int getIspType() {
return ispType;
}
public void setIspType(int ispType) {
this.ispType = ispType;
}
public int getIpType() {
return ipType;
}
public void setIpType(int ipType) {
this.ipType = ipType;
}
public int getUnit() {
return unit;
}
public void setUnit(int unit) {
this.unit = unit;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public int getBandWidth() {
return bandWidth;
}
public void setBandWidth(int bandWidth) {
this.bandWidth = bandWidth;
}
public int getBandWidthType() {
return bandWidthType;
}
public void setBandWidthType(int bandWidthType) {
this.bandWidthType = bandWidthType;
}
public String getBandWidthPrice() {
return bandWidthPrice;
}
public void setBandWidthPrice(String bandWidthPrice) {
this.bandWidthPrice = bandWidthPrice;
}
public int getMaxBandWidth() {
return maxBandWidth;
}
public void setMaxBandWidth(int maxBandWidth) {
this.maxBandWidth = maxBandWidth;
}
public int getFlow() {
return flow;
}
public void setFlow(int flow) {
this.flow = flow;
}
public int getCpu() {
return cpu;
}
public void setCpu(int cpu) {
this.cpu = cpu;
}
public float getMemory() {
return memory;
}
public void setMemory(float memory) {
this.memory = memory;
}
public int getEnable() {
return enable;
}
public void setEnable(int enable) {
this.enable = enable;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
public List<CIDRBlock> getCidrBlocks() {
return cidrBlocks;
}
public void setCidrBlocks(List<CIDRBlock> cidrBlocks) {
this.cidrBlocks = cidrBlocks;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppProxyInfoReq {
private String username; //平台主账号,选填 平台主账号和渠道商主账号两个必填一个
private String appUsername;//渠道商主账号,选填 平台主账号和渠道商主账号两个必填一个
private int proxyType; //代理类型 必填 104=动态国外 105=动态国内
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class AppProxyInfoResp {
private String used; //已使用
private String total; //总数
private String balance; //剩余
private List<String> ipWhiteList; //ip白名单
public String getUsed() {
return used;
}
public void setUsed(String used) {
this.used = used;
}
public String getTotal() {
return total;
}
public void setTotal(String total) {
this.total = total;
}
public String getBalance() {
return balance;
}
public void setBalance(String balance) {
this.balance = balance;
}
public List<String> getIpWhiteList() {
return ipWhiteList;
}
public void setIpWhiteList(List<String> ipWhiteList) {
this.ipWhiteList = ipWhiteList;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppProxyUserReq {
private String appUsername; //渠道商子账号 该渠道商唯一 (不传随机生成) 不支持修改
private String password; //密码(不传随机生成)
private int limitFlow; //动态流量上限
private String mainUsername; //平台主账号 选填 平台主账号和渠道商主账号两个必填一个
private String appMainUsername; //渠道商主账号 选填 平台主账号和渠道商主账号两个必填一个
private String remark; //备注
private int status; //状态 1=正常 2=禁用
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getLimitFlow() {
return limitFlow;
}
public void setLimitFlow(int limitFlow) {
this.limitFlow = limitFlow;
}
public String getMainUsername() {
return mainUsername;
}
public void setMainUsername(String mainUsername) {
this.mainUsername = mainUsername;
}
public String getAppMainUsername() {
return appMainUsername;
}
public void setAppMainUsername(String appMainUsername) {
this.appMainUsername = appMainUsername;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppProxyUserResp {
private String appUsername; //渠道商子账号
private String username; //平台子账号
private String password; //子账号密码
private int status; //用户状态 1=正常 2=禁用
private int authStatus; //认证状态 1=未实名 2=个人实名 3=企业实名
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getUsername() {
return username;
}
public void setUsername(String username) {
this.username = username;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
public int getAuthStatus() {
return authStatus;
}
public void setAuthStatus(int authStatus) {
this.authStatus = authStatus;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class AppUserReq {
private String appUsername; //渠道商主账号 该渠道商唯一 不支持修改
private String password; //主账号密码(不传随机生成)
private String phone; //主账号手机号
private String email; //主账号邮箱
private int authType; //认证类型 1=未实名 2=个人实名 3=企业实名
private String authName; //主账号实名认证的真实名字或者企业名
private String no; //主账号实名认证的实名证件号码或者企业营业执照号码
private int vsp; //vsp
private int status; //状态 1=正常 2=禁用
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getPhone() {
return phone;
}
public void setPhone(String phone) {
this.phone = phone;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public int getAuthType() {
return authType;
}
public void setAuthType(int authType) {
this.authType = authType;
}
public String getAuthName() {
return authName;
}
public void setAuthName(String authName) {
this.authName = authName;
}
public String getNo() {
return no;
}
public void setNo(String no) {
this.no = no;
}
public int getVsp() {
return vsp;
}
public void setVsp(int vsp) {
this.vsp = vsp;
}
public int getStatus() {
return status;
}
public void setStatus(int status) {
this.status = status;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class CIDRBlock {
private String cidr;//网段 192.168.0.0/24 172.16.0.0/16 10.0.0.0/8
private int count;
public String getCidr() {
return cidr;
}
public void setCidr(String cidr) {
this.cidr = cidr;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class Instance {
private String InstanceNo;//
private int Duration;
public String getInstanceNo() {
return InstanceNo;
}
public void setInstanceNo(String instanceNo) {
InstanceNo = instanceNo;
}
public int getDuration() {
return Duration;
}
public void setDuration(int duration) {
Duration = duration;
}
}
package com.edgec.browserbackend.common.client.ipvClient.dto;
import java.util.List;
public class OpenParam {
private String productNo; // 商品编号(如果存在,后面6项无意义)
private int proxyType; // 代理类型 101=静态云平台 102=静态国内家庭 103=静态国外家庭 104=动态国外 105=动态国内 201=whatsapp
private String countryCode; // 国家代码
private String cityCode; // 城市代码
private String supplierCode;// 供应商代码(可为null,随机分配)
private int unit; // 单位 1=天 2=周(7天) 3=月(自然月) 4=年(自然年365,366) 10=无限制
private int ispType; // isp类型 1=单isp 2=双isp
private int count; // 购买数量 (实例个数)静态必填 默认1 一次最大20
private int duration; // 必要 时长 默认1 为Unit的时长
private boolean renew; // 是否续费 1续费 默认0
private int extBandWidth;// 额外增加带宽 单位Mbps
private String appUsername;// 渠道商主账号,开通动态代理的时候必填(必须在平台上注册过)
private int flow; // 动态流量 最大102400MB 动态必填 单位MB
private int cycleTimes;
private int useBridge; // 1=不上桥 2=上桥 默认0随app设置
private List<CIDRBlock> cidrBlocks; // 静态购买所在网段及数量(产品有的才支持)
private String projectId; // 购买项目id,保留字段,后续会支持
public int getCycleTimes() {
return cycleTimes;
}
public void setCycleTimes(int cycleTimes) {
this.cycleTimes = cycleTimes;
}
public String getProductNo() {
return productNo;
}
public void setProductNo(String productNo) {
this.productNo = productNo;
}
public int getProxyType() {
return proxyType;
}
public void setProxyType(int proxyType) {
this.proxyType = proxyType;
}
public String getCountryCode() {
return countryCode;
}
public void setCountryCode(String countryCode) {
this.countryCode = countryCode;
}
public String getCityCode() {
return cityCode;
}
public void setCityCode(String cityCode) {
this.cityCode = cityCode;
}
public String getSupplierCode() {
return supplierCode;
}
public void setSupplierCode(String supplierCode) {
this.supplierCode = supplierCode;
}
public int getUnit() {
return unit;
}
public void setUnit(int unit) {
this.unit = unit;
}
public int getIspType() {
return ispType;
}
public void setIspType(int ispType) {
this.ispType = ispType;
}
public int getCount() {
return count;
}
public void setCount(int count) {
this.count = count;
}
public int getDuration() {
return duration;
}
public void setDuration(int duration) {
this.duration = duration;
}
public boolean isRenew() {
return renew;
}
public void setRenew(boolean renew) {
this.renew = renew;
}
public int getExtBandWidth() {
return extBandWidth;
}
public void setExtBandWidth(int extBandWidth) {
this.extBandWidth = extBandWidth;
}
public String getAppUsername() {
return appUsername;
}
public void setAppUsername(String appUsername) {
this.appUsername = appUsername;
}
public int getFlow() {
return flow;
}
public void setFlow(int flow) {
this.flow = flow;
}
public int getUseBridge() {
return useBridge;
}
public void setUseBridge(int useBridge) {
this.useBridge = useBridge;
}
public List<CIDRBlock> getCidrBlocks() {
return cidrBlocks;
}
public void setCidrBlocks(List<CIDRBlock> cidrBlocks) {
this.cidrBlocks = cidrBlocks;
}
public String getProjectId() {
return projectId;
}
public void setProjectId(String projectId) {
this.projectId = projectId;
}
}
\ No newline at end of file
package com.edgec.browserbackend.common.client.ipvClient.dto;
public class Res {
private String reqId;
private int code;
private String msg;
private String data; //密文转base64
public String getReqId() {
return reqId;
}
public void setReqId(String reqId) {
this.reqId = reqId;
}
public int getCode() {
return code;
}
public void setCode(int code) {
this.code = code;
}
public String getMsg() {
return msg;
}
public void setMsg(String msg) {
this.msg = msg;
}
public String getData() {
return data;
}
public void setData(String data) {
this.data = data;
}
}
package com.edgec.browserbackend.common.client.ipvClient.utils;
import java.security.InvalidAlgorithmParameterException;
import java.security.InvalidKeyException;
import java.security.NoSuchAlgorithmException;
import java.util.Base64;
import javax.crypto.BadPaddingException;
import javax.crypto.Cipher;
import javax.crypto.IllegalBlockSizeException;
import javax.crypto.NoSuchPaddingException;
import javax.crypto.spec.IvParameterSpec;
import javax.crypto.spec.SecretKeySpec;
public class AESCBC {
public static byte[] encryptCBC(byte[] data, byte[] key, byte[] iv) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, InvalidAlgorithmParameterException {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.ENCRYPT_MODE, new SecretKeySpec(key, "AES"), new IvParameterSpec(iv));
byte[] result = cipher.doFinal(data);
return result;
}
public static byte[] decryptCBC(byte[] data, byte[] key, byte[] iv) throws NoSuchPaddingException, NoSuchAlgorithmException, InvalidKeyException, BadPaddingException, IllegalBlockSizeException, InvalidAlgorithmParameterException {
Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
cipher.init(Cipher.DECRYPT_MODE, new SecretKeySpec(key, "AES"), new IvParameterSpec(iv));
byte[] result = cipher.doFinal(data);
return result;
}
public static void main(String[] args) throws IllegalBlockSizeException, InvalidKeyException, BadPaddingException, NoSuchAlgorithmException, NoSuchPaddingException, InvalidAlgorithmParameterException {
String data = "TestMessage"; // 待加密的原文
String key = "qwertyuiop123456asdfghjk"; // key 长度只能是 16、24 或 32 字节
String iv = key.substring(0,16); // CBC 模式需要用到初始向量参数
byte[] ciphertext = encryptCBC(data.getBytes(), key.getBytes(), iv.getBytes());
System.out.println("CBC 模式加密结果(Base64):" + Base64.getEncoder().encodeToString(ciphertext));
byte[] plaintext = decryptCBC(ciphertext, key.getBytes(), iv.getBytes());
System.out.println("解密结果:" + new String(plaintext));
}
}
package com.edgec.browserbackend;
import com.edgec.browserbackend.common.client.ipvClient.IpvClient;
import com.edgec.browserbackend.common.client.ipvClient.dto.*;
import java.util.ArrayList;
import java.util.List;
import org.junit.jupiter.api.BeforeEach;
import org.junit.jupiter.api.Test;
public class IpvCliestTest {
IpvClient ipv ;
@BeforeEach
public void before() {
String endPoint = "https://sandbox.ipipv.com";
String appKey = "AK20240923090940";
String appSecret = "zd7js60suebep2hkiane59g6v9j8jezv";
ipv = new IpvClient(endPoint, appKey, appSecret);
}
@Test
void testGetAppInfo() throws Exception{
AppInfoResp resp = ipv.getAppInfo();
System.out.println(resp);
}
@Test
void testGetArea() throws Exception{
AppGetAreaReq req = new AppGetAreaReq();
List<AppAreaResp> resp = ipv.getArea(req);
System.out.println(resp);
}
@Test
void testGetProductStock() throws Exception{
AppProductSyncReq req = new AppProductSyncReq();
List<AppProductSyncResp> resp = ipv.getProductStock(req);
System.out.println(resp);
}
@Test
void testDelIpWhiteList() throws Exception{
AppDelIpWhiteListReq req3 = new AppDelIpWhiteListReq();
req3.setAppUsername("aaa");
req3.setIp("127.0.0.1");
AppDelIpWhiteListResp resp3 = ipv.delIpWhiteList(req3);
System.out.println(resp3);
}
@Test
void testInstanceOpen() throws Exception{
AppInstanceOpenReq req = new AppInstanceOpenReq();
req.setAppOrderNo(Tool.getOrder());
List<OpenParam> params =new ArrayList<>();
OpenParam param = new OpenParam();
param.setCount(1);
param.setProductNo("tx_171");
param.setUnit(1);
param.setDuration(10);
param.setFlow(1);
param.setCycleTimes(1);
//param.setAppUsername();
params.add(param);
req.setParams(params);
AppOrderResp resp = ipv.instanceOpen(req);
System.out.println(resp);
}
@Test
void testAddIpWhiteList() throws Exception{
AppAddIpWhiteListReq req3 = new AppAddIpWhiteListReq();
req3.setAppUsername("aaa");
req3.setIp("127.0.0.1");
AppAddIpWhiteListResp resp3 = ipv.addIpWhiteList(req3);
System.out.println(resp3);
}
@Test
void testUserAuth() throws Exception {
AppAuthUserReq req = new AppAuthUserReq();
req.setUsername("abab");
req.setAuthType(1);
AppAuthUserResp resp = ipv.userAuth(req);
System.out.println(resp);
}
@Test
void testcreateUser() throws Exception{
AppUserReq req = new AppUserReq();
req.setAppUsername("abab123");
req.setPassword("abab");
req.setPhone("111111");
req.setEmail("123456@.com");
req.setAuthType(1);
req.setNo("abc12345");
req.setStatus(1);
AppCreateUserResp resp = ipv.createUser(req);
System.out.println(resp);
}
@Test
void testDrawByApi() throws Exception {
AppDrawByApiReq req = new AppDrawByApiReq();
req.setAppUsername("abab123");
req.setProxyType(104);
req.setAddressCode("cityCode");
req.setMaxFlowLimit(50);
AppDrawByApiResp resp = ipv.drawByApi(req);
System.out.println(resp);
}
@Test
void testDrawByPwd() throws Exception {
AppDrawByPwdReq req = new AppDrawByPwdReq();
req.setAppUsername("abab123");
req.setAddressCode("cityCode");
req.setProxyType(104);
req.setMaxFlowLimit(50);
AppDrawByPwdResp resp = ipv.drawByPwd(req);
System.out.println(resp);
}
@Test
void testProxyFlowUseLog() throws Exception {
AppFlowUseLogReq req = new AppFlowUseLogReq();
req.setAppUsername("abab123");
req.setEndTime("2024-07-20 15:30:10");
AppFlowUseLogResp resp = ipv.proxyFlowUseLog(req);
System.out.println(resp);
}
@Test
void testgetInstance() throws Exception {
AppGetInstanceReq req = new AppGetInstanceReq();
req.setInstances(null);
List<AppInstanceResp> resp = ipv.getInstance(req);
System.out.println(resp);
}
@Test
void testInstanceRenew() throws Exception {
AppInstanceOpenReq req = new AppInstanceOpenReq();
req.setAppOrderNo("01");
AppOrderResp resp = ipv.instanceOpen(req);
System.out.println(resp);
}
@Test
void testGetOrder() throws Exception{
AppGetOrderReq req = new AppGetOrderReq();
req.setOrderNo("1234");
AppOrderResp resp = ipv.getOrder(req);
System.out.println(resp);
}
@Test
void testinstanceRelease() throws Exception{
AppInstanceReleaseReq req = new AppInstanceReleaseReq();
req.setOrderNo("1234");
req.setInstances(null);
AppInstanceReleaseResp resp = ipv.instanceRelease(req);
System.out.println(resp);
}
@Test
void testproductAreaList() throws Exception{
AppProductAreaReq req = new AppProductAreaReq();
req.setProductNo("a123456");
req.setProxyType(104);
List<AppProductAreaResp> resp = ipv.productAreaList(req);
System.out.println(resp);
}
@Test
void testproxyInfo() throws Exception{
AppProxyInfoReq req = new AppProxyInfoReq();
req.setUsername("abab");
req.setProxyType(104);
AppProxyInfoResp resp = ipv.proxyInfo(req);
System.out.println(resp);
}
@Test
void testcreateProxyUser() throws Exception{
AppProxyUserReq req = new AppProxyUserReq();
req.setLimitFlow(1000);
req.setMainUsername("abab");
req.setStatus(1);
AppProxyUserResp resp = ipv.createProxyUser(req);
System.out.println(resp);
}
}
package com.edgec.browserbackend;
public class Tool {
public static final String getOrder(){
return "Test"+System.currentTimeMillis();
}
}
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment