【重点推荐】iOS开发之芝麻信用SDK的超详细使用教程

其实每一个第三方SDK的使用都差不多,看着官方给的开发文档和Demo就能依样画瓢自己做出来。我只是希望帮助一下刚入行不久的新人。

先附上官方文档的地址:芝麻信用iOS开发文档

一、先做一些必备的工作

由于需要导入的Framework比较多,先创建一个Frameworks分组(分组和文件夹可不一样哦)

1. 将资源bundle导入工程

H5Service.bundle

Poseidon.bundle

直接把下载到的这两个文件拖进Frameworks分组中

2. 向工程中导入SDK Framework文件

ZMCreditSDK.framework

ZMDependUponSDK.framework

注意1:如果商户引入支付宝钱包SDK,则不需要再引入ZMBuildUponSDK.framework, 因为这样可以解决相同类库冲突的问题

注意:这两个文件导入之前一定要把他复制到你的项目中去,一般就放项目根目录下就行,跟xcodeproj文件在同一目录下

这里需要选择Add Others,然后会弹出文件选择框,把刚刚复制到项目根目录下的这两个framework选进来就行了

(第三步中的其他依赖库,都是系统的,直接search就行了,第三步就不贴图了)

3. 导入其他依赖库

SDK中依赖了其他基础库来保证正常运行,请添加如下依赖库:

MobileCoreServices.framewrok

CFNetwork.framework

MessageUI.framework

EventKit.framework

AssetsLibrary.framework

CoreMotion.framework

Libz.dylib (Xcode 7 之后是libz.tbd)

SystemConfiguration.framework

CoreTelephony.framework

二、开始使用芝麻信用SDK

自己先把流程走一遍,一切都会变的很容易。(流程见下图)

首先,在AppDelegate里面来注册应用:

[[ALCCreditService sharedService] resgisterApp];

当然,在AppDelegate中和请求芝麻信用分数的Controller中肯定也都需要引入头文件

#import <ZMCreditSDK/ALCreditService.h>

接下来就是正式使用芝麻信用SDK了

①我们把用户的信息(姓名、手机号、身份证号码)通过APP传给公司的服务器(这一步其实基本不属于芝麻信用的使用范畴,现在哪个APP获取不到用户的个人信息?!我们这里其实只传了姓名和身份证号码,其实有了身份证号码,芝麻信用自然就能锁定到那个唯一的人)只要能够获取到姓名和身份证号码,服务器那边就能传给我们一个经过加密的param和一个经过加密的sign

注意2:界面跳转是基于navigationController的push功能,并且使用的是系统的nav bar,如果商户端有对nav bar作自定义,请在调用SDK之前,进行nav bar的调整。

- (void)buttonAction:(UIButton *)button {
    // ①把用户数据传给服务器,即传入参数(字典)
    //(如果后台从别的页面已经获取到用户的这些数据了,此处也可以不传参数,这就看你跟后台怎么商量了;IDCardNumber和userName是后台给你的,不是固定死的)
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:@"18位身份证号码", @"IDCardNumber", @"用户姓名", @"userName", nil];
    // 创建网络请求管理对象
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    // 申明返回的结果是json类型
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    // 申明请求的数据是json类型
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    // 如果报接受类型不一致请替换一致text/html或别的
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];

    [manager POST:URL parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

    } progress:^(NSProgress * _Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        // ②芝麻信用SDK提供的方法,就是这么简单,就一行代码,搞定。(APP ID由公司给你,这个是固定的,写死就行)
        // ②这里只要传三个参数就行,app id、sign、params,芝麻信用会返回给我们一个字典,在result中
        [[ALCreditService sharedService] queryUserAuthReq:@"APP ID" sign:responseObject[@"sign"] params:responseObject[@"param"] extParams:nil selector:@selector(result:) target:self];

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

    }];
}

②根据SDK给的方法,把第二步获取到的这两个参数和APP ID传进去,这些就被传到芝麻信用的服务器,然后会返回给我们授权token,字段名也是sign和params

// ②芝麻信用SDK提供的方法,就是这么简单,就一行代码,搞定。(APP ID由公司给你,这个是固定的,写死就行)
// ②这里只要传三个参数就行,app id、sign、params,芝麻信用会返回给我们一个字典,在result中
[[ALCreditService sharedService] queryUserAuthReq:@"APP ID" sign:responseObject[@"sign"] params:responseObject[@"param"] extParams:nil selector:@selector(result:) target:self];

这一步的代码不用复制,就在第一步的AFN网络请求成功后写这一行代码(上面第一步中有)

③我们再把params提交给公司的服务器,然后服务器就能通过这个token获取到用户的芝麻信用分数,最后把分数返回给我们就好了。(我们这里只传了params就能请求的到芝麻信用分数)

