用户工具

智能验证接口_android

差别

这里会显示出您选择的修订版和当前版本之间的差别。

到此差别页面的链接

智能验证接口_android [2015/05/05 01:59]
xiejiangling [3 功能演示]
智能验证接口_android [2017/08/23 08:44]
行 1: 行 1:
- 
-===== 智能验证接口 ===== 
- 
----- 
- 
- 
-==== 1 文档说明 ==== 
- 
- 
-=== 1.1 功能描述 === 
- 
- 
-智能验证SDK为开发者提供一个完全透明、方便、高效的验证服务,智能验证平台聚合了稳定的短信、语音验证码服务,开发者无需再开发自己的短信通道、语音网关,而且基于公共云的强大服务,使得验证能逐步避免下发短信、语音手机号的方式验证,从而更快速,更准确快速验证,解决APP验证的验证难题、提升产品体验。 
- 
-=== 1.2 阅读对象 === 
- 
- 
-本文档主要阅读对象为开发人员,包括客户端和服务端。 
- 
-=== 1.3 业务术语 === 
- 
- 
-^术语 ^解释 | 
-|下发 |智能验证平台使用自有的聚合SMS、语音能力发送短信或者\\ 发起呼叫告知用户验证码 | 
-|异步通知 |在智能验证平台正确验证过手机号后,在完成返回给\\ APP通知的同时,执行异步线程通知开发者服务器验证结果 | 
-|签名 |本文档中涉及的签名都是以MD5的32位小写格式,签名字符\\ 串(开发者主账号+应用ID+手机号+应用配置的密钥) | 
- 
- 
-==== 2 开发前准备 ==== 
- 
- 
-=== 2.1 注册UCPaaS用户账号 === 
- 
- 
-登录www.ucpaas.com官网,注册(已经有账号的跳过) 
- 
-{{:​doc_img28.png |}} 
- 
-UCPaas运营人员审核后,可执行下一步创建应用 
- 
-=== 2.2 创建应用 === 
- 
- 
-登录后管理中心,“应用管理”→“应用列表”一栏中,点击“创建应用”,可进入填写应用资料页面。 
- 
-{{:​doc_img48.png |}} 
- 
- 
- 
-配置项目:​ 
- 
-{{:​doc_imgx1.png|}} 
- 
- 
-指定智能验证配置项: 
- 
-{{:​图片4.png|}} 
- 
-=== 2.3 创建智能验证短信模板 === 
- 
- 
-每个应用下可创建一个(只能有一个)智能验证短信的模板 
- 
-{{:​图片5.png|}} 
-{{:​doc_imgx2.png|}} 
- 
-注意: 模板里只能有两个参数,例如:\\ ​ 
- ​您注册的xx应用验证码为{1},请于{2}分钟内正确输入验证码 \\ 
- ​参数{1}会根据生成规则自动生成、参数{2}是开发者自定义的时间值 \\ 
- 
-=== 2.4 开发环境准备 === 
- 
-== 2.4.1 复制SDK文件到工程 == 
-  
-将sdk文件复制到工程libs目录下。 
- 
-{{:​doc_img47.png|}} 
- 
-== 2.4.2 导入SDK到工程 == 
-  
-在您的工程所在的工作空间下,导入sdk到工程,右键点击工程选择properties,如图: 
- 
-{{:​doc_img48.png|}} 
- 
-选择Add JARs,在工程libs目录下找到SDK,点击OK按钮 
- 
-{{:​doc_img49.png|}} 
- 
-== 2.4.3 配置AndroidManifest.xml == 
-  
-将demo工程中AndroidManifest.xml的相关配置,复制到您的工程目录AndroidManifest.xml文件中(含权限配置)。 
- 
-==== 3 功能演示 ==== 
- 
- 
-=== 3.1 下发验证码场景 === 
- 
-当用户手机未通过智能验证时,需要下发短信/​语音验证码的方式验证手机号的有效性。 
- 
-{{:​图片18.png|}} 
- 
-流程说明: \\  
-1) 请求1的流程是发生在开发者自己的客户端和服务器,主要检测手机是否已经注册,如果未注册,则返回签名作为请求2中调用智能验证SDK的参数;\\ ​ 
- 
-2) 请求2 执行下发验证码的操作,具体接口参数详见“接口调用“中的”请求验证“接口说明;\\ ​ 
- 
-3) 请求3为提交验证码验证结果,检查用户的手机有效性;\\ ​ 
- 
-4) 异步通知结果详见“5 服务器异步通知说明”;\\ 
- 
-=== 3.2 智能验证通过场景 === 
- 
-{{:​图片19.png|}} 
- 
-流程说明: \\ 
-1) 请求1的流程是发生在开发者自己的客户端和服务器,主要检测手机是否已经注册,如果未注册,则返回签名作为请求2中调用智能验证SDK的参数;\\ 
- 
-2) 请求2 执行下发验证码的操作,具体接口参数详见“接口调用“中的”请求验证“接口说明;\\ 
- 
-3) 请求3为提交验证码验证结果,检查用户的手机有效性;\\ 
- 
-4) 4)异步通知结果详见“5 服务器异步通知说明”;\\ 
- 
-==== 4 接口调用 ==== 
- 
- 
-=== 4.1 请求验证 === 
- 
-== 4.1.1 功能描述 == 
-  
-提交验证请求,根据用户手机号在智能验证的云端服务返回验证结果,可以分短信 或者语音下发验证码,也可能 
-== 4.1.2 接口说明 == 
-<code java> ​           
-public static void getVerificationCode(Context mContext,​String sign,String sid,String appid, 
-String appName,int seconds,int business,​String phone, 
-VerificationCodeListener verificationCodeListener) 
-</​code> ​     
- 
-请求参数说明: 
- 
-^名称 ^说明 | 
-|mContext |当前程序上下文 | 
-|sign |签名 | 
-|sid |开发者主账号 | 
-|appid |应用ID |  
-|appName |应用描述 |  
-|seconds |替换模板中的“有效时间”参数,单位秒 \\ 如模板:你注册的验证码{1},请在{2}秒内输入。\\ 此处参数会自动替换{2}参数 | 
-|business |验证业务类型,当前智能验证业务参数值为1 | 
-|phone |用户手机号 | 
-|verificationCodeListener |回调监听器 | 
- 
-== 4.1.3 调用示例 == 
- 
-<code java> ​         
-/** 
- ​* ​ 
- * 获得验证码 ​ (demo 源码) 
- * @author: xiongjijian 
- ​* ​ 
- */ 
- 
-private void getVerificationCode(String phone , String sign){ 
-    VerificationCode.getVerificationCode(RegisterActivity.this,​ sign, "​4c1990a5c1ad2674bc94bc39a6fd0699",​ "​efb7e1de9da649fa83881afea2841cd7",​ "​com.yzx.yunyanzhengdemo",​ 60, 1, phone, new VerificationCodeListener() { 
-        @Override 
-        public void onVerificationCode(int arg0, UcsReason arg1) { 
-            vfc=true; 
-            if(arg0==1){ 
-                Message msg = new Message(); 
-                msg.obj = "​短信";​ 
-                msg.what = 4; 
-                mUiHandler.sendMessage(msg);​ 
-            }else{ 
-                Message msg = new Message(); 
-                msg.obj = "​语音";​ 
-                msg.what = 4; 
-                mUiHandler.sendMessage(msg);​ 
-            } 
-            if(arg1.getReason() == 300250){ 
-                if(arg0 == 0){ 
-                    numpage++; 
-                    mUiHandler.sendEmptyMessage(2);​ 
-                }else { 
-                    vfc_result=true;​ 
-                    mUiHandler.sendEmptyMessage(1);​ 
-                } 
-            }else{ 
-                numpage--; 
-            } 
-        } 
-    }); 
-} 
- 
-</​code> ​       
- 
-=== 4.2 提交验证 === 
- 
-== 4.2.1 功能描述 == 
-  
-用户在收到短信或语音下发的验证码后,输入提交验证,APP调用SDK来完成验证码的校验 
-== 4.2.2 接口说明 == 
-            
-<code java> 
-public static void doVerificationCode(Context mContext,​String phone,​String verifycode, String sid, String appid, VerificationCodeListener verificationCodeListener) 
-</​code>​ 
-        ​ 
- 
-参数说明: 
- 
-^名称 ^说明 | 
-|mContext |当前程序上下文 | 
-|phone |用户手机号 | 
-|verifycode |验证码 | 
-|sid |开发者主账号 | 
-|appid |应用ID | 
-|verificationCodeListener |回调监听器| ​ 
- 
-== 4.2.3 调用示例 ​   == 
- 
-<code java> ​       ​ 
-/** 
- * 对验证码验证 (demo 源码) 
- * @author: xiongjijian 
- ​* ​ 
- */ 
- 
-private void StartVerificationCode() { 
-    if(vfc_result){ 
-        //​stopCallTimer();​ 
-        vfc_result=false;​ 
-        VerificationCode.doVerificationCode(RegisterActivity.this,​ phonenum, et_data_verification.getText().toString(),​ "​4c1990a5c1ad2674bc94bc39a6fd0699",​ "​efb7e1de9da649fa83881afea2841cd7",​ new VerificationCodeListener() { 
-            @Override 
-            public void onVerificationCode(int arg0, UcsReason arg1) { 
-                switch (arg1.getReason()) { 
-                    case 300250: 
-                        mRequestHandler.sendEmptyMessage(0);​ 
-                        mUiHandler.sendEmptyMessage(2);​ 
-                        break; 
-                    case 300251: 
-                        mRequestHandler.sendEmptyMessage(1);​ 
-                        break; 
-                    case 300252: 
-                        mRequestHandler.sendEmptyMessage(2);​ 
-                        break; 
-                    …. 
-                    default: 
-                        System.out.println("​BBB"​);​ 
-                        mRequestHandler.sendEmptyMessage(99);​ 
-                        break; 
-                    } 
-                vfc_result=true;​ 
-            } 
-        }); 
-    } 
-} 
- 
-</​code>​ 
-        ​ 
- 
-==== 5 服务器异步通知参数说明 ==== 
- 
- 
-=== 5.1 描述 === 
- 
- 
-当用户手机号在智能验证平台通过验证后,在返回SDK的HTTP结果时,执行异步线程通知开发者服务器的成功验证结果。开发者服务器在收到通知后,请注意做签名校验防止恶意请求。 
- 
-=== 5.2 列表 === 
- 
- 
--表- 回调验证成功参数 
- 
- 
-^参数 ^参数名称 ^类型 ^说明 | 
-|appid |开发者id |String |开发者在我方注册的应用id | 
-|phone |手机号 |String |用户手机号 | 
-|sign |签名 |String |签名 | 
- 
- 
-=== 5.3 样例 === 
- 
-<code java> 
-http://​www.xxx.com/​callback/?​appid=00e1d21234567891024e1a123456cfa3&​phone=13800038000&​sign=9d801affd5eadd325b8217430ec809e6 
-</​code>​ 
- 
-签名字符串:​ (开发者主账号+应用ID+手机号+应用配置的密钥) 
- 
-回调请求方式: POST 
- 
-例如:\\ ​ 
-开发者主账号:0316894c88d389035113e4bf01c30e2f \\  
-应用ID:00e1d21234567891024e1a123456cfa3 \\  
-手机号:13800038000 \\  
-秘钥:private_key \\  
- ​MD5(0316894c88d389035113e4bf01c30e2f00e1d21234567891024e1a123456cfa313800038000private_key) \\  
- ​MD5后sign = 9d801affd5eadd325b8217430ec809e6 (注意是小写) \\  
- 
-开发者服务器收到请求后返回: {“result”:​”success”} \\  
- 
-==== 6 错误码 ==== 
- 
- 
--表- 客户端错误码表 
- 
-^参数 ^参数名称 |  
-|300250 |验证成功 | 
-|300251 |开发者账号无效 | 
-|300252 |验证码错误 | 
-|300253 |验证码过期 | 
-|300254 |30S内重复请求 | 
-|300255 |签名错误 | 
-|300256 |手机号码无效 | 
-|300257 |验证码参数错误 | 
-|300258 |获取验证码失败 | 
  

页面工具