先享后付和免密支付服务极大的提升用户支付便利性和支付的效率,但追求极致支付体验的同时,也为提供此服务的商家带来了一定的风险。一些用户使用服务后拒付,会对提供服务的商家带来货物及资金的损失。
先享后付风险防控服务 Non-Sufficient Fund(简称 NSF),是专门为有效识别此风险提供的服务类型。商户在为用户开通此服务时,或产生先享后付场景时,可先发送用户账户信息校验用户的拒付风险,确定无风险后提供服务或货物, 达到有效识别高拒付风险的用户,降低损失的目的。
环境 | HTTPS请求地址 |
---|---|
正式环境 | https://openapi.alipay.com/gateway.do| |
有效的APPID:您需提供一个有效的应用ID(APPID)来调用此服务,您可前往https://openhome.alipay.com/platform/appManage.htm#/apps生成一个专属应用,或使用现有的APPID来申请此服务。
alipay.security.risk.customerrisk.query
user_id(用户身份标识)和 mobile_no(用户手机号码)两者必须选择至少一项准确填写,否则会影响返回结果准确性。如二者之一为空,参数值请填写为空 “null”。
lbs(用户产生交易的地理位置)和 sales_amount(购买货物的金额)为非必填项,如填写这两个字段,将有效提升风险识别的准确性,强烈建议填写,填写示例详见参数示例。
rank0 提供信息不足,提供参数信息有误,或提供的支付宝账号不存在 。
rank1 表示用户拒付风险为低
rank2 表示用户拒付风险为中
rank3 表示用户拒付风险为高
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
service | String | 是 | 128 | 用户匹配服务类型, 请按照示例值填写 | 固定传入nsf |
risk_type | String | 是 | 1024 | 用于代表商户风险类型,请按示例值填写 | 固定传入riskinfo_nsf_common |
pid | String | 是 | 128 | 用于输入使用此服务的商户ID | 2088345256451234 |
user_id | String | 是 | 128 | 用于输入用户支付宝的 2088 账号,如不了解此字段如何获取,可了解下静默授权。如参数无法提供,请填写“null” | 2088501624560335 |
mobile_no | String | 是 | 128 | 用于输入用户注册支付宝的手机号码。如参数无法提供,请填写“null” | 13810935692 |
cert_no | String | 否 | 128 | 用于输入用户身份证号。如参数无法提供,请填写“null” | 13810935692 |
lbs | String | 否 | 128 | 用于输入用户产生交易时的地理位置信息。如参数无法提供,请填写“null” | 120.507796,30.309805 |
sales_amount | String | 否 | 128 | 用户购买或使用服务时产生的具体金额。如参数无法提供,请填写“null” | 97.23 |
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
app_id | String | 是 | 32 | 支付宝分配给开发者的应用ID | 2014072300007148 |
method | String | 是 | 128 | 接口名称 | alipay.security.risk.customerrisk.query |
format | String | 否 | 40 | 仅支持JSON | JSON |
charset | String | 是 | 10 | 请求使用的编码格式,如utf-8,gbk,gb2312等 | utf-8 |
sign_type | String | 是 | 10 | 商户生成签名字符串所使用的签名算法类型,目前支持RSA/RSA2。推荐使用RSA2 | RSA2 |
sign | String | 是 | 256 | 商户请求参数的签名串,详见(https://docs.open.alipay.com/200/105351) | 详见示例 |
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 | 详见应用授权概述(https://docs.open.alipay.com/common/105193) | 无 |
|biz_content|String|是|-|请求参数的集合,最大长度不限,除公共参数外所有请求参数都必须放在这个参数中传递,具体参照各产品快速接入文档||
参数 | 类型 | 是否必填 | 最大长度 | 描述 | 示例值 |
---|---|---|---|---|---|
risk_result | String | 是 | 128 | 风险分析结果,返回针对用户拒付场景下返回的风险值 | {“riskinfo_nsf_common”:“rank0”} |
risk_result_desc | String | 是 | 1024 | 风险结果分析返回值 | rank0 提供信息不足,提供参数信息有误,或提供的支付宝账号不存在 。 |
rank1 表示用户拒付风险为低。
rank2 表示用户拒付风险为中。
rank3 表示用户拒付风险为高。
参数 | 类型 | 是否必须 | 最大长度 | 描述 |
---|---|---|---|---|
code | String | 是 | ~ | 网关返回码,详见文档 : https://docs.open.alipay.com/common/105806|40004 |
msg | String | 是 | ~ | 网关返回码描述,详见文档 : https://docs.open.alipay.com/common/105806|Business Failed |
sub_code | String | 否 | ~ | 网关明细返回码,详见文档 : https://docs.open.alipay.com/common/105806|isv.invalid-signature |
sub_msg | String | 否 | ~ | 网关明细返回码描述,详见文 档 : https://docs.open.alipay.com/common/105806|交易已被支付 |
sign | String | 是 | 64 | 签名,详见文档 :hhttps://docs.open.alipay.com/common/105806 |
请求示例
{ "biz_content": { "lbs": "30.2727707248263", "mobile_no": "18988888888", "pid": "208803187987640", "risk_type": "riskinfo_nsf_common", "sales_amount": "null", "service": "nsf", "user_id": "2088031872450000", "cert_no": "232330199104110000" } }
响应示例
{ "alipay_security_risk_customerrisk_query_response": { "code": "10000", "msg": "Success", "risk_result": "{\"riskinfo_nsf_common\":\"rank0\"}", "risk_result_desc": "{\"rank0\":\"等级0\"}" }, "sign": "MYGSTtwUjh55AT1D9CMLqfM75CCZ5P8udILbpw6qYsfJK+s9qUf90WM1bQvUNKBq3n8Km1q6gud7Q+js1lqCVKrXj4xHIQMjLcvbILz1AzL0a7vMyJrWugmN0DMgLRVRwPsvU7Qxv8SpgHVoa//Ar+jh99FaSyBjXFjQpZihXKqHM485OswiRyNtFllMkNmqaXPBn9epoPUicqg==" }
错误码 | 错误描述 | 解决方案 |
---|---|---|
BIZ_ERROR | 业务异常服务没有被授权,比如虽然已经签约query服务,但是没有被授权查询商户综合风险,出这个异常 | 联系商户服务团队,在服务申请页面中申请此细项服务的授权 |
INVALID_PARAMETER | 参数有误没有按照要求进行参,比如要求mobile_no,但是输入了mobile | 请查看接口文档,查看参数是否正确配置 |
SYSTEM_ERROR | 系统繁忙 | 内部系统分析超时,请给出时间,以及入参,联系BD,进行内部分析 |
MISSING_REQUIRED_ARGUMENTS | 参数有误缺少必选参数 | 请查看接口文档,查看参数是否配置正确。 |