业务说明
本接口请求方为翼码系统,接收方为商家系统。
当有新的投诉事件发生、投诉状态发生变化时,商户会收到通知回调。
报文格式:JSON
请求方式:POST
Content-Type: application/json;charset=utf-8
签名sign计算规则详见:JSON格式签名计算。
注意:标准接口通知报文节点后续会根据需求而做新增,切勿以固定格式解析报文和验签,避免增加节点造成代码报错。
注意:商户接收到通知处理成功后需响应字符串“success”,其他响应翼码系统认为通知失败会继续通知。
注意:同样的通知可能会多次发送给商户系统,商户系统必须能够正确处理重复的通知。
注意:可空节点数据为空时,既可能返回null也可能返回空字符串,请解析时注意兼容。
请求报文
{
"notify_type": "4",
"isspid": "00026713",
"seller_account": "66660000000000001",
"notify_id": "notify202406170000000001",
"risk_type": "COMPLAINTV2",
"create_time": "20240607151515",
"event_type": "COMPLAINT.CREATE",
"resource": "{\"out_trade_no\":\"241213123010143223\",\"complaint_time\":\"2024-12-13T11:37:19+08:00\",\"amount\":\"1\",\"payer_phone\":\"18659101805\",\"complaint_detail\":\"需要退款没找到入口,请商家联系我\",\"complaint_state\":\"PAYER_COMPLAINTED\",\"transaction_id\":\"4200059297202412138968485906\",\"sub_mchid\":\"608051663\",\"complaint_handle_state\":\"WAIT_MERCHANT_RESPONSE\",\"action_type\":\"CREATE_COMPLAINT\",\"complaint_id\":\"200000020241213110233971398\"}",
"sign": "7A6B20F1AC3F18FBFC56F4A36CE3207F"
}
请求报文说明
标准接口会因业务升级需要而新增节点,请在解析请求报文时避免新增未知节点产生的程序出错!
节点名称 | 中文名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
sign | 签名 | String(32) | 计算签名方式请看2.1章节 | 必填 |
notify_type | 通知类型 | String(1) | 4:微信投诉/风控案例通知 | 必填 |
isspid | 翼码商户号 | String(8) | 必填 | |
seller_account | 收款账户编号 | String(64) | 必填 | |
notify_id | 通知唯一id | String(64) | 必填 | |
risk_type | 风控结果类型 | String(32) | VIOLATION:违规 COMPLAINT:投诉1.0结果 COMPLAINTV2:投诉2.0结果 | 必填 |
create_time | 通知创建时间 | String(14) | 格式:yyyyMMddHHmmss | 必填 |
event_type | 事件类型 | String(32) | 违规类型: VIOLATION.PUNISH:处罚 VIOLATION.INTERCEPT:拦截 VIOLATION.APPEAL:申诉 投诉类型: COMPLAINT.CREATE:产生新投诉 COMPLAINT.STATE_CHANGE:投诉状态变化 | 必填 |
resource | 资源数据 | JSONString | 报文格式与risk_type关联 | 必填 |
标准接口会因业务升级需要而新增节点,请在解析请求报文时避免新增未知节点产生的程序出错!
resource 资源数据 (JSONString)
当 risk_type = VIOLATION 时
节点名称 | 中文名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
sub_mchid | 渠道子商户号 | String(32) | 该商户平台处置记录对应的商户号 | 必填 |
company_name | 子商户公司名称 | String(64) | 必填 | |
record_id | 唯一标识 | String(128) | 微信支付对违约商户处理通知的唯一标识,可用于去重 | 必填 |
punish_plan | 具体处罚方案 | String(2048) | 微信支付对违约商户的具体处罚方案,可根据具体的处罚方案指引商户登录商户平台/商家助手小程序进行申诉/相关操作, 使用时请留意该值为处罚方法的文本内容,并非枚举值。 | 可空 |
punish_time | 处置时间 | String(64) | 微信支付对违约商户的处置时间,遵循rfc3339标准格式。 格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日, T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒, TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。 例如:2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒 | 必填 |
punish_description | 描述信息 | String(128) | 微信支付对违约商户处罚方案的详细描述信息,补充处罚方案的相关影响。 | 可空 |
risk_type | 风险类型 | String(2048) | 微信支付对违约商户定义的风险类型,枚举值: ONE_YUAN_PURCHASES:涉嫌一元购 MULTI_LEVEL_DISTRIBUTION_REBATE:涉嫌多级分销返利 PROHIBITED_BUSINESS_CATEGORIES:涉嫌我司未开放类目 CASH_ADVANCE_VIA_CREDIT_CARD:涉嫌信用卡套现 INDUCING_USERS_TO_MAKE_PAYMENTS:涉嫌诱导支付 FRAUD:涉嫌欺诈 MALICIOUS_FAN_COUNT_BOOSTING:涉嫌恶意吸粉 CROSS_CATEGORY_ACTIVITIES:涉嫌跨类目 CROSS_CATEGORY_BUSINESS:涉嫌跨类目经营 GAMBLING:涉嫌赌博 LEWD_CONTENT:涉嫌色情 UNLICENSED_PAYMENT_AND_SETTLEMENT_BUSINESS:涉嫌无证经营支付结算业务 INVESTMENT:涉嫌投资理财 TRANSACTION_DISPUTE:涉嫌交易纠纷 CROSS_BORDER_USE_OF_DOMESTIC_PAYMENT_API:涉嫌境内支付接口跨境使用 OVERSEAS_ACTIVITIES_OUTSIDE_THE_BUSINESS_SCOPE_APPROVED_BY_REGULATORY_AUTHORITIES:涉嫌境外超监管批复范围经营 UNUSUAL_TRANSACTION:涉嫌交易异常 UNLICENSED_BUSINESS:涉嫌无资质经营 WEALTH_INVESTMENT:涉嫌投资理财 AFFILIATED_TO_A_VIOLATING_ENTITY:涉嫌关联违规主体等异常风险 INVOLVED_IN_A_JUDICIAL_CASE:涉嫌司法案件 INCORRECT_INFORMATION_SUBMITTED:涉嫌资料异常 APPEAL_SUCCESSFUL:申诉成功 REPORTED_BY_OTHERS:涉嫌他人投诉举报 VIOLATING_SMART_CATERING_ACTIVITIES:涉嫌智慧餐饮活动违规 MORE_THAN_ONE_MERCHANT_UNDER_A_SINGLE_MERCHANT_ID:涉嫌同一商户号下挂多个商户 CROSS_REGION_USE_OF_INTERNATIONAL_PAYMENT_API:涉嫌境外支付接口跨区域 UNUSUAL_REAL_TIME_TRANSACTION:涉嫌实时交易异常 UNACCEPTABLE_DOCUMENTS:涉嫌资料不合格 LARGE_AMOUNT_TRANSACTION:涉嫌大额交易 ALL_MERCHANTS_HAVE_CONFIRMED_THE_WILLINGNESS_TO_OPEN_AN_ACCOUNT:无交易商户未确认开户意愿 UNCONFIRMED_WILLINGNESS_TO_OPEN_AN_ACCOUNT:未确认开户意愿 INACTIVE_TRANSACTION:交易停滞 OTHER_UNUSUAL_ACTIVITIES:涉嫌其它异常 | 必填 |
risk_description | 中文描述 | String(2048) | 微信支付对违约商户定义的风险类型枚举值对应的中文描述 | 可空 |
当 risk_type = COMPLAINT 时
节点名称 | 中文名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
sub_mchid | 渠道子商户号 | String(32) | 该商户平台处置记录对应的商户号 | 必填 |
out_trade_no | 收银宝交易单号 | String(64) | 必填 | |
complaint_time | 投诉时间 | String(64) | 微信支付对违约商户的处置时间,遵循rfc3339标准格式。 格式为yyyy-MM-DDTHH:mm:ss+TIMEZONE,yyyy-MM-DD表示年月日, T出现在字符串中,表示time元素的开头,HH:mm:ss表示时分秒, TIMEZONE表示时区(+08:00表示东八区时间,领先UTC 8小时,即北京时间)。 例如:2015-05-20T13:29:35+08:00表示北京时间2015年05月20日13点29分35秒 | 必填 |
amount | 交易金额 | String(9) | 单位:分 | 必填 |
payer_phone | 投诉人联系方式 | String(64) | 可空 | |
complaint_detail | 投诉详情 | String(2048) | 必填 | |
complaint_state | 投诉单状态 | String | 标识当前投诉单所处的处理阶段,具体状态如下所示: PAYER_COMPLAINTED:用户已投诉 FROZENED:交易已冻结 FROZEN_FINISHED:冻结已结束 PAYER_CANCELED:用户已撤诉 MERCHANT_REFUNDED:商户已退款 SYSTEM_REFUNDED:系统(微信支付)已退款 MANUAL_UNFROZEN:人工(微信支付运营人员)手动解冻 | 必填 |
transaction_id | 渠道交易ID | String(64) | 微信交易ID | 必填 |
complaint_handle_state | 投诉单处理状态 | String(64) | 投诉单处理进展状态,标识当前投诉单所处的处理阶段,描述用户与商户的沟通反馈进度,将逐步取代投诉状态。具体状态如下所示: WAIT_MERCHANT_RESPONSE:待商户处理 MERCHANT_RESPONSED:商户已反馈 USER_CONFIRMED:用户已确认 TIME_OUT_CLOSED:投诉超时关闭 MERCHANT_FULL_REFUNDED:商户全额退款 PAYER_CANCELED:用户已撤诉 UNSPECIFIC:状态未知 | 必填 |
action_type | 动作类型 | String(64) | 触发本次投诉通知回调的具体动作类型,枚举如下: CREATE_COMPLAINT:用户提交投诉 CONTINUE_COMPLAINT:用户继续投诉 USER_RESPONSE:用户新留言 RESPONSE_BY_PLATFORM:平台新留言 SELLER_REFUND:收款方全额退款 MERCHANT_RESPONSE:商户新回复 MERCHANT_CONFIRM_COMPLETE:商户反馈处理完成 | 必填 |
complaint_id | 投诉单号 | String(64) | 投诉单对应的投诉单号 | 必填 |
当 risk_type = COMPLAINTV2 时
节点名称 | 中文名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
complaint_id | 投诉单号 | String(64) | 投诉单对应的投诉单号 | 必填 |
complaint_time | 投诉时间 | String(32) | yyyy-MM-DDTHH:mm:ss.sss+TIMEZONE | 必填 |
complaint_detail | 投诉详情 | String(300) | 投诉的具体描述 | 必填 |
complaint_state | 投诉单状态 | String(30) | 标识当前投诉单所处的处理阶段,具体状态如下所示: PENDING:待处理 PROCESSING:处理中 PROCESSED:已处理完成 | 必填 |
complainted_mchid | 被诉商户号 | String(64) | 微信子商户号 | 必填 |
payer_openid | 投诉人OpenID | String(128) | 投诉人在商户AppID下的唯一标识,支付分服务单类型无 | 可空 |
payer_phone | 投诉人联系方式 | String(64) | 可空 | |
complaint_order_info | 投诉单关联订单信息 | JSONArray | 必填 | |
complaint_full_refunded | 投诉单是否已全额退款 | boolean | true:已全额退款 false:未全额退款 | 必填 |
incoming_user_response | 是否有待回复的用户留言 | boolean | true:是 false:否 | 必填 |
user_complaint_times | 用户投诉次数 | Integer | 用户首次发起投诉记为1次,用户每有一次继续投诉就加1 | 必填 |
complaint_media_list | 投诉资料列表 | JSONArray | 用户上传的投诉相关资料,包括图片凭证等 | 可空 |
problem_description | 问题描述 | String(256) | 用户发起投诉前选择的faq标题(2021年7月15日之后的投诉单均包含此信息) | 必填 |
problem_type | 问题类型 | String | 可选取值 REFUND:申请退款 SERVICE_NOT_WORK:服务权益未生效 OTHERS:其他类型 | 可空 |
apply_refund_amount | 申请退款金额 | Integer | 仅当问题类型为申请退款时有值,单位:分 | 可空 |
service_order_info | 投诉单关联服务单信息 | JSONArray | 可空 | |
user_tag_list | 用户标签列表 | Array[String] | 可选取值 TRUSTED:此类用户满足极速退款条件 HIGH_RISK:高风险投诉,请按照运营要求优先妥善处理 | 可空 |
complaint_order_info 投诉单关联订单信息 (JSONArray)
JSON节点 | 参数名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
amount | 订单金额 | String(9) | 单位分 | 必填 |
out_trade_no | 商户订单号 | String(64) | 必填 | |
transaction_id | 微信订单号 | String(64) | 必填 |
complaint_media_list 投诉资料列表 (JSONArray)
JSON节点 | 参数名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
media_type | 媒体文件业务类型 | String | USER_COMPLAINT_IMAGE:用户提交投诉时上传的图片凭证 OPERATION_IMAGE:用户、商户、微信支付客服在协商解决投诉时,上传的图片凭证 | 必填 |
media_url | 媒体文件请求url | Array[String(512)] | 微信返回的媒体文件请求url | 必填 |
service_order_info 投诉单关联服务单信息 (JSONArray)
JSON节点 | 参数名称 | 类型 | 说明 | 是否必填 |
---|---|---|---|---|
order_id | 微信支付服务订单号 | String(128) | 微信支付服务订单号,每个微信支付服务订单号与商户号下对应的商户服务订单号一一对应 | 可空 |
out_order_no | 商户服务订单号 | String(128) | 商户系统内部服务订单号(不是交易单号),与创建订单时一致 | 可空 |
state | 支付分服务单状态 | String | DOING:服务订单进行中 REVOKED:服务订单已取消 WAITPAY:服务订单待支付 DONE:服务订单已完成 | 可空 |
返回报文
success
返回报文说明
固定字符串“success”表示接收处理成功,其他表示失败。