992
阿裏雲
iOS SDK API__API手冊_數據風控-阿裏雲
獲取數據風控wtoken
#import <SecurityGuardSDK/JAQ/SecurityVerification.h>
+(NSString*)doJAQVerfificationSync:(NSDictionary*)info
timeout:(NSInteger) timeout;
在需要使用數據風控的場景,如注冊、登陸、活動頁麵,可以在用戶點擊“注冊”、“登陸”等業務按鈕時、業務邏輯處理前獲得該token,服務端通過該token查詢風險結果。函數不能再主線程執行,否則會拋出異常。
入參
Info: nil;
timeout: 接口超時時間,單位秒。隻能傳入1 <= timeout <= 22的整型,傳入其他值,將使用默認超時時間(22秒);
返回
- wtoken:調用方得到此wtoken後,需要將此token傳遞到自己的server端,再由自己的server端將此token透傳到聚安全server端,獲得最後的風控校驗結果。
- wtoken在後端風險識別使用 參考 API概覽-業務風險防控API
錯誤診斷
接口不拋異常。當調用出錯的時候,會在命令行中打印相應的錯誤日誌,錯誤日誌以SG ERROR開頭:
錯誤碼 | 值 | 含義 |
---|---|---|
SEC_ERROR_SECURITYBODY_INVALID_THREAD | 1401 | 參數不正確,請檢查輸入的參數 |
SEC_ERROR_SECURITYBODY_INVALID_THREAD | 1402 | 接口調用線程錯誤。請在非UI線程內調用此接口(因為本接口有耗時操作) |
SEC_ERROR_SECURITYBODY_NET_ERROR | 1403 | 網絡超時或網絡斷開 |
SEC_ERROR_SECURITYBODY_SERVER_ERROR | 1404 | 數據風控服務端器錯誤,請確認應用是否有權限訪問此接口 |
SEC_ERROR_SECURITYBODY_APPKEY_ERROR | 1405 | 加密文件yw_1222_0335.jpg格式或其內數據有問題。常見原因為用錯圖片(iOS與Android圖片不通用)或者圖片內沒有存放對應的Top Appkey |
SEC_ERROR_SECURITYBODY_SIGNATURE_ERROR | 1406 | 加密文件yw_1222_0335.jpg格式或其內數據有問題。常見原因為用錯圖片(iOS與Android圖片不通用)或者圖片內沒有存放對應的Top Appkey |
SEC_ERROR_SECURITYBODY_ENCRYPTION_ERROR | 1407 | 數據加密錯誤 |
SEC_ERROR_SECURITYBODY_TOP_ERROR | 1408 | TOP協議錯誤,請檢查手機時間設置是否正常,加密圖片yw_1222_0335.jpg使用是否正確 |
SEC_ERROR_SECURITYBODY_CONCURRENT | 1409 | 接口被並發調用錯誤;本接口不支持多線程同時調用 |
SEC_ERROR_SECURITYBODY_UNSUPPORTED | 1498 | 接口在這個版本的SDK中不支持 |
SEC_ERROR_SECURITYBODY_UNKNOWN_ERR | 1499 | 未知錯誤,請重試 |
驗證類型定義
MSAuthDefines.h
/**
* 當前支持的驗證類型:目前支持的類型有滑動驗證,即將會有更多驗證方式加入
*/
typedef enum : NSUInteger {
MSAuthTypeSlide
} MSAuthType;
啟動驗證(依賴業務風險防控結果啟動)
import MSAuthVCFactory.h
@interface MSAuthVCFactory : NSObject
/**
* 獲取驗證VC的工廠方法
*
* @param language 需要展示的語言,如:zh_CN 簡體中文, en 英文。nil為當前環境。如果語言包不存在顯示英文
* @param type 驗證類型。目前支持的類型有滑動驗證,即將會有更多驗證方式加入
* @param jsonData 數據風控服務器透傳下發數據
* @param delegate 處理回調結果的代理
* @param lang 設置語言
* @return 返回一個實例VC
*/
+ (UIViewController *)vcWithAuthType:(MSAuthType)type
jsonData:(NSString *)jsonData
language:(NSString*)lang
Delegate:(id<MSAuthProtocol>)delegate;
通過函數可以唿出驗證UI
jsonData和type為服務端通過業務風險防控獲得的結果。 具體參考 API概覽-業務風險防控API
pushViewController
UIViewController *vc = [MSAuthVCFactory simapleVerifyWithType:服務器回傳的驗證類型
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
使用presentViewController,帶navigationbar
UINavigationController *navigationController =
[[UINavigationController alloc] initWithRootViewController:vc];
//now present this navigation controller modally
[self presentViewController:navigationController
animated:YES
completion:^{
}];
啟動驗證(不依賴業務風險防控結果,直接啟動驗證)
/**
* 驗證VC的工廠方法, 使用風險驗證用戶直接調用這個接口
* @param type 驗證類型。目前支持的類型有滑動驗證,即將會有更多驗證方式加入
* @param language 需要展示的語言,如:zh_CN 簡體中文, en 英文。nil為當前環境。如果語言包不存在顯示英文
* @param delegate 處理回調結果的代理
* @return 返回一個實例VC
*/
+ (UIViewController *)simapleVerifyWithType:(MSAuthType)type
language:(NSString*)lang
Delegate:(id<MSAuthProtocol>)delegate;
啟動驗證兩個接口:simapleVerifyWithType和vcWithAuthType區別
simapleVerifyWithType是直接啟動驗證碼接口,功能為純粹的驗證。目前支持的驗證類型為滑動。
vcWithAuthType會將之前步驟中調用的業務風險防控結果(jsonData和type)帶入到驗證中,在該結果中會建議使用的驗證類型(即將支持語音、短信驗證)。
驗證結果回調
用戶通過回調函數關閉controller,sdk內部不會關閉此控件。
typedef enum {
VERIFY_REUSLT_OK = 0,
VERIFY_REUSLT_FAIL = 1
}t_verify_reuslt
@protocol MSAuthProtocol <NSObject>
/**
* 驗證結果的回調
*
* @param error 驗證錯誤返回碼, nil表示正確 非空為驗證失敗
* @param sessionId 聚安全服務器下發二次驗證sessionid,
* 三方服務器利用token獲得驗證結果
*/
- (void)verifyDidFinishedWithResult:(t_verify_reuslt)code
Error:(NSError *)error
SessionId:(NSString *)sessionId;
@end
參數error對象 ErrorDomain詳細定義:
值 | 含義 |
---|---|
AliAuthGeneric | 一般性錯誤來自網絡異常 |
AliAuthServer | 網關通信錯誤 |
AliAuthServiceNc | 滑動業務錯誤 |
AliAuthService | 驗證業務錯誤 |
業務風險防控與驗證示例代碼
Step 0: 風險采集和判斷
進行登錄,改密,找密,注冊等涉及敏感場景時,需要調用風險采集獲得wtoken。調用者需要把wtoken傳到用戶的服務端,服務端用wtoken請求業務風險防控API獲得相應的風險結果。數據風控服務端會把風險結果以json形式返回。
#import <SecurityGuardSDK/JAQ/SecurityVerification.h>
獲得風險采集信息,
NSString* wtoken = [SecurityVerification doJAQVerfificationSync:info
timeout:timeout];
如果wtoken返回為nil表示風險采集失敗,如果風險采集失敗建議認為驗證失敗,用戶阻止其後操作。
返回的wtoken,需要到服務器端進行風險判斷.具體調用參看 API概覽-業務風險防控API
Step 1: 引入頭文件
#import <MSAuthSDK/MSAuthSDK.h>
Step 2: 風險驗證 viewcontroller
UIViewController *vc = [MSAuthVCFactory vcWithAuthType:服務器回傳的驗證類型
jsonData:@"來自風險識別後的返回值"
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
Step 3: 實現delegate回調
@interface ViewController () <MSAuthProtocol>
...
#pragma mark - MSAuthProtocol methods
- (void)verifyDidFinishedWithError:(NSError *)error SessionId:(NSString *)sessionId {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"驗證失敗 %@", error);
} else {
NSLog(@"驗證通過 %@", sessionId);
}
//將sessionid傳到經過app服務器做二次驗證
});
}
Step 4: sessionid 驗證
具體調用參看 API概覽-驗證碼服務API
不依賴業務風險防控,直接使用驗證碼示例代碼
Step 0: 引入頭文件
#import <MSAuthSDK/MSAuthSDK.h>
Step 1: 調用工廠類生成所需二次驗證 viewcontroller
UIViewController *vc = [MSAuthVCFactory simapleVerifyWithType:服務器回傳的驗證類型
language:@"zh_CN"
Delegate:self];
[self.navigationController pushViewController:vc animated:YES];
Step 2: 實現delegate回調
@interface ViewController () <MSAuthProtocol>
...
#pragma mark - MSAuthProtocol methods
- (void)verifyDidFinishedWithError:(NSError *)error SessionId:(NSString *)sessionId {
dispatch_async(dispatch_get_main_queue(), ^{
if (error) {
NSLog(@"驗證失敗 %@", error);
} else {
NSLog(@"驗證通過 %@", sessionId);
}
[self.navigationController popViewControllerAnimated:YES];
//將sessionid傳到經過app服務器做二次驗證
});
}
Step 3:sessionid 驗證
具體調用參看 API概覽-驗證碼服務API
錯誤處理
1.如看到以下報錯:
App Transport Security has blocked a cleartext HTTP (https://) resource load since it is insecure. Temporary exceptions can be configured via your app’s Info.plist file.
SG ERROR: 1210
你需要在info.plist中設置
<key>NSAppTransportSecurity</key>
<dict>
<key>NSAllowsArbitraryLoads</key><true/>
</dict>
最後更新:2016-11-23 16:04:21
上一篇:
滑動驗證插件__使用手冊_數據風控-阿裏雲
下一篇:
Android SDK API__API手冊_數據風控-阿裏雲
iOS SDK手冊__SDK手冊_HTTPDNS-阿裏雲
請求結構__調用方式_API使用手冊_消息服務-阿裏雲
Web控製台介紹__使用指南_DataHub實時數據通道_大數據計算服務-阿裏雲
事務__常用指標_使用手冊_性能測試-阿裏雲
超大消息傳輸__最佳實踐_消息服務-阿裏雲
籃球動作視頻識別__阿裏雲ET介紹-阿裏雲
DRDS數據源配置__數據源配置_數據同步手冊_用戶操作指南_大數據開發套件-阿裏雲
簡單下載示例__SDK示例_批量數據通道_大數據計算服務-阿裏雲
添加域名分組__域名分組接口_API文檔_雲解析-阿裏雲
創建事件__數據庫開發_用戶指南(RDBMS)_數據管理-阿裏雲
相關內容
常見錯誤說明__附錄_大數據計算服務-阿裏雲
發送短信接口__API使用手冊_短信服務-阿裏雲
接口文檔__Android_安全組件教程_移動安全-阿裏雲
運營商錯誤碼(聯通)__常見問題_短信服務-阿裏雲
設置短信模板__使用手冊_短信服務-阿裏雲
OSS 權限問題及排查__常見錯誤及排除_最佳實踐_對象存儲 OSS-阿裏雲
消息通知__操作指南_批量計算-阿裏雲
設備端快速接入(MQTT)__快速開始_阿裏雲物聯網套件-阿裏雲
查詢API調用流量數據__API管理相關接口_API_API 網關-阿裏雲
使用STS訪問__JavaScript-SDK_SDK 參考_對象存儲 OSS-阿裏雲