数据反馈是商户使用芝麻信用产品的关联要求,不属于单独售卖的产品。
商户在使用了芝麻信用评分/行业关注名单后,需要按照指定的数据反馈模板进行数据反馈。
1. 商户首先通过数据传入初始化服务(zhima.merchant.data.upload.initialize)获取到相应的数据反馈模板,模板仅需获取一次即可;
2. 商户基于已获取的反馈模板进行数据加工处理;
根据反馈的情况,选择数据推送接口:
3. 商户使用已选择的数据推送接口,将基于反馈模板加工处理的数据反馈给芝麻信用。
由于系统需要预先建立数据传入通道,故在数据传入之前,需要进行初始化,请调用数据传入初始化接口(zhima.merchant.data.upload.initialize)完成通道初始化,初始化内容包括:创建数据通道和查询返回数据反馈模板下载URL。通过该URL即可从公网下载对应的数据反馈模板,每个URL以【.xlsx】结尾,每个appid对应一份数据反馈字段模板。
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,SDK下载地址。
Java SDK调用参考:
/** 应用的APP_ID,示例:2016091301899767 */ public static final String APP_ID = ""; /** 商家的私钥. */ public static final String PRIVATE_KEY = ""; /** 蚂蚁的公钥. */ public static final String ALIPAY_PUBLIC_KEY = ""; /** 蚂蚁网关的url. 线上:https://openapi.alipay.com/gateway.do 沙箱环境:https://openapi.alipaydev.com/gateway.do*/ public static final String GATEWAY_URL = ""; /** JSON 格式 */ public static final String FORMAT_JSON = "json"; /** UTF-8字符集 **/ public static final String CHARSET_UTF8 = "UTF-8"; /** * @param args */ public static void main(String[] args) { // [1] 构建支付宝客户端 AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, PRIVATE_KEY, FORMAT_JSON, CHARSET_UTF8, ALIPAY_PUBLIC_KEY, "RSA2"); // [2] 构建数据传入初始化请求 ZhimaMerchantDataUploadInitializeRequest request = new ZhimaMerchantDataUploadInitializeRequest(); request.setBizContent("{" + " \"scene_code\":\"8\"" + " }"); // [3] 数据传入初始化 try { ZhimaMerchantDataUploadInitializeResponse response = alipayClient.execute(request); if (response.isSuccess()) { System.out.println("调用成功!"); } else { System.out.println("调用失败!"); } } catch (AlipayApiException e) { e.printStackTrace(); } } }
模板示例如下(此示例仅做展示用,实际请以下载的模板为准):
类型 | 字段编码 | 字段名称 | 字段说明 | 填写示例 |
---|---|---|---|---|
联结信息 |
user_name |
姓名 |
|
张三 |
user_credentials_type |
证件类型 |
0-身份证; |
0 |
|
user_credentials_no |
证件号码 |
证件号码为身份证号码时,最后一位若为字母(罗马数字10),则为大写X |
33092219890726331X |
|
风险信息 |
order_no |
业务号 |
标记某笔真实发生的业务的唯一标识号,原则上要求用户可见 |
2016062800001 |
is_bad |
是否风险名单 |
1=是,0=否 |
1 |
|
bad_type |
风险名单类型 |
标记具体的风险名单的类型 |
套现 |
|
gmt_effect |
生效时间 |
把客户放入风险名单的时间。格式:yyyy-mm-dd |
2015-11-11 |
|
gmt_expired |
失效时间 |
yyyy-mm-dd当客户风险解除时,反馈商户风险名单失效日期,未解除时,默认为2999-12-31 |
2016-11-12 |
|
补充信息 |
memo |
备注 |
其他补充信息 |
|
商家根据获取的数据反馈模板中展现的字段编码,并根据数据反馈模板中每个字段的说明和填写示例,加工成符合反馈标准的数据。
数据反馈的对象、字段和格式如下:
数据对象 |
数据对象 |
调用信用服务的用户,及其产生的相应业务行为等数据 |
反馈对象 |
在用户产生申请流水、产生实际订单、流水/订单状态更新(包括不限于变更、结清、付款等状态变化)以及用户进入风险名单等时间点进行数据反馈 |
|
数据字段 |
字段编码 |
使用模板中的字段编码,统一使用小写字母 |
字段取值 |
每个字段编码根据实际情况取值,取值逻辑参考模板中的填写示例,针对没有值的字段编码,保留字段编码,对字段值直接置空处理 |
|
数据格式 |
字段格式 |
字段格式具体见数据反馈模板的字段说明 |
内容格式 |
|
根据反馈的情况,选择数据推送接口。
为了帮助开发者调用开放接口,针对单条数据传入接口(zhima.merchant.single.data.upload)和批量数据传入接口(zhima.merchant.closeloop.data.upload)均提供开发平台服务端SDK,SDK下载地址。
Java SDK调用参考:
1. 单条数据传入JAVA代码示例
/** 应用的APP_ID,示例:2016111600063951 */ public static final String APP_ID = ""; /** 商家的私钥. */ public static final String PRIVATE_KEY = ""; /** 蚂蚁的公钥. */ public static final String ALIPAY_PUBLIC_KEY = ""; /** 蚂蚁网关的url. 线上:https://openapi.alipay.com/gateway.do 沙箱环境:https://openapi.alipaydev.com/gateway.do*/ public static final String GETWAY_URL = ""; /** JSON 应格式 */ public static final String FORMAT_JSON = "json"; /** UTF-8字符集 **/ public static final String CHARSET_UTF8 = "UTF-8"; /** * @param args */ public static void main(String[] args) { // [1] 构建客户端 AlipayClient alipayClient = new DefaultAlipayClient(GETWAY_URL, APP_ID, PRIVATE_KEY, FORMAT_JSON, CHARSET_UTF8, ALIPAY_PUBLIC_KEY, "RSA2"); // [2] 构建数据传入请求 ZhimaMerchantSingleDataUploadRequest request = new ZhimaMerchantSingleDataUploadRequest(); request.setBizContent("{" + " \"biz_ext_params\":\"{'extparam1':'value1'}\"," + " \"data\":\"{'user_credentials_no':'522422198905183615','memo':'测试数据','scene_status':'1','scene_desc':'测试场景','user_credentials_type':'0','installment_due_date':'2017-03-12','rectify_flag':'0','order_no':'20170321112011369','biz_date':'2017-03-21','user_name':'张三','overdue_amt':'214.50','scene_type':'1','gmt_ovd_date':'2017-03-15'}\"," + " \"primary_keys\":\"order_no,pay_month\"," + " \"scene_code\":\"8\"" + " }"); // [3] 数据传入 try { ZhimaMerchantSingleDataUploadResponse response = alipayClient.execute(request); if (response.isSuccess()) { System.out.println("调用成功!"); } else { System.out.println("调用失败!"); } } catch (AlipayApiException e) { e.printStackTrace(); } } }
2. 批量数据传入JAVA代码示例
/** 应用的APP_ID,示例:2016111600063951 */ public static final String APP_ID = ""; /** 商家的私钥. */ public static final String PRIVATE_KEY = ""; /** 蚂蚁的公钥. */ public static final String ALIPAY_PUBLIC_KEY = ""; /** 蚂蚁网关的url. 线上:https://openapi.alipay.com/gateway.do 沙箱环境:https://openapi.alipaydev.com/gateway.do*/ public static final String GATEWAY_URL = "https://openapi.alipaydev.com/gateway.do"; /** JSON 应格式 */ public static final String FORMAT_JSON = "json"; /** UTF-8字符集 **/ public static final String CHARSET_UTF8 = "UTF-8"; /** * @param args */ public static void main(String[] args) { // [1] 构建客户端 AlipayClient alipayClient = new DefaultAlipayClient(GETWAY_URL, APP_ID, PRIVATE_KEY, FORMAT_JSON, CHARSET_UTF8, ALIPAY_PUBLIC_KEY, "RSA2"); // [2] 初始化批量数据传入请求 ZhimaMerchantCloseloopDataUploadRequest request = new ZhimaMerchantCloseloopDataUploadRequest(); request.setFileCharset("UTF-8");//文件编码 request.setRecords("10");//记录数 request.setPrimaryKeyColumns("order_no,pay_month");//数据主键 request.setBizExtParams("{'extparam1':'value1'}");//公用回传参数(可选) FileItem file = null; try { file = new FileItem("test.txt", "{\"records\":[{\"user_credentials_no\":\"65353546334\",\"memo\":\"测试数据\",\"scene_status\":\"1\",\"scene_desc\":\"测试场景\",\"user_credentials_type\":\"0\",\"installment_due_date\":\"2017-03-12\",\"rectify_flag\":\"0\",\"order_no\":\"20170321112011369\",\"biz_date\":\"2017-03-21\",\"user_name\":\"张三\",\"overdue_amt\":\"214.50\",\"scene_type\":\"1\",\"gmt_ovd_date\":\"2017-03-15\"}]}" .getBytes("UTF-8"));//文件,FileItem有多个构造函数,其中包括了直接将本地文件作为入参的构造函数,请看源码, } catch (UnsupportedEncodingException e1) { } request.setFile(file);//设置数据文件 request.setSceneCode("8");//设置场景码 request.setColumns("user_name,user_credentials_type,user_credentials_no,order_no,biz_type,order_status,create_amt,pay_month,gmt_ovd_date,overdue_cnt");//设置数据列 // [3] 批量数据传入 ZhimaMerchantCloseloopDataUploadResponse response = null; try { response = (ZhimaMerchantCloseloopDataUploadResponse) alipayClient.execute(request); } catch (AlipayApiException e) { } if (response.isSuccess()) { System.out.println("调用成功"); } else { System.out.println("调用失败"); } } }