商户进件结果通知

1、修订记录

修订记录 日期 说明 作者
1.0 2021.11.10 初稿 薛晨

2、业务说明

(1)接口说明

商户进件信息调用审核,银盛支付会通过本接口将审核结果异步通知调用方;注:异步通知地址由用户方提供

3、异步通知参数说明

参数 类型(长度) 必填 参数说明
check String Y aseKey 经过国密加密的字符串,用于对data部分数据进行解密
data String Y 业务参数(des加密成密文字符串)
signValue String Y 签名串,请参考"签名样例以及demo下载"。

4、通知业务参数(data加密前的json数据明文字符串):

参数 类型(长度) 必填 参数说明
notifyType String(2) Y 通知类别:
00:进件通知
01:报备通知
02:变更通知
如:00
status String(2) Y 状态:
00:成功
10:转人工审核
20:人工审核通过,待签约
90:审核拒绝
97:变更失败
98:报备失败
如:00
urm String Y notifyType 为 00 时返回(JSON数据)参数详情
report String Y notifyType 为 01 时返回(JSON数据)参数详情
change String Y notifyType 为 02 时返回(JSON数据)参数详情

4.1 通知业务参数urm(JSON数据)

参数 类型(长度) 必填 参数说明
sysFlowId String(32) Y 合作方系统流水(商户进件接口返回) 示例:12202110111409447515387
mercId String(20) N 银盛商户号 开户成功时返回
custId String(32) N 客户编号 开户成功时返回
mercCnm String(60) N 商户名称 开户成功时返回
mercAbbr String(20) N 商户简称 开户成功时返回
coOperatorNo String(20) N 银盛商户所属代理商编号 开户成功时返回
signUrl String(32) N 签约地址URL status为20时,转人工审核后人工初审通过时。返回
sysSignFlowId String(50) N 合作方系统签约流水 status为20时,转人工审核后人工初审通过时。返回
noticeType String(20) N 通知类型 审核拒绝/开户成功返回
nogoRemark String(200) N 拒绝说明 审核拒绝时返回

4.2 通知业务参数report(JSON数据)

参数 类型(长度) 必填 参数说明
sysFlowId String(32) Y 合作方系统流水(商户进件接口返回) 示例:12202110111409447515387
nogoRemark String(200) N 报备备注
thridMercList JSONArray N 第三方商户号列表 参数详情

4.2.1 第三方商户号对象(json 数据 key: thridMercLis):

参数 类型(长度) 必填 参数说明
apprSts String Y 报备状态: 00:报备成功
03:报备失败
04:交易失败
如:00
remark String Y 报备备注
type String N 银联网联标识:
CUPS:银联
NUCC:网联
如:NUCC
flag String N 微信支付宝标识:
wx:微信
alipay:支付宝
如:alipay
thirdMercId String Y 第三方商户号
alipayLevel String Y 支付宝等级

4.3 通知业务参数change(JSON数据):

参数 类型(长度) 必填 参数说明
changeFlowId String(50) Y 合作方系统变更流水(变更接口返回) 示例:12202110111409447515387
noticeType String(50) Y 审核拒绝/变更失败/变更成功
nogoRemark String(200) N 变更备注
mercId String(20) N 业务商户号,成功时,返回
mercCnm String(60) N 商户名称,成功时,返回

4、接收异步通知样例

@Test public void test() throws Exception { String result = "{\"check\":\"MIH/BgoqgRzPVQYBBAIDoIHwMIHtAgECMYGpMIGmAgECgBSQ6DBK/PZV77Tg4qGyL7tyzqaIhTANBgkqgRzPVQGCLQMFAAR8MHoCIQDTcSf/c9qLEQAHT1Bg+GN+auZd9xn0lYu8x0nBM/mPgQIhAJ/E6I0YBK84QfEZHpaH0lO0/axQPImdpnfJdgPwwmPyBCDSep7ZgeU26/57Eghod2bG4esfFwOSlAhBjk3KcF+wIwQQ44pMMOZKAMEPhsb2ZcwHJDA8BgoqgRzPVQYBBAIBMAwGCCqBHM9VAWgBBQCAIOqBmGAFFBEuXNkyT1pMyEvtsES2xpdDexftqIvnfk0G\",\"data\":\"D5pKKpC2TsSeEuCDe630qShq7vKSB5iO+9NSouS2miDoOHVeRyYrhqxoM4b91DE638A4gP7KIZcqoeq/Qg9OP4fGTL00dl8ibtJhojHKacICw3ahvwZxMami7ltSLs2SAW60Ni+sfKngQ5aJbVXjrJ7vkVCA+pCD+/jDVv/aJyDhYqFEMi5MviVHkhqClnDIiebE5tgqEdQW913O0AnydRC6jczFzosclL4OTm3tr4HOl8RHKUSlarXsJJj+KVEFwZuqTInLY86IOBUCFIAZ6blN2ItxWY9lAGmBsI3Rqx1mWxFLtr3esA3boNwesSdmLmmxtSWCPkvM1iy+THFnhM5IK8L+8fRO/hhG8cxwNusUn+z8nMXugp0ICR/q5nK3\",\"signValue\":\"MEYCIQCFzA4SsuW45N4Mx6eq8ouHMmaC5gmUBIZcuybuMlyDhQIhAOMzKzWJFflZe/r2RdiSe9Mm3qqOqXsiaxVEjjyUVxol \"}"; JSONObject resultO = JSON.parseObject(result); Map<String, String> resultMap = new HashMap<>(); resultO.forEach((k, v) -> { resultMap.put(k, v.toString()); }); String sign = resultMap.get("signValue"); resultMap.remove("signValue"); byte[] array = IOUtils.toByteArray(new FileInputStream(ysPublicKeyPath)); boolean checkSign = CheckSignUtil.gmsM2CheckContent(resultMap, sign, array, "UTF-8"); System.out.println("验签结果:" + checkSign); String cerData = resultMap.get("data"); byte[] base64Data = Base64.decodeBase64(cerData); String check = resultMap.get("check"); String randomAesKey = GMSignUtils.decryptData(privateKeyPath, publicKeyPath, check.getBytes(StandardCharsets.UTF_8), "ys123456"); System.out.println("randomAesKey:" + randomAesKey); byte[] aesData = AESUtil.decrypt(base64Data, randomAesKey.getBytes(StandardCharsets.UTF_8)); System.out.println("data解密:" + new String(aesData)); }{"code":200,"message":"成功","data":null,"list":null}{"code":200,"message":"成功","data":null,"list":null}{"code":200,"message":"成功","data":null,"list":null}{"code":200,"message":"成功","data":null,"list":null}

results matching ""

    No results matching ""