- (void)result:(NSMutableDictionary*)dic{
    // ③从第二步中芝麻信用返回给我们的字典就是这的dic,你可以试着打印看一下
    // ③把params提交给服务器,服务器就能把芝麻信用分数返回给我们了,这里dict的key:params也是后台给你的,不是固定的。
    NSDictionary *dict = [NSDictionary dictionaryWithObjectsAndKeys:dic[@"params"], @"params", nil];
    // 创建网络请求管理对象
    AFHTTPSessionManager *manager = [AFHTTPSessionManager manager];
    // 申明返回的结果是json类型
    manager.responseSerializer = [AFJSONResponseSerializer serializer];
    // 申明请求的数据是json类型
    manager.requestSerializer = [AFJSONRequestSerializer serializer];
    // 如果报接受类型不一致请替换一致text/html或别的
    manager.responseSerializer.acceptableContentTypes = [NSSet setWithObjects:@"text/html", nil];

    [manager POST:URL parameters:dict constructingBodyWithBlock:^(id<AFMultipartFormData>  _Nonnull formData) {

    } progress:^(NSProgress * _Nonnull uploadProgress) {

    } success:^(NSURLSessionDataTask * _Nonnull task, id  _Nullable responseObject) {

        // 看看这里是不是打印出了你想要的芝麻分数了呢
        NSLog(@"%@", responseObject);

    } failure:^(NSURLSessionDataTask * _Nullable task, NSError * _Nonnull error) {

    }];
}

注意3:由于sdk里面有用到c编译,请把调用queryUserAuthReq的controller后缀名改成.mm

时间: 2024-11-11 14:49:26

【重点推荐】iOS开发之芝麻信用SDK的超详细使用教程的相关文章

iOS 开发之如何生成SDK

1.创建一个新项目: 2.选择支持的最低系统版本(PROJECT和TARGETS都要修改): 3.创建自己的类 方法,并将创建的.h文件导入到创建项目是自动生成的那个.h文件中,当其他项目使用这个sdk的时候 只需要导入这一个.h文件就可以了(自己想象调用sdk时导入的类型,例:),具体的sdk功能的实现放在自己创建的.m文件中 4.公开.h文件,隐藏.m文件(防止其他人查看更能实现的原理,只体同一个方法名在.h文件中,方法的实现放在.m文件中) 在这里有三个选择public是公开的,当别人调用

iOS开发mock接口数据(三)之实战教程

??接上篇文章,我对一些匹配的方法进行了介绍,这篇文章主要为大家说说实际操作的步骤. plist文件如何配置 ??plist文件的配置对于APIMock的至关重要,直接关系到能否运用AOP编程思想实现JKAPIMock所要达到的目标.如下图: 这里主要针对GET,POST请求做了处理,如果某个接口不需要进行数据mock操作,isMock设置为NO即可,另外考虑到开发过程中开发,生产服务器会切换的情况我这里只匹配服务器后面的接口URL,不匹配服务器地址.当然了如果大家想的话,可以自己加上去. 如何

【iOS秘籍】-下载历史版本App超详细教程

有些时候我们需要下载旧版本的 App 进行研究或者其他用途,然而在 iOS 下,苹果的 App Store 里面默认只能下载最新版本的 App,对滴,就是这么任性,不服不行.然而在 Android 里面任意一个应用商店都可以下载任意版本的 App,就是这么开放.重点来啦,今天我要教大家的就是利用 iTunes 下载任意历史版本的 App,任意哟,下面开始教程??.(为方便大家理解操作,图片较多,流量党慎入0-0) 题外话(强迫症排版.拼写): 文章排版:个人强迫症比较喜欢关注一些细节,比如博客或

iOS开发 非常全的三方库、插件、大牛博客等等

UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者上拉刷新功能.可以自定义上下拉刷新的文字说明.具体使用看"使用方法". (国人写) XHRefreshControl- XHRefreshControl 是一款高扩展性.低耦合度的下拉刷新.上提加载更多的组件.(国人写) CBStoreHo

iOS开发之资料收集

github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或者CollectionView加上下拉刷新或者

iOS:iOS开发非常全的三方库、插件、大牛博客等等

iOS开发非常全的三方库.插件.大牛博客等等 github排名:https://github.com/trending, github搜索:https://github.com/search. 此文章转自github:https://github.com/Tim9Liu9/TimLiu-iOS UI 下拉刷新 EGOTableViewPullRefresh- 最早的下拉刷新控件. SVPullToRefresh- 下拉刷新控件. MJRefresh- 仅需一行代码就可以为UITableView或

iOS开发常用三方库、插件、知名博客等等

TimLiu-iOS   Swift版本点击这里 欢迎加入QQ交流群: 594119878 介绍 这是一个用于iOS开发的各种开源库.开源资料.开源技术等等的索引库. github排名 https://github.com/trending,github搜索:https://github.com/search 使用方法 根据目录关键字搜索,记得包含@,以保证搜索目录关键字的唯一性. 问题反馈 期待大家和我们一起共同维护,同时也期望大家随时能提出宝贵的意见(直接提交issues即可).请广大网友只

iOS开发的库的列表,不完全是开源库

这个也是从他人的总结中COPY过来,加以整理的 iOS苹果官方Demo合集1.网页地址 2.官方地址 优质iOS UI/UE库:1.gitHub地址 [资源集合]94个iOS开发资源推荐 iOS开发的库的列表 项目管理和工具 测试:TestFlight 依赖管理:CocoaPods 自动生成推送证书:GeneratePushCerts AppStore统计:App Annie 单元测试:GHUnitIOS.OCMock 错误分析:Crashlytics 动态更新APP:JSPatch,WaxPa

iOS开发下载文件速度计算

当我们写下载界面的时候,需要向用户展示每秒下载多少KB,这个时候就需要计算速度.如下: 我用的是AFNetworking来做下载的,我们拿AFHTTPRequestOperation来举列,AFHTTPRequestOperation中有个方法: - (void)setDownloadProgressBlock:(void (^)(NSUInteger bytesRead, long long totalBytesRead, long long totalBytesExpectedToRead)