# ● 回调接口

# (一) 接口概述

  1. 本接口通常集成在交易平台提供的服务或前置机中,用于接收App扫码后共享给交易平台的所有数据。

  2. 本接口专门供给APP服务端调用,交易平台内部不调用。对于交易平台本地来说本接口仅仅被调用,通过解析接口传入的参数,并存储在本地数据库或缓存,实现交易平台在对外数据交互过程中的接收功能。

# (二) 参数,返回值

# 方法url: receiveAppLogController/receiveScanData

# 入参(中招互连——>平台前置机服务):

参数名 类型 是否必填 说明
type varchar(2) 回调数据状态码,标记回调数据所代表的业务含义,如'01'代表扫码状态
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息
platformCode varhcar(11) 平台编码,数据所属平台

# 返回值:(平台前置机服务——>中招互连)

参数名 类型 说明
header
└ ret String 0成功/1失败
└ msg String 结果说明
data Null 为空即可

# (三) 回调数据类型

回调接口的逻辑流程

  1. 读取本接口的入参type和data;

  2. 以type为判断条件,进入逻辑分支,调用不同 SDK接口方法(取决于type)

  3. SDK接口内,解析data,提取data.encrypt数据,并解密;

  4. SDK接口内,将data.encrypt的解密结果转化成不同 Json结构(取决于type) 的对象,作为SDK接口方法的返回结果;

  5. 将SDK接口方法的返回结果存储在不同 数据库表(取决于type) 中(也可以是缓存,根据实际需要),交易平台通过其他接口(tid做参数)查询使用。

关注点(下面正文为详细说明):

  •  SDK接口方法

  •  SDK接口方法返回的Json结构

  •  存储的数据库表

:::

# type=01, 接收扫码状态

#  (1)调用SDK方法:HttpSweepCodeUtil.getScanstatusReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ScanstatusReceiveVo对象

参数名 类型 说明
tId varchar(50) 事件ID
unifiedTransactionCode varchar(50) 机构交易码
personalTransactionCode varchar(50) 个人交易码
isScaned varchar(50) 扫码状态:01已扫00未扫
qRCodeType varchar(2) 二维码类型
{
    "isScaned": "01",
    "qRCodeType": "06",
    "tId": "E110000028511fdc64608c640c591e6806a10b3c62a"
}
1
2
3
4
5

#  (4)存入数据库表:t_b_scanstatus_receive_log

# type=02, 接收用户信息(共享登录)

