APP 芝麻信用评分接入实践详解

芝麻信用评分服务的接入大概需要几个流程:

1.入驻商户;

2.芝麻信用评分产品的申请;

3.新建应用;

4.服务端接入;

5.客户端接入;

我们来一个一个看下;

1.入驻商户;

这个需要通过芝麻信用商户平台注册商户,完成商户入驻;

没什么太特别的,公司信息该填什么填什么,1-2天即可审核通过;

2.芝麻信用评分产品的申请;

具体的芝麻信用服务有很多,依照具体需求进行选择申请即可;

申请的过程中需要注意一下几点:

1)芝麻信用评分的查询操作是计费的,每次0.4元(不知道以后会不会变);

2)在选择完业务场景说明之后,还要填写业务承载渠道;

我们选择的是App的方式,这里需要注意下:

(1)芝麻信用推荐用户App上线之后,再接入芝麻信用评分的签约;

(2)未上线的应用,需要提交AppDemo说明:

a.发送邮件至zmxyservice@zmxy.com.cn?附件内容:Demo+文字介绍及芝麻信用的功能说明+主要截图3-5;

邮件title :公司名+Appdemo;

b.在业务承载渠道App名称一栏app名称后备注信息:App名(邮件已发送);

这一步的审核时间很短,1天就能过;

可以在商户中心-应用管理-已签约产品查看;

3.新建应用;

商户中心-应用管理-我的应用,新建应用即可;

这里需要生成一套秘钥,以及设置服务端回调地址;正常配置即可,拿到相应参数;

4.服务端接入;

这里需要服务端开发人员的支持了,几个比较重要的过程有:

1)通过用户信息进行授权请求,得到动态生成的授权协议链接;

2)同意授权之后,芝麻信用会跳转到回调地址,附带参数open_id,保存该参数与用户关系;

3)使用open_id参数,调用芝麻分查询请求,获得芝麻分字段zm_score(350-950,没有返回字符串N/A);

这个过程可以这样理解:

调用芝麻信用评分需要授权,授权需要服务端生成授权URL, 移动端用webview访问授权URL进行验证码授权,结果回调到服务端页面,解密验签拿到授权码openid, 服务端调用芝麻信用评分接口拿到芝麻分

最后我们来看看客户端需要做些什么;

5.客户端接入;

具体流程说明:

1)对应一个接入服务的入口界面;

2)点击触发按钮调用获取授权状态的接口;

注:该接口服务端提供,返回授权状态;

3)有授权状态则跳转界面,显示评分对应结果;

4)无授权状态,则跳转进入身份证和姓名输入界面;

5)调用接口验证身份证和姓名对应的支付宝账户,得到url跳转界面进行webview显示;

注:该接口服务端提供,返回授权url链接;

跳转webview显示该url对应界面,该界面可进行授权操作,短信验证码获取等操作;成功及失败状态均有内部跳转链接,截获处理即可;

相关流程如下图示意:

6)若验证成功,会进行授权过程短信验证等,再成功,则对应授权成功的情况,url重定向为ezj://zhimaauthfinish(服务端自定义);

已授权成功则调用获取评分信息接口(与获取授权状态接口同),跳转显示评分对应结果界面;

7)若验证失败,则对应授权失败和授权异常的情况,url重定向为ezj://zhimaauthfailed(服务端自定义),返回上一页重新输入姓名和身份证号;

注:

关于url重定向,只有授权成功才返回ezj://zhimaauthfinish,授权失败和授权异常都返回ezj://zhimaauthfailed;

实际的界面跳转ios采用了不同的界面切换方式,可参考具体实现;

这里url加载使用的是WKWebView,处理需要在代理方法中进行如下判断

// 接收到服务器跳转请求之后调用

- (void)webView:(WKWebView *)webView didReceiveServerRedirectForProvisionalNavigation:(WKNavigation *)navigation{

if ([webView.URL.absoluteString isEqual:@"ezj://zhimaauthfinish"]) {

[self asyncConnectGetZhimaInfo];

}else if ([webView.URL.absoluteString isEqual:@"ezj://zhimaauthfailed"]){

[self leftBarBtnAction:nil];

}

}

以上就是接入过程中总结的全部内容。