最近使用了支付宝的芝麻信用分接口,跟大家分享一下,希望大家喜欢的点一个喜欢
1.导入 SDK的Framework文件
1. 向工程中导入SDK Framework文件
Build Phases -> Link Binary With Libraries 里导入库
ZMCreditSDK.framework
ZMDependUponSDK.framework
注意:如果商户引入支付宝钱包SDK,则不需要再引入ZMDependUponSDK.framework, 因为这样可以解决相同类库冲突的问题
2. 将资源bundle导入工程
H5Service.bundle
Poseidon.bundle
3. 导入其他依赖库
SDK中依赖了其他基础库来保证正常运行,请添加如下依赖库:
MobileCoreServices.framewrok,CFNetwork.framework,MessageUI.framework,EventKit.framework,AssetsLibrary.framework,CoreMotion.framework,Libz.dylib (Xcode 7 之后是libz.tbd),SystemConfiguration.framework,CoreTelephony.framework
2.创建实例并实现回调
2.1 创建实例
ALCreditService是IOS SDK的功能入口,所有的接口调用都需要通过ALCreditService进行调用。
注意:界面跳转是基于navigationController的push功能,并且使用的是系统的nav bar,如果商户端有对nav bar作自定义,请在调用SDK之前,进行nav bar的调整。
a.注册应用:
请在AppDelegate里面来注册应用:
[[ALCCreditService sharedService] resgisterApp];
b. 调用接口进行授权逻辑:
使用queryUserAuthReq方法进行授权验证。
-(void) queryUserAuthReq: (NSString*)appId
sign: (NSString*)sign
params: (NSString*)params
extParams: (NSString *)extParams
selector: (SEL)selector target: (id)targetVC;
注意: 由于sdk里面有用到c编译,请把调用queryUserAuthReq的controller后缀名改成.mm
2.2 实现回调
回调方法请传入selector进行注册,结果会在参数中,作为一个NSMutableDictionary 传递给商户解析。
后续新版本会切换block回调,使用方式是一样的。
返回值:
3.授权接口参数说明
3.1 授权接口说明
调用芝麻信用IOS SDK用户授权接口,展示芝麻核身页面便于用户进行核身,验证成功以后,会把openId回传给商户。
4.对于Params参数的详细介绍
4.1 业务参数
特别备注:
1. identity_param中的参数存放业务属性例如证件号,姓名等
2. biz_params参数。auth_code:授权模式
针对sdk授权 auth_code:M_ APPSDK
3. 拼装结果示例:
params = identityType=2&identityParam = {“certNo”:****,”name”:”***”,certType:”IDENTITY_CARD”}&biz_params={"auth_code":"M_APPSDK"}
注意: 请分别对identityType,identityParam,certType的参数值进行urlEncode,然后再拼装成完整的params参数。
3. 拼装完成之后,需要对params后面的值进行RSA加密,并且生成sign加签信息,供接口使用。由于需要使用密钥,加密加签功能移动端sdk暂不支持。请在服务端做好加密加签功能。
注意: 具体操作方式,请服务端开发同学参照文档『芝麻信用移动SDK授权(服务端)接口说明』,该文档里面提供了样例代码,可以直接生成params和sign参数,请对照使用。
4. 解析完的error_code也定义在『芝麻信用移动SDK授权(服务端)接口说明』文档里面。
5.IOS常见问题以及对应修改
配置工程:
iOS9为了增强数据访问安全,将所有的http请求都改为了https,为了能够在iOS9中正常使用,请在"Info.plist"中进行如下配置,否则影响SDK的使用。
NSAppTransportSecurity
NSAllowsArbitraryLoads