All Downloads are FREE. Search and download functionalities are using the official Maven repository.

com.ksyun.pnp.sdk.PnPService Maven / Gradle / Ivy

package com.ksyun.pnp.sdk;

import com.fasterxml.jackson.core.type.TypeReference;
import com.ksyun.pnp.sdk.constant.Constants;
import com.ksyun.pnp.sdk.domain.request.QueryReq;
import com.ksyun.pnp.sdk.domain.request.UnbindReq;
import com.ksyun.pnp.sdk.domain.request.UpdateReq;
import com.ksyun.pnp.sdk.domain.request.axb.AxbBindReq;
import com.ksyun.pnp.sdk.domain.response.OpenApiResponseResult;
import com.ksyun.pnp.sdk.domain.response.http.BindResp;
import com.ksyun.pnp.sdk.domain.response.http.QueryResp;
import com.ksyun.pnp.sdk.util.http.HttpClientUtil;
import com.ksyun.pnp.sdk.util.http.SimpleHttpResponse;
import com.ksyun.pnp.sdk.util.sign.CommonSignParam;
import com.ksyun.pnp.sdk.util.sign.SignatureUtil;
import org.apache.commons.lang3.StringUtils;

import java.util.HashMap;
import java.util.Map;

public class PnPService {

    public CommonSignParam signParam;

    public PnPService(String ak, String sk) {
        if (StringUtils.isEmpty(ak) || StringUtils.isEmpty(sk)) {
            throw new IllegalArgumentException("ak或sk不能为空");
        }
        this.signParam = new CommonSignParam(ak, sk);
    }

    public PnPService(CommonSignParam signParam) {
        if (signParam == null) {
            throw new IllegalArgumentException("signParam 不能为null");
        }
        this.signParam = signParam;
    }

    /**
     * AXB号码绑定
     *
     * @param bindReq 请求参数
     */
    public OpenApiResponseResult axbBind(AxbBindReq bindReq) {
        return handle(SignatureUtil.beanToMap(bindReq), Constants.AXB_BIND_ACTION);
    }


    /**
     * 号码解绑
     *
     * @param axbUnbindReq 请求实体
     * @return 返回结果
     */
    public OpenApiResponseResult axbUnBind(UnbindReq axbUnbindReq) {
        return handle(SignatureUtil.beanToMap(axbUnbindReq), Constants.AXB_UNBIND_ACTION);
    }

    /**
     * 绑定关系修改
     *
     * @param axbUpdateReq 请求实体
     * @return 返回结果
     */
    public OpenApiResponseResult update(UpdateReq axbUpdateReq) {
        return handle(SignatureUtil.beanToMap(axbUpdateReq), Constants.AXB_UPDATE_ACTION);
    }

    /**
     * 查询绑定关系
     *
     * @param axbQueryReq 请求实体
     * @return 返回结果
     */
    public OpenApiResponseResult query(QueryReq axbQueryReq) {
        return handle(SignatureUtil.beanToMap(axbQueryReq), Constants.AXB_QUERY_ACTION);
    }


    private  OpenApiResponseResult handle(Map param, String action) {
        Map reqParam = SignatureUtil.sign(signParam, action, param);
        String reqBody = SignatureUtil.toJson(reqParam);
        Map reqHeaders = new HashMap<>();
        reqHeaders.put(HttpClientUtil.CONTENT_TYPE, HttpClientUtil.APPLICATION_JSON);
        reqHeaders.put(HttpClientUtil.ACCEPT, HttpClientUtil.APPLICATION_JSON);
        SimpleHttpResponse resp = HttpClientUtil.postRawBody(signParam.getReqUrl(), reqHeaders, reqBody);
        return resp.toResponse(new TypeReference>() {
        });
    }
}




© 2015 - 2025 Weber Informatics LLC | Privacy Policy