其实每一个第三方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里面来注册应用:

[[ALCreditService 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

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

  1. 【手把手】ios苹果打包——遇见项目实战|超详细的教程分享

    六年代码两茫茫,不思量,自难忘 6年资深前端主管一枚,只分享技术干货,项目实战经验 关注博主不迷路~ 文章目录 前言 weex介绍 eeui介绍 一.安装CocoaPods 1.CocoaPods介绍 ...

  2. 强烈推荐iOS开发取色器

    强烈推荐iOS开发取色器 小编今天特别向大家介绍一款开发时一款利器,在开发时候我们常常根据设计师提取某些元素的颜色,这就是Sip取色器,选择后,可以直接通过粘贴生成oc的代码.

  3. unity学习开发小球吃方块小游戏(从制作到发布程序,超详细全教程包你学会)

    unity小球吃方块开发过程 你将学会用unity开发小游戏的基础知识 吃方块游戏超详细全教程,保姆式教学包你学会 一.创建对象 创建PlayBall小球吃金币游戏项目,创建地面和小球. 二.添加脚本 ...

  4. iOS开发:集成微信 SDK 支付篇

    原文链接: https://cainrun.github.io 原文作者: Cain 作者感言 惯例, 开头都是要说些东西的了, 随着现在的App越来越商业化, 很多公司的App都会集成第三方的支付S ...

  5. iOS仿支付宝芝麻信用仪表盘效果

    概述 自定义View之高仿支付宝芝麻信用分数仪表盘动画效果 详细 代码下载:http://www.demodashi.com/demo/10654.html 仿支付宝芝麻信用仪表盘效果 一.主要思路 ...

  6. STM32F103C8T6开发板+GY521制作NAZE32飞控板详细图文教程

    前言 前几天改造Skye无人机(Skye无人机刷Betaflight详细图文教程),对Betaflight开源飞控有了一定的了解,产生了自制飞控板的念头,网上一番查资料发现可行,现把制作过程记录如下. ...

  7. iOS开发-极光推送SDK使用笔记

    推送作为一个产品必备功能,越来越得到所有人的重用,市面上做推送的第三方公司也有很多,像个推,百度,甚至友盟也出了推送功能.用什么不是我们能决定的,而是上级或产品决定的,所以我负责的项目用了极光推送,我 ...

  8. api工程IOS学习:在IOS开发中使用GoogleMaps SDK

    今天一直在学习api工程之类的问题,今天正好有机会和大家分享一下. 官方文档地址:https://developers.google.com/maps/documentation/ios/start# ...

  9. ios开发 方形到圆的动画_3Blue1Brown 动画制作教程(1)--制作第一个自己的动画

    制作第一个自己的动画 前一篇详细介绍了 3Blue1Brown 的动画引擎在 Windows 10 64 位系统上,基于 Anaconda的配置方法,并且详细描述了在配置 3Blue1Brown 提供 ...

最新文章

  1. Linux测试服务器端口号是否可以成功访问
  2. .Net Core 项目引用本地类库方式(二)
  3. 利用介质创建额外域控制器
  4. 计算机应用基础考证理论知识,《计算机应用基础》考试大纲
  5. java.util.Date和java.sql.Date之间的相互转换
  6. 不同的电脑打印预览不同怎么解决_条码打印软件中标签预览正常打印无反应怎么解决...
  7. 还不会回答Spring Boot和Spring MVC的关系?大厂Java高级面试官告诉你答案!
  8. 如何从完好的数据文件恢复oracle数据库
  9. 更新 FF.PyAdmin v1.2.4
  10. OC基础知识(面试必看)
  11. html 点击按钮刷新验证码,HTML点击刷新验证码
  12. Android P如何去掉电池图标和固定电量显示
  13. 天下武功唯快不破------实验吧
  14. 茅台nfc显示服务器临时维护,茅台酒使用手机NFC扫描瓶盖辨别真伪方法
  15. 电脑截图快捷键有哪些?5大截图方法总结!(2023版)
  16. ChatGPT辅助处理excel表格数据
  17. 我的编程之路(三) 蜗居
  18. 一次ffmpeg -c copy 在avformat_write_header函数处报错:Could not find tag for codec rawvideo in stream #0的原因分析
  19. 算法竞赛进阶指南---0x05(排序)七夕祭
  20. java实现掌阅Ireader签到领取阅饼

热门文章

  1. 计算机制图国家规范,GB/T 30263-2013
  2. Shell脚本案例:实现局域网扫描功能
  3. Python库学习-Pandas
  4. SpringBoot实现文件上传接口
  5. 猪齿鱼Choerodon UI的级联数据源之间、非级联数据源之间的请求状态进行关联
  6. 产品经理设计产品流程都有哪些步骤
  7. Wampserver32 mysql 出现拒绝访问,端口被占用问题
  8. 【GoLang】2.3 函数
  9. 【距离高考还有多少天】
  10. word 参考文献 交叉引用 自动更新