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];
}
}
以上就是接入过程中总结的全部内容。