文档中心 > RiskGo安全合作平台文档

风险商户数据同步接口-直连商户

更新时间:2019/04/19 访问次数:21318

更新记录:

       2018-08-01:process_code枚举值增加09-未进行处理

       2017-09-30:process_code枚举值增加02-关停账户


 

风险商户数据同步:

       接口调用方式:商户调用支付宝API

       API名称:alipay.security.risk.customerrisk.send

       API应用场景说明:商户收到支付宝发送的商户风险交易推送后,调用该接口回传风险商户详细信息

【温馨提示】
商户数据同步接口与商户风险交易推送接口为同一产品的两个不同接口,使用了风险交易推送服务的直连商户,必须后续回传推送交易的相关信息,以便支付宝与商户共同进行风险联防和风控能力优化。如没有按照同步接口文档中字段要求回传相关信息或回传信息后经稽核错误,支付宝将停止风险推送服务。


 

一、详细回传字段

请求地址:

环境 HTTPS请求地址
正式环境 https://openapi.alipay.com/gateway.do

公共请求参数:

参数 类型 是否必填 最大长度 描述 示例值
app_id String 32 支付宝分配给开发者的应用ID 2014072300007148
method String 128 接口名称 alipay.security.risk.customerrisk.send
format String 40 仅支持JSON JSON
charset String 10 请求使用的编码格式,如utf-8,gbk,gb2312等 utf-8
sign_type String 10 商户生成签名字符串所使用的签名算法类型,目前支持RSA/RSA2。推荐使用RSA2 RSA2
sign String 1024 商户请求参数的签名串,详见签名 详见示例
timestamp String 19 发送请求的时间,格式"yyyy-MM-dd HH:mm:ss" 2014-07-24 03:07:50
version String 3 调用的接口版本,固定为:1.0 1.0
notify_url String 256 支付宝服务器主动通知商户服务器里指定的页面http/https路径。 http://api.test.alipay.net/atinterface/receive_notify.htm
app_auth_token String 40 详见应用授权概述  
biz_content String - 请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档

 

业务请求参数:

参数 中文名称 类型 是否必回传项 最大长度 描述 示例值
plat_account 平台账号 string 1024 指第三方在商户平台注册成功后,平台给予的账户号
trade_no 交易号 string 1024 支付宝推送的风险消息中的交易号 2017113021001004640000000000
pid 合作者身份ID string 256 填写与trade_no对应的pid。2088开头的16位数字 2088123456789012
bank_card_no 银行卡号 string 256 该账号对应的银行卡号 421234234234234000
cert_no 身份证号 string 256 该账号对应的身份证号 150239198500000000
business_license_no 营业执照号 string 1024 该账号对应的营业执照号 34xggdf345
mobile 手机号 string 18 该账号对应的手机号 18667000000
mobile_ip 手机号IP string 1024 该账号对应的手机号的IP 10.253.231.22
order_ip 下单IP string 1024 该账户在商户平台下单时的MAC地址或IP地址 00000000-01010000-10111010
logistics_no 物流单号 string 1024 此订单对应的物流单号;如果一笔订单下有多笔物流单,且处理结果不一致时,请分开回传; 61109387468324
merch_name 商品名称 string 1024 该笔风险交易购买的具体商品名称; xx商品
email_address 邮箱地址 string 1024 该账户注册时填写的邮箱地址  
process_code 处理结果 string 2

商户对该账户采取的措施。

多种处理结果可调用多次,每次回传一种处理结果。(01:暂停发货;02:延迟结算;03:关停账户;04:暂停发货+关停账户;05:延迟结算+关停账户;06:其他;07:平台进行退款退订;08:平台跟用户沟通后,用户撤诉;09:未进行处理。)

01

响应参数:

参数 类型 是否必填 最大长度 描述 示例值
code String - 网关返回码 40004
msg String - 网关返回码描述 Business Failed
sub_code String - 业务返回码 ACQ.TRADE_HAS_SUCCESS
sub_msg String - 业务返回码描述 交易已被支付
sign String - 签名,详见文档  

错误码: 

错误码 返回样例 原因
MISSING_REQUIRED_ARGUMENTS {success=false, result=null, errorCode='MISSING_REQUIRED_ARGUMENTS', errorMessage='缺少必选参数'} smid或process_code为空
INVALID_PARAMETER {success=false, result=null, errorCode='INVALID_PARAMETER', errorMessage='参数不合法'} process_code不是两位数字
正确返回样例 {success=true, result={"success":"true"}, errorCode='null', errorMessage='null'}

 


 

二、调用代码示例

SDK调用样例&返回数据样例

调用样例:

public static AlipaySecurityRiskCustomerriskSendResponse testRiskSend() throws AlipayApiException{
    AlipaySecurityRiskCustomerriskSendRequest request = new AlipaySecurityRiskCustomerriskSendRequest();
    	//此处字段值是示例,实际调试时,按实际情况填写
    	String bizContent ="{\"plat_account\":\"659004198009128344\","
    				+ "\"process_code\":\"01\","
    				+ "\"bank_card_no\":\"421234234234234000\","
    				+ "\"cert_no\":\"150239198500000000\","
    				+ "\"merch_name\":\"xx商品\","
    				+ "\"trade_no\":\"2017113021001004640000000000\","
    				+ "\"business_license_no\":\"34xggdf345\","
    				+ "\"mobile\":\"18667000000\"}";
    	request.setBizContent(bizContent);
    		//秘钥、签名方式等,按实际情况填写即可,此处仅示例
        AlipayClient alipayClient = new DefaultAlipayClient(serverUrl,APP_ID,APP_PRIVATE_KEY,"json",charset,ALIPAY_PUBLIC_KEY,"RSA2");
    	AlipaySecurityRiskCustomerriskSendResponse response = alipayClient.execute(request);    		
	return response;
//联调时可以在这里加个输出看response内容返回:System.out.print(response.getBody());
    }
