热门标签 | 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


推荐阅读
  • iOS推送手机消息的技术背后的奥秘揭示
    作者:allenzzhao,腾讯IEG运营开发工程师消息推送我们几乎每天都会用到,但你知道iOS中的消息推送是如何实现的吗?本文将从推送权限申请,到本地和远程消息推送, ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • 由引起的bug~
    编程经验:一个由引起的bug~文章一 转自:http:www.mamicode.cominfo-detail-506772.html1.问题描述最近遇到一个莫 ... [详细]
  • 使用Ubuntu中的Python获取浏览器历史记录原文: ... [详细]
  • 树莓派语音控制的配置方法和步骤
    本文介绍了在树莓派上实现语音控制的配置方法和步骤。首先感谢博主Eoman的帮助,文章参考了他的内容。树莓派的配置需要通过sudo raspi-config进行,然后使用Eoman的控制方法,即安装wiringPi库并编写控制引脚的脚本。具体的安装步骤和脚本编写方法在文章中详细介绍。 ... [详细]
  • IOS开发之短信发送与拨打电话的方法详解
    本文详细介绍了在IOS开发中实现短信发送和拨打电话的两种方式,一种是使用系统底层发送,虽然无法自定义短信内容和返回原应用,但是简单方便;另一种是使用第三方框架发送,需要导入MessageUI头文件,并遵守MFMessageComposeViewControllerDelegate协议,可以实现自定义短信内容和返回原应用的功能。 ... [详细]
  • ShiftLeft:将静态防护与运行时防护结合的持续性安全防护解决方案
    ShiftLeft公司是一家致力于将应用的静态防护和运行时防护与应用开发自动化工作流相结合以提升软件开发生命周期中的安全性的公司。传统的安全防护方式存在误报率高、人工成本高、耗时长等问题,而ShiftLeft提供的持续性安全防护解决方案能够解决这些问题。通过将下一代静态代码分析与应用开发自动化工作流中涉及的安全工具相结合,ShiftLeft帮助企业实现DevSecOps的安全部分,提供高效、准确的安全能力。 ... [详细]
  • 基于移动平台的会展导游系统APP设计与实现的技术介绍与需求分析
    本文介绍了基于移动平台的会展导游系统APP的设计与实现过程。首先,对会展经济和移动互联网的概念进行了简要介绍,并阐述了将会展引入移动互联网的意义。接着,对基础技术进行了介绍,包括百度云开发环境、安卓系统和近场通讯技术。然后,进行了用户需求分析和系统需求分析,并提出了系统界面运行流畅和第三方授权等需求。最后,对系统的概要设计进行了详细阐述,包括系统前端设计和交互与原型设计。本文对基于移动平台的会展导游系统APP的设计与实现提供了技术支持和需求分析。 ... [详细]
  • 微信商户扫码支付 java开发 [从零开发]
    这个教程可以用作了解扫码支付的整体运行过程,已经实现了前端扫码,记录订单,回调等一套完整的微信扫码支付。相关链接:微信支 ... [详细]
  • iOS开发Debug和Release的理解
    2019独角兽企业重金招聘Python工程师标准参考:http:blog.csdn.netmad1989articledetails406580331&# ... [详细]
  • 认识Cutestrap,一个轻量级CSS框架
    CutestrapisabrandnewCSSframework.ThisarticlepresentsCutestrap’sfeaturesandputstheframework ... [详细]
  • 1、前言在macOS下,如果对大量图片进行处理或数据收集,查找了一下,通过使用sips命令,可以进行图片的大部分操作处理,如果使用shell,就可以灵活和自动化的批量操作图片!2、 ... [详细]
  • iOS专项总结关于analyzeClang静态分析器SlenderFauxPasWarningLeaksTimeProfiler加载时间iOSApp启动过程帧率等如何优雅地显示帧率标签?iO ... [详细]
  • Apple Watch应用开发
    参考转载:http:www.swiftkiller.com?p613A.概览一.概览--开始为AppleWatch进行开发-1.第三方应用需要两个不同的可执行文件:在AppleWa ... [详细]
  • Chapter4:菜单FileSettingsAppearanceBehavior
    本教程使用社区版IntelliJIDEA2021.1。1SettingsIDEA配置功能列表如图1.1所示。图1.1Settings功能预览由图1.1可知,配置列 ... [详细]
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社区 版权所有