阿里隐私号码保护


概述

阿里参考文档: https://help.aliyun.com/zh/pnp/?spm=a2c4g.11186623.0.0.2cb84000WTGnNA

因为业务需要,需要集成一下阿里的阿里隐私号码保护功能,在这边归纳记录一下,功能代码。

一、接口介绍

该功能使用到了一下接口
1、隐私号码绑定:BindAxb
2、查询隐私号码绑定关系:querySubscriptionDetail
3、修改隐私号码绑定关系:UpdateSubscription
4、解除隐私号码绑定关系:UnbindSubscription

二、使用步骤

添加依赖

    <dependency>
        <groupId>com.aliyun</groupId>
        <artifactId>dyplsapi20170525</artifactId>
        <version>2.0.5</version>
    </dependency>

1.隐私号码绑定:BindAxb

代码如下(示例):

    /**
     * client 使用AK&SK初始化账号Client
     * @param PoolKey 号码池Key。在号码隐私保护控制台,号码池管理页面获取号码池 Key
     * @param phoneA AXB 中间号的 A 号码。A 号码可设置为手机号码或固定电话,固定电话请加区号,区号和固定电话之间不需要连字符。
     * @param phoneB AXB 中间号的 B 号码。
     * @param phoneNoX AXB 中间号的 X 号码。X 号码是您在控制台已购买的隐私号。
     * @throws Exception
     */
    public static BindAxbResponse BindAxb(Client client, String poolKey, String phoneA, String phoneB, String phoneNoX) throws Exception {
        long timeStamp = System.currentTimeMillis()+1000*60*30;
        SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd HH:mm:ss");

        BindAxbRequest req = new BindAxbRequest()
                .setPoolKey(poolKey)
                .setPhoneNoA(phoneA)
                .setPhoneNoB(phoneB)
                .setExpectCity("常州")
                .setPhoneNoX(phoneNoX)
                .setIsRecordingEnabled(true)
                .setCallRestrict("CONTROL_CLEAR_DISABLE")
                .setExpiration(sdf.format(new Date(timeStamp)));
        com.aliyun.teautil.models.RuntimeOptions runtime = new com.aliyun.teautil.models.RuntimeOptions();
        BindAxbResponse resp = client.bindAxbWithOptions(req,runtime);
        if (!com.aliyun.teautil.Common.equalString(resp.body.code, "OK")) {
            System.out.println("--------------------绑定失败--------------------");
            throw new JSONException("绑定失败,"+resp.body.message);
        }

        System.out.println("------------绑定成功-------------");
        return resp;
    }

2.查询隐私号码绑定关系:querySubscriptionDetail

代码如下(示例):

    /**
     * client 使用AK&SK初始化账号Client
     * @param PoolKey 号码池Key。在号码隐私保护控制台,号码池管理页面获取号码池 Key
     * @param secretNo AXB 中间号的 X 号码。X 号码是您在控制台已购买的隐私号。
     * @param subsId绑定关系 ID。请登录号码隐私保护控制台,在号码管理页面筛选号码,点击详情查看号码的绑定关系 ID,或者在调用 BindAxb 等号码绑定 API 时查看返回参数中的 SubsId。
     * @throws Exception
     */
    public static QuerySubscriptionDetailResponse querySubscriptionDetail(Client client, String poolKey, String secretNo,String subsId) throws Exception {
        QuerySubscriptionDetailRequest req = new QuerySubscriptionDetailRequest()
                .setPoolKey(poolKey).setSubsId(subsId).setPhoneNoX(secretNo);
        QuerySubscriptionDetailResponse resp = client.querySubscriptionDetail(req);
        if (!com.aliyun.teautil.Common.equalString(resp.body.code, "OK")) {
            System.out.println("--------------------查询隐号码绑定关系失败--------------------");
            throw new JSONException("查询隐号码绑定关系失败,"+resp.body.message);
        }

        System.out.println("------------查询隐号码绑定关系成功-------------");
        return resp;
    }

该处使用的url网络请求的数据。


3.修改隐私号码绑定关系:UpdateSubscription

