数据反馈是商家使用芝麻信用产品的关联要求,不属于单独售卖的产品。
商家在使用了芝麻信用评分/行业关注名单后,需要按照指定的数据反馈模板进行数据批量反馈。
商家首先通过zhima.data.feedbackurl.query(获取数据反馈模板)获取到相应的数据反馈模板下载URL,通过该URL即可从公网下载对应的数据反馈模板,每个URL以【.xlsx】结尾,每个appid对应一份数据反馈字段模板。
该服务通过demo集成接入
/** * Alipay.com Inc. * Copyright (c) 2004-2016 All Rights Reserved. */ package com.demo.sdk; import java.util.HashMap; import java.util.Map; import com.alibaba.fastjson.JSON; import com.alibaba.fastjson.JSONObject; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.request.ZhimaDataFeedbackurlQueryRequest; import com.alipay.api.response.ZhimaDataFeedbackurlQueryResponse; /** * 获取数据反馈模板API测试 * * @author * @version $Id: TestZhimaDataFetchFeedbackUrl.java, v 0.1 2016年8月5日 上午10:31:19 wb-huyun.hy Exp $ */ public class TestZhimaDataFetchFeedbackUrl { /** 测试应用的标识 */ public static final String APP_ID = "$APPID"; /** * 商家的私钥. */ public static final String PRIVATE_KEY = "$APP_PRIVATE_KEY"; /** * 蚂蚁的公钥. */ public static final String ALIPAY_PUBLIC_KEY = "$ALIPAY_PUBLIC_KEY"; /** *蚂蚁网关的url. */ public static final String GATEWAY_URL = "$URL"; /** XML 应格式 */ public static final String FORMAT_XML = "$FORMAT"; /** GBK字符集 **/ public static final String CHARSET_GBK = "$CHARSET"; public static void main(String[] args) { AlipayClient alipayClient = new DefaultAlipayClient(GATEWAY_URL, APP_ID, PRIVATE_KEY, FORMAT_XML, CHARSET_GBK, ALIPAY_PUBLIC_KEY); ZhimaDataFeedbackurlQueryRequest request = new ZhimaDataFeedbackurlQueryRequest(); Map<String, String> params = new HashMap<String, String>(); params.put("merchant_id", "____Your_merchant_id"); request.setBizContent(JSON.toJSONString(params)); try { ZhimaDataFeedbackurlQueryResponse response = alipayClient.execute(request); System.out.println(JSONObject.toJSONString(response)); } 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 |
备注 |
其他补充信息 |
|
商家根据获取的数据反馈模板中展现的字段编码,并根据数据反馈模板中每个字段的说明和填写示例,加工成符合反馈标准的数据,并转换成json文件。
数据反馈的对象、字段和格式如下:
数据对象 |
数据对象 |
调用信用服务的用户,及其产生的相应业务行为等数据 |
反馈对象 |
在用户产生申请流水、产生实际订单、流水/订单状态更新(包括不限于变更、结清、付款等状态变化)以及用户进入风险名单等时间点进行数据反馈 |
|
数据字段 |
字段编码 |
使用模板中的字段编码,统一使用小写字母 |
字段取值 |
每个字段编码根据实际情况取值,取值逻辑参考模板中的填写示例,针对没有值的字段编码,保留字段编码,对字段值直接置空处理 |
|
数据格式 |
字段格式 |
字段格式具体见数据反馈模板的字段说明 |
文件格式 |
文件后缀为.txt,文件名不推荐使用中文,文件内容为json格式,最外层是“records”字段 |
如下是一个典型的反馈json信息内容:
{ "records": [ { "user_name":"张三", "user_credentials_type":"0", "user_credentials_no":"33092219890726331X", "order_no":"30032015073000055125", "biz_type":"1", "order_status":"04", "create_amt":"19000.00", "pay_month":"7", "gmt_ovd_date":"2015-05-01 00:00:00", "overdue_days":"3", "overdue_amt":"1800.79", "gmt_pay":"", "memo":"" }, { "user_name":"李四", "user_credentials_type":"0", "user_credentials_no":"330922197907263315", "order_no":"30032015073000055126", "biz_type":"1", "order_status":"04", "create_amt":"29000.00", "pay_month":"12", "gmt_ovd_date":"2015-05-01 00:00:00", "overdue_days":"", "overdue_amt":"", "gmt_pay":"2015-04-30 11:58:33", "memo":"" } ] }
对加工完成的数据反馈json文件,使用zhima.data.batch.feedback(批量数据反馈服务)进行数据推送。
数据批量反馈接口最大支持50M的单文件,对于超过50M的数据文件,需要拆分为多个独立的json文件进行反馈,确保单json文件小于50M。
为了帮助开发者调用开放接口,我们提供了开放平台服务端SDK,SDK下载地址。
Java SDK调用参考:
/** * Alipay.com Inc. * Copyright (c) 2004-2016 All Rights Reserved. */ package com.demo.sdk; import com.alipay.api.AlipayApiException; import com.alipay.api.AlipayClient; import com.alipay.api.DefaultAlipayClient; import com.alipay.api.FileItem; import com.alipay.api.request.ZhimaDataBatchFeedbackRequest; import com.alipay.api.response.ZhimaDataBatchFeedbackResponse; import com.demo.sdk.util.AESEncrpytV2; import com.demo.sdk.util.LoggerUtil; public class ZhimaDataBatchFeedbackRequestTest { //蚂蚁开放平台网关地址 private static final String URL = "$URL"; //商户 App ID private static final String APPID = "$APPID"; //商户私钥 private static final String APP_PRIVATE_KEY = "$APP_PRIVATE_KEY"; //蚂蚁公钥 private static final String ALIPAY_PUBLIC_KEY = "$ALIPAY_PUBLIC_KEY"; //字符编码 private static final String CHARSET = "$CHARSET"; //编码格式 private static final String FORMAT = "$FORMAT"; public static void main(String[] args) throws AlipayApiException, Exception { AlipayClient alipayClient = new DefaultAlipayClient(URL, APPID, APP_PRIVATE_KEY, FORMAT, CHARSET, ALIPAY_PUBLIC_KEY); ZhimaDataBatchFeedbackRequest request = new ZhimaDataBatchFeedbackRequest(); request.setFileType("json_data"); request.setFileCharset(CHARSET); request.setRecords("2"); request.setColumns("userName,address"); request.setPrimaryKeyColumns("order_no,pay_month"); String fileData = "{\"records\":[{\"a\":\"1\"},{\"a\":\"2\"}]}"; //Windows请填写绝对路径,不支持相对路径;Linux支持相对路径 FileItem fileItem = new FileItem("json_data.txt", fileData.getBytes(CHARSET)); request.setFile(fileItem); try { ZhimaDataBatchFeedbackResponse response = alipayClient.execute(request); LoggerUtil.info("===API: " + request.getApiMethodName()); LoggerUtil.info("JSON"); LoggerUtil.info(response.getBody()); } catch (Exception e) { e.printStackTrace(); } } }