#  (1)调用SDK方法:HttpSweepCodeUtil.getUserInfoReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ScanningUserInfoReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
personName varchar(50) 用户姓名
telephoneNum varchar(20) 手机号码
idCard varchar(18) 身份证号
unifiedTransactionCode varchar(50) 电子交易全国共享码
sharedCodeStatus varchar(2) 电子交易全国共享码状态 正常01、作废02、冻结03
legalCode varchar(18) 组织机构代码
legalName varchar(100) 机构名称
legalRepresent varchar(50) 法定代表人姓名
legalIDCard varchar(18) 注册机构法人身份证
managerTelephoneNum varchar(20) 管理员手机号
certSn varchar(40) CA证书Id/序列号
caType varchar(2) CA类型
caOrgType varchar(10) CA机构类型编码
signOriVal varchar(50) 签名原值
signatureValue text CA签名值
pubCert text 公钥证书
algorithm varchar(10) 加密算法
accessToken text 授权码(用于调用app服务端其他接口)
loginUserType varchar(2) 登录类型01个人/02机构
{
    "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI5OWE0ZTFhZDIwOGI0......",
    "caOrgType": "010002",
    "certSn": "59E28B2B1B5946A429F453ED865E55B3B7777B6B",
    "idCard": "23022419770620132X",
    "legalCode": "123456789008794651",
    "legalIDCard": "431121199110282221",
    "legalName": "斗鱼网咖",
    "legalRepresent": "王倩倩",
    "loginUserType": "02",
    "managerTelephoneNum": "13581782409",
    "personName": "王伟彤",
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "pubCert": "MIIESTCCAzGgAwIBAgIUWeKLKxtZRqQp9FPthl5Vs7d3e2swDQYJK......",
    "sharedCodeStatus": "01",
    "signOriVal": "05d60e032b574f69af4c7671174552e4",
    "signatureValue": "MIIGNgYJKoZIhvcNAQcCoIIGJzCCBiMCAQExDzANBglgh......",
    "tId": "E110000028511fdc64608c640c591e6806a10b3c62a",
    "telephoneNum": "15804609746",
    "unifiedTransactionCode": "76A0E64FFA9B45D083CB17B650310972"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21

#  (4)存入数据库表:t_b_logininfo_receive_log

  数据入库后,由本平台的工具或web页面通过本次二维码里的tId查询。

  用户信息绑定: 机构登录使用机构交易码绑定。

  如果账号已被绑定过再次绑定可以提醒:账号已被其他手机号绑定,确认要更新吗。

# type=03, 接收签名值(除签章外)

#  (1)调用SDK方法:HttpSweepCodeUtil.getSignatureReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ScanningSignatureReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
useStatus varchar(2) 使用状态00未使用01已使用
personalTransactionCode varchar(50) 个人交易码
unifiedTransactionCode varchar(50) 电子交易全国共享码
certSn varchar(40) CA证书Id/序列号
caOrgType varchar(10) CA机构类型编码
signOriVal varchar(50) 签名原值
signatureValue text CA签名值
pubCert text 公钥证书
algorithm varchar(10) 加密算法
{
    "algorithm": "RSA",
    "caOrgType": "010002",
    "certSn": "59E28B2B1B5946A429F453ED865E55B3B7777B6B",
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "pubCert": "MIIESTCCAzGgAwIBAgIUWeKLKxtZRqQp9FPthl5Vs7d......",
    "signOriVal": "eea67edab300461d8e0e0be2ee051523",
    "signatureValue": "MIIGCgYJKoZIhvcNAQcCoIIF+zCCBfcCAQEx......",
    "tId": "E11000002857030a416d86548b1beae369ef9fb717a",
    "unifiedTransactionCode": "76A0E64FFA9B45D083CB17B650310972"
}

1
2
3
4
5
6
7
8
9
10
11
12

#  (4)存入数据库表:t_b_signature_receive_log

# type=05, 接收加密证书信息

#  (1)调用SDK方法:HttpSweepCodeUtil.getEncryptCertReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:EncryptCertReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
personalTransactionCode varchar(50) 个人交易码
caOrgType varchar(10) CA机构类型编码
signOriVal varchar(50) 签名原值
signatureValue text CA签名值
encPubCert text 加密的公钥证书
signCertSn varchar(50) 签名证书的序列号
encCertSn varchar(50) 加密证书的序列号
pubCert varchar(50) 签名公钥
algorithm varchar(10) 签名算法:SM2和RSA
telephoneNum varchar(11) 加密人手机号码
{
    "caOrgType": "010002",
    "encCertSn": "2F8A9B614AA81CD8864B0BEDB9ECB7D21F9C1A2C",
    "encPubCert": "MIIEYDCCA0igAwIBAgIUL4qbYUqoHNiGSwvtuey30h......",
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "signCertSn": "59E28B2B1B5946A429F453ED865E55B3B7777B6B",
    "signOriVal": "39b967f298224d4d81d5633aa55e5d4d",
    "signatureValue": "MIIGNgYJKoZIhvcNAQcCoIIGJzCCBiMCAQExDzANBgl......",
    "tId": "E110000028509d42930d03f4c64bd283c774712b8e1",
    "telephoneNum": "15804609746"
}
1
2
3
4
5
6
7
8
9
10
11

#  (4)存入数据库表:t_b_encryptcert_receive_log

# type=06, 接收解密结果信息

#  (1)调用SDK方法:HttpSweepCodeUtil.getDecryInfoReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:DecryptReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
personalTransactionCode varchar(50) 个人交易码
decryptInfoList List
└ key varchar(50) 主键
└ decryptStr varchar(50) 解密串
{
    "decryptInfoList": [
        {
            "decryptStatus": "0",
            "decryptStr": "da39e23476b9adfa6775a8763bbf9452b94037a79edfce800268a2e3dc54e93b",
            "key": "AH-0001"
        }
    ],
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "tId": "E110000028539bf043a381944578fad525e678d7831"
}
1
2
3
4
5
6
7
8
9
10
11

#  (4)存入数据库表:t_b_decryptinfo_log、t_b_decrystrset_receive_log

### type=08, 接收SM2签章证书信息(旧版签章,请忽略) ####  (1)调用SDK方法:HttpSweepCodeUtil.getSignCertReceiveData(data) ####  (2)入参: |参数名|类型|是否必填|说明| |:----|:----:|:----:|:----:| |data| | |参数内容(JsonString)| |└ encrypt|String|是|携带的被加密的信息| ####  (3)返回Json结构:SignCertVo对象 |参数名|类型|说明| |:----|:----:|:----:| |tId|varchar(50)|事件ID| |signCertSn|varchar(50)|证书序列号| |pubCert|text|公钥证书| ####  (4)存入数据库表:t_b_signcert_receive_log

# type=09, 接收用户信息(谁扫谁解密)

#  (1)调用SDK方法:HttpSweepCodeUtil.getUserInfoReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ScanningUserInfoReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
personName varchar(50) 用户姓名
telephoneNum varchar(20) 手机号码
idCard varchar(18) 身份证号
personalTransactionCode varchar(50) 个人交易码
unifiedTransactionCode varchar(50) 电子交易全国共享码
sharedCodeStatus varchar(2) 电子交易全国共享码状态 正常01、作废02、冻结03
legalCode varchar(18) 组织机构代码
legalName varchar(100) 机构名称
legalRepresent varchar(50) 法定代表人姓名
legalIDCard varchar(18) 注册机构法人身份证
managerTelephoneNum varchar(20) 管理员手机号
certSn varchar(40) CA证书Id/序列号
caType varchar(2) CA类型
caOrgType varchar(10) CA机构类型编码
signOriVal varchar(50) 签名原值
signatureValue text CA签名值
pubCert text 公钥证书
algorithm varchar(10) 加密算法
accessToken text 授权码(用于调用app服务端其他接口)
loginUserType varchar(2) 登录类型01个人/02机构

{
    "accessToken": "eyJhbGciOiJ....",
    "algorithm": "RSA",
    "caOrgType": "010002",
    "caType": null,
    "certSn": "73231D995E4E18BA52C53A4757CB2A839F858F8A",
    "idCard": "431121199110282221",
    "legalCode": "123456789012345678",
    "legalIDCard": "431121199110282221",
    "legalName": "中招测试平台",
    "legalRepresent": "王倩倩",
    "loginUserType": "02",
    "managerTelephoneNum": "13203833303",
    "personName": "王倩倩",
    "personalTransactionCode": "F1F6F42D29DC4C41A56705E5E2E711DE",
    "pubCert": "MIIETzCCAzegAwIBAgIUcyM.......",
    "sharedCodeStatus": "01",
    "signOriVal": "f73a24e0c2454837a1b02e51ce3b5393",
    "signatureValue": "MIIGPAYJKoZIhvcNAQcCo......",
    "telephoneNum": "13203833303",
    "tid": "A3401314520b3359292cb054b0f95f497f5e031b816",
    "unifiedTransactionCode": "1151FD164597448E9058BF838DDE53F7",
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24

#  (4)存入数据库表:t_b_logininfo_receive_log

# type=12, 接收App退出签章通知

#  (1)调用SDK方法:HttpSweepCodeUtil.getExitReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ExitReceiveVo对象

参数名 类型 说明
tId varchar(50) 事件ID
pid varchar(50) 用户姓名
source varchar(10) 指令的来源00 app端,01 交易平台
exitType varchar(2) 退出指令的类型 12:退出连续签章模式
{
    "exit": "01",
    "exitType": "12",
    "pId": "E1100000285eb7350eb7255452b8f39d89c32a004da",
    "platformCode": "E1100000285"
}
1
2
3
4
5
6

#  (4)存入数据库表:t_b_exit_receive_log

# type=13, 接收用户信息(签章)

#  (1)调用SDK方法:HttpSweepCodeUtil.getUserInfoReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息

#  (3)返回Json结构:ScanningUserInfoReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
personName varchar(50) 用户姓名
telephoneNum varchar(20) 手机号码
idCard varchar(18) 身份证号
personalTransactionCode varchar(50) 个人交易码
unifiedTransactionCode varchar(50) 电子交易全国共享码
sharedCodeStatus varchar(2) 电子交易全国共享码状态 正常01、作废02、冻结03
legalCode varchar(18) 组织机构代码
legalName varchar(100) 机构名称
legalRepresent varchar(50) 法定代表人姓名
legalIDCard varchar(18) 注册机构法人身份证
managerTelephoneNum varchar(20) 管理员手机号
certSn varchar(40) CA证书Id/序列号
caType varchar(2) CA类型
caOrgType varchar(10) CA机构类型编码
signOriVal varchar(50) 签名原值
signatureValue text CA签名值
pubCert text 公钥证书
algorithm varchar(10) 加密算法
accessToken text 授权码(用于调用app服务端其他接口)
loginUserType varchar(2) 登录类型01个人/02机构
algorithmType varchar(2) 证书类型, 00 sm2/01 RSA
certBelongType varchar(2) 证书所属类型 01个人/02机构
{
    "PId": "E11000002856440fafc8a6d4557bf96024d7d3666c5",
    "accessToken": "eyJhbGciOiJIUzI1NiJ9.eyJqdGkiOiI5OWE0ZTFhZDI......,
    "algorithm": "RSA",
    "algorithmType": "01",
    "certBelongType": "02",
    "certSn": "59E28B2B1B5946A429F453ED865E55B3B7777B6B",
    "flowType": "01",
    "idCard": "23022419770620132X",
    "legalCode": "123456789008794651",
    "legalIDCard": "431121199110282221",
    "legalName": "斗鱼网咖",
    "legalRepresent": "王倩倩",
    "loginUserType": "02",
    "managerTelephoneNum": "13581782409",
    "personName": "王伟彤",
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "pubCert": "MIIESTCCAzGgAwIBAgIUWeK......",
    "sharedCodeStatus": "01",
    "tId": "E1100000285b126f6800d424843a0fd1a10f6d2ea35",
    "telephoneNum": "15804609746",
    "unifiedTransactionCode": "76A0E64FFA9B45D083CB17B650310972"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23

#  (4)存入数据库表:t_b_logininfo_receive_log

# type=14, 接收签名值(签章)

#  (1)调用SDK方法:HttpSweepCodeUtil.getSignatureReceiveData(data)

#  (2)入参:

参数名 类型 是否必填 说明
data 参数内容(JsonString)
└ encrypt String 携带的被加密的信息
└ desKey String 加密的对称秘钥

#  (3)返回Json结构:ScanningSignatureReceiveVo对象

参数名 类型 说明
TId varchar(50) 事件ID
useStatus varchar(2) 使用状态00未使用01已使用
personalTransactionCode varchar(50) 个人交易码
unifiedTransactionCode varchar(50) 电子交易全国共享码
certSn varchar(40) CA证书Id/序列号
caOrgType varchar(10) CA机构类型编码
pubCert text 公钥证书
algorithm varchar(10) 加密算法
signatureValueList text 一组哈希值
{
    "algorithm": "RSA",
    "caOrgType": "010002",
    "certSn": "59E28B2B1B5946A429F453ED865E55B3B7777B6B",
    "personalTransactionCode": "0592A2BE39AE47A08BA36624225676B1",
    "pubCert": "MIIESTCCAzGgAwIBAgIUWeKLKxtZRqQp9FPthl5......",
    "signatureValueList": 
    "[{
        \"signKey\":\"AH-0001\",
        \"signOriVal\":\"HCQKvgSrukZ/PylrNm2hkZh8ycU\\u003d\",
        \"signatureValue\":\"MIIGCgYJKoZIhvcNAQcCoIIF+zCC......"
    }]",
    "tId": "E11000002855a63b2adb5994ab6986d7c7eb6f62f1f",
    "unifiedTransactionCode": "76A0E64FFA9B45D083CB17B650310972"
}
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15

#  (4)存入数据库表:t_b_signature_receive_log