热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

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

其实每一个第三方SDK的使用都差不多,看着官方给的开发文档和Demo就能依样画瓢自己做出来。我只是希望帮助一下刚入行不久的新人。先附上官方文档的地址:芝麻信用iOS开发文档一、先做一些必备的工作

其实每一个第三方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 

接下来就是正式使用芝麻信用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 _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 _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


推荐阅读
  • 在软件开发过程中,经常需要将多个项目或模块进行集成和调试,尤其是当项目依赖于第三方开源库(如Cordova、CocoaPods)时。本文介绍了如何在Xcode中高效地进行多项目联合调试,分享了一些实用的技巧和最佳实践,帮助开发者解决常见的调试难题,提高开发效率。 ... [详细]
  • 开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤
    开发技巧:在Interface Builder中实现UIButton文本居中对齐的方法与步骤 ... [详细]
  • 如何将TS文件转换为M3U8直播流:HLS与M3U8格式详解
    在视频传输领域,MP4虽然常见,但在直播场景中直接使用MP4格式存在诸多问题。例如,MP4文件的头部信息(如ftyp、moov)较大,导致初始加载时间较长,影响用户体验。相比之下,HLS(HTTP Live Streaming)协议及其M3U8格式更具优势。HLS通过将视频切分成多个小片段,并生成一个M3U8播放列表文件,实现低延迟和高稳定性。本文详细介绍了如何将TS文件转换为M3U8直播流,包括技术原理和具体操作步骤,帮助读者更好地理解和应用这一技术。 ... [详细]
  • 基于Net Core 3.0与Web API的前后端分离开发:Vue.js在前端的应用
    本文介绍了如何使用Net Core 3.0和Web API进行前后端分离开发,并重点探讨了Vue.js在前端的应用。后端采用MySQL数据库和EF Core框架进行数据操作,开发环境为Windows 10和Visual Studio 2019,MySQL服务器版本为8.0.16。文章详细描述了API项目的创建过程、启动步骤以及必要的插件安装,为开发者提供了一套完整的开发指南。 ... [详细]
  • 在iOS开发中,基于HTTPS协议的安全网络请求实现至关重要。HTTPS(全称:HyperText Transfer Protocol over Secure Socket Layer)是一种旨在提供安全通信的HTTP扩展,通过SSL/TLS加密技术确保数据传输的安全性和隐私性。本文将详细介绍如何在iOS应用中实现安全的HTTPS网络请求,包括证书验证、SSL握手过程以及常见安全问题的解决方法。 ... [详细]
  • 本指南详细介绍了在Linux环境中高效连接MySQL数据库的方法。用户可以通过安装并使用`mysql`客户端工具来实现本地连接,具体命令为:`mysql -u 用户名 -p 密码 -h 主机`。例如,使用管理员账户连接本地MySQL服务器的命令为:`mysql -u root -p pass`。此外,还提供了多种配置优化建议,以确保连接过程更加稳定和高效。 ... [详细]
  • Android中将独立SO库封装进JAR包并实现SO库的加载与调用
    在Android开发中,将独立的SO库封装进JAR包并实现其加载与调用是一个常见的需求。本文详细介绍了如何将SO库嵌入到JAR包中,并确保在外部应用调用该JAR包时能够正确加载和使用这些SO库。通过这种方式,开发者可以更方便地管理和分发包含原生代码的库文件,提高开发效率和代码复用性。文章还探讨了常见的问题及其解决方案,帮助开发者避免在实际应用中遇到的坑。 ... [详细]
  • 本文详细探讨了在ASP.NET环境中通过加密数据库连接字符串来提升数据安全性的方法。加密技术不仅能够有效防止敏感信息泄露,还能增强应用程序的整体安全性。文中介绍了多种加密手段及其实施步骤,帮助开发者在日常开发过程中更好地保护数据库连接信息,确保数据传输的安全可靠。 ... [详细]
  • 在 CentOS 6.5 系统上部署 VNC 服务器的详细步骤与配置指南
    在 CentOS 6.5 系统上部署 VNC 服务器时,首先需要确认 VNC 服务是否已安装。通常情况下,VNC 服务默认未安装。可以通过运行特定的查询命令来检查其安装状态。如果查询结果为空,则表明 VNC 服务尚未安装,需进行手动安装。此外,建议在安装前确保系统的软件包管理器已更新至最新版本,以避免兼容性问题。 ... [详细]
  • 使用ArcGIS for Java和Flex浏览自定义ArcGIS Server 9.3地图
    本文介绍了如何在Flex应用程序中实现浏览自定义ArcGIS Server 9.3发布的地图。这是一个基本的入门示例,适用于初学者。 ... [详细]
  • 用阿里云的免费 SSL 证书让网站从 HTTP 换成 HTTPS
    HTTP协议是不加密传输数据的,也就是用户跟你的网站之间传递数据有可能在途中被截获,破解传递的真实内容,所以使用不加密的HTTP的网站是不 ... [详细]
  • 本文详细介绍了在 CentOS 7 系统中配置 fstab 文件以实现开机自动挂载 NFS 共享目录的方法,并解决了常见的配置失败问题。 ... [详细]
  • Spring Boot 中配置全局文件上传路径并实现文件上传功能
    本文介绍如何在 Spring Boot 项目中配置全局文件上传路径,并通过读取配置项实现文件上传功能。通过这种方式,可以更好地管理和维护文件路径。 ... [详细]
  • 本文详细介绍了 InfluxDB、collectd 和 Grafana 的安装与配置流程。首先,按照启动顺序依次安装并配置 InfluxDB、collectd 和 Grafana。InfluxDB 作为时序数据库,用于存储时间序列数据;collectd 负责数据的采集与传输;Grafana 则用于数据的可视化展示。文中提供了 collectd 的官方文档链接,便于用户参考和进一步了解其配置选项。通过本指南,读者可以轻松搭建一个高效的数据监控系统。 ... [详细]
  • 您的数据库配置是否安全?DBSAT工具助您一臂之力!
    本文探讨了Oracle提供的免费工具DBSAT,该工具能够有效协助用户检测和优化数据库配置的安全性。通过全面的分析和报告,DBSAT帮助用户识别潜在的安全漏洞,并提供针对性的改进建议,确保数据库系统的稳定性和安全性。 ... [详细]
author-avatar
家有吃货_魏ranran
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有