[开发者交流] 【融合视频】【开发者公告】【20.0.RC1】Video3.0的SendSMS接口优化公告

尊敬的开发者:

为了明确重置密码时接收短信验证码的手机号码的规则,提升接口使用体验,20.0.RC1版本将VSP/V3/SendSMS接口进行了优化。

当通过手机号重置密码 (即msgType=5)时:

 若入参destMobilePhone不为空且与订户或Profile的手机号码一致,则向传入的手机号码发送验证码;若不一致,则报错并返回错误码。

 若入参destMobilePhone为空,则取loginName对应的Profile的手机号码,若为空,则取对应订户的手机号码,若订户和Profile都没有手机号码,则报错并返回错误码。

请开发者审视客户端现有的实现逻辑,确认是否需要进行优化整改,并提前进行规划。

下面给出基线UI(Android客户端)的实现逻辑,仅供参考:

// doSendSMS 发送短信消息
// url为SendSMS接口url,格式为https://EVP IP:PORT/VSP/V3/SendSMS
// request为SendSMS接口请求参数
private String doSendSMS(final String url, final SendSMSRequest request) 
{ 
    //通过Access SDK实现客户端与VSP平台之间的交互,Access SDK的详细内容请参考Android SDK使用指南 
    final MsaAccessRequest<SendSMSRequest> msaAccessRequest = getMsaAccessRequest(); 
    msaAccessRequest.setURL(url); 
    msaAccessRequest.setBodyObject(request); 
    msaAccessRequest.setVerifyCert(true); 
    MsaAccessResponse<SendSMSResponse> msaAccessResponse = getMsaAccessResponse (SendSMSResponse.class); 
    MsaAccessAsyncTask.Callback<SendSMSRequest, SendSMSResponse> callBack = new 
                          MsaAccessAsyncTask.Callback<SendSMSRequest, SendSMSResponse>() 
    { 
        //处理响应消息 
        @Override 
        public void onComplete(String taskId, MsaAccessRequest<SendSMSRequest> msaAccessRequest, 
                                 MsaAccessResponse<SendSMSResponse> msaAccessResponse) 
        { 
            SendSMSResponse sendSMSResponse = msaAccessResponse.getBodyObject(); 
            Exception exception = checkException(taskId, msaAccessRequest, msaAccessResponse); 
            if (null != exception) 
            { 
                // TODO 处理网络异常情况
                return; 
            } 
            sendSMSResponse.setRequestURL(msaAccessRequest.getURL()); 
            //根据VSP返回码做不同的处理 
            if (sendSMSResponse.returnCodeIsSuccess()) 
            { 
                // TODO 处理正常情况返回
            } 
            else 
            { 
                // TODO 处理平台返回错误的情况
            } 
        } 
    }; 
    return new MsaAccessAsyncTask().sendRequest(msaAccessRequest, msaAccessResponse, callBack); 
}