如不使用sdk,在拼接请求连接时可参考以下样例:
https://openapi.alipay.com/gateway.do?biz_content={"bank_card_no":"421234234234234000","business_license_no":"34xggdf345","cert_no":"659004198009128344","merch_name":"xx商品","mobile":"1359892324","plat_account":"659004198009128344","process_code":"01","trade_no":"2017113021001004640000000000"}&sign=W2Knayi2bKoV1eaLJ3N8meJmrDm8BH77G4749AbJxJIXaMJHN1ztEC7qHLEvXO6BNruSUm3aYyG6bCYZOlAAtsomqmBvLRtiivfvWQ2JKxNQ4iZTdM7EptfNrvt1+DqgKRHz7XMCkhuQtOsnW1n1VbR/yueRoN5rmzBCpAIVL7M=&timestamp=2017-12-07 14:23:11&sign_type=RSA&charset=UTF-8&app_id=2015101400446982&method=alipay.security.risk.customerrisk.send&version=1.0


返回数据样例:
{"body":"{\"alipay_security_risk_customerrisk_send_response\":{\"code\":\"10000\",\"msg\":\"Success\"},\"sign\":\"PK9mGX8uy3xfwRKygPxPCuf62YQU5JrdY4yDSn5dRhRcjtcTlzm8Gzv1yhnNXOhyITDzY6O8+rwPpSUqrQXT3VvS6dkMvEnoXsT5uKefRKX9PuvwbttN5Vc7Me57aPX9dReiBji4HgBVMI22gcugZ8mBTuNIecYNAAxiVcZjUFQ=\"}","code":"10000","errorCode":"10000","msg":"Success","params":{"biz_content":"{\"cert_no\":\"659004198009128344\",\"mobile\":\"1359892324\",\"smid\":\"123ssd\",\"external_id\":\"105290059990194\",\"process_code\":\"99\",\"business_license_no\":\"34xggdf345\" }"},"success":true}


 

三,沙箱联调流程引导

 (目前仅风险商户数据同步接口支持沙箱调试,风险推送接口仅支持线上测试,不支持测试环境和沙箱调试)

第一步:配置沙箱应用环境 


点击“开放平台-开发者中心-沙箱环境”。进入沙箱环境页面,系统已经自动为你创建一个应用,在基础信息中可以看到应用信息。

 

  1. 生成密钥,参照生成RSA密钥的文档,建议选择RSA2(SHA256)的密钥,公钥上传到沙箱应用的应用公钥,私钥和支付宝公钥配置到代码里用来进行签名验签的操作.(由sdk自动完成)
  2. 代码里的请求网关换为https://openapi.alipaydev.com/gateway.do, app_id换为沙箱应用的

第二步:根据接口文档来调用接口

接口文档地址: 风险商户数据同步接口

  1. 沙箱环境中参数应该使用沙箱环境特有的数据,下面示例代码中的URL,APP_ID,以及

RSA_PRIVATE ,ALIPAY_PUBLIC_KEY应该相应的替换为沙箱环境的请求网关,app_id,私钥和支付宝公钥.

  1. 其他业务参数因为是在沙箱环境,传入符合参数格式的虚拟参数即可.

示例代码如下,仅供参考

//初始化AlipayClient,沙箱环境需要替换URL/APP_ID/RSA_PRIVATE为沙箱的数据
AlipayClient alipayClient = new DefaultAlipayClient(URL,APP_ID,RSA_PRIVATE,"json","utf-8",ALIPAY_PUBLIC_KEY);
AlipaySecurityRiskCustomerriskSendRequest request = new AlipaySecurityRiskCustomerriskSendRequest();
        //此处字段值是示例,实际调试时,按实际情况填写
        //plat_account和trade_no为必传参数
          String bizContent ="{\"cert_no\":\"659004198009128344\","         
              + "\"plat_account\":\"88845643121\","
              + "\"trade_no\":\"2017112221001004200200299495\","
                  + "\"process_code\":\"01\","
                  + "\"bank_card_no\":\"421234234234234000\","
                  + "\"cert_no\":\"150239198500000000\","
                  + "\"merch_name\":\"xx商品\","
                   + "\"business_license_no\":\"34xggdf345\","
                  + "\"mobile\":\"18667000000\"}";
          request.setBizContent(bizContent);
          try {
AlipaySecurityRiskCustomerriskSendResponse response = alipayClient.execute(request);
        //响应结果包含在response对象中,可以解析response对象获取结果.
        System.out.println(response.getBody());
          } catch (AlipayApiException e) {
        e.printStackTrace();
      }  

第三步:线上验证

必须将支付宝网关、appid、应用私钥、支付宝公钥修改成正式环境的配置,其他业务参数也必须是正式环境的实际数据.

FAQ

关于此文档暂时还没有FAQ
返回
顶部