代码如下(示例):

    /**
     * client 使用AK&SK初始化账号Client
     * @param PoolKey 号码池Key。在号码隐私保护控制台,号码池管理页面获取号码池 Key
     * @param phoneA AXB 中间号的 A 号码。A 号码可设置为手机号码或固定电话,固定电话请加区号,区号和固定电话之间不需要连字符。
     * @param subsId绑定关系 ID。请登录号码隐私保护控制台,在号码管理页面筛选号码,点击详情查看号码的绑定关系 ID,或者在调用 BindAxb 等号码绑定 API 时查看返回参数中的 SubsId。
     * @param phoneNoX AXB 中间号的 X 号码。X 号码是您在控制台已购买的隐私号。
     * @param operateType 修改绑定关系的操作。取值:updateNoA:修改 A 号码。updateNoB:修改 B 号码。
     * @throws Exception
     */
    public static UpdateSubscriptionResponse UpdateSubscription(Client client,String poolKey,String phoneA, String subsId, String phoneNoX, String operateType) throws Exception {
        UpdateSubscriptionRequest req = new UpdateSubscriptionRequest()
                .setPoolKey(poolKey)
                .setSubsId(subsId)
                .setPhoneNoX(phoneNoX)
                .setPhoneNoA(phoneA)
                .setOperateType(operateType);
        UpdateSubscriptionResponse resp = client.updateSubscription(req);
        if (!com.aliyun.teautil.Common.equalString(resp.body.code, "OK")) {
            System.out.println("--------------------修改绑定关系失败--------------------");
            throw new JSONException("修改绑定关系失败,"+resp.body.message);
        }

        System.out.println("------------修改绑定关系成功-------------");
        return resp;
    }

4.解除隐私号码绑定关系:UnbindSubscription

代码如下(示例):

    /**
     * client 使用AK&SK初始化账号Client
     * @param subsId绑定关系 ID。请登录号码隐私保护控制台,在号码管理页面筛选号码,点击详情查看号码的绑定关系 ID,或者在调用 BindAxb 等号码绑定 API 时查看返回参数中的 SubsId。
     * @param secretNo AXB 中间号的 X 号码。X 号码是您在控制台已购买的隐私号。
     */
    public static void UnbindSubscription(Client client, String subsId, String secretNo) throws Exception {
        UnbindSubscriptionRequest req = new UnbindSubscriptionRequest()
                .setSubsId(subsId)
                .setSecretNo(secretNo);
        UnbindSubscriptionResponse resp = client.unbindSubscription(req);
        if (!com.aliyun.teautil.Common.equalString(resp.body.code, "OK")) {
            System.out.println("--------------------解绑失败--------------------");
            throw new JSONException("解绑失败,"+resp.body.message);
        }

        System.out.println("------------解绑成功-------------");
    }

5.完成之后,测试


    public static Client createClient(String accessKeyId, String accessKeySecret) throws Exception {
        Config config = new Config()
                // 必填,您的 AccessKey ID 在阿里申请
                .setAccessKeyId(accessKeyId)
                // 必填,您的 AccessKey Secret 在阿里申请
                .setAccessKeySecret(accessKeySecret);
        // Endpoint 请参考 https://api.aliyun.com/product/Dyplsapi
        config.endpoint = "dyplsapi.aliyuncs.com";
        return new Client(config);
    }

    public static void main(String[] args_) throws Exception {
        // 号码池Key
        String poolKey = "FC1...";
        // AXB中的A号码
        String phoneA = "137*****006";
        // AXB中的B号码
        String phoneB = "181*****291";
        Client client =  AliyunAXBUtils.createClient("LTA...","lVI...");


        BindAxbResponse bindAxbResp = AliyunAXBUtils.BindAxb(client, poolKey, phoneA,phoneB,"170*****589");
        System.out.println(JSONObject.toJSONString(bindAxbResp));
//        QuerySubscriptionDetailResponse Queryresp = AliyunAXBUtils.querySubscriptionDetail(client, poolKey, "170*****589","1000*******106");
//            System.out.println(JSONObject.toJSONString(Queryresp));
//        UpdateSubscriptionResponse Updateresp = AliyunAXBUtils.UpdateSubscription(client,poolKey,"180*****295", "1000*******106", "170*****589", "updateNoA");
//            System.out.println(JSONObject.toJSONString(Updateresp));
//        QuerySubscriptionDetailResponse Queryresp2 = AliyunAXBUtils.querySubscriptionDetail(client, poolKey, "170*****589","1000*******106");
//            System.out.println(JSONObject.toJSONString(Queryresp2));
//        AliyunAXBUtils.UnbindSubscription(client, "1000*******106", "170*****589");
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值