回调配置说明¶
对接规则说明¶
-
关爱通提供TOKEN,EncodingAESKey给客户开发人员
-
客户提供对接的消息通知地址URL
首先,URL为回调服务地址,由客户搭建,用于接收通知消息或者事件。

其次,Token用于计算签名,由英文或数字组成且长度不超过32位的自定义字符串。客户提 供的URL是公开可访问的,这就意味着拿到这个URL,就可以往该链接推送消息。那么URL服务 需要解决两个问题:
· 如何分辨出是否为关爱通来源
· 如何分辨出推送消息的内容是否被篡改
通过数字签名就可以解决上述的问题。具体为:约定Token作为密钥,仅客户和关爱通知道 , 在传输中不可见,用于参与签名计算。关爱通在推送消息时,将消息内容与Token计算出 签名。客户接收到推送消息时,也按相同算法计算出签名。如果为同一签名,则可信任来源 为关爱通,并且内容是完整的。
· 如果非关爱通来源,由于攻击者没有正确的Token,无法算出正确的签名;
· 如果消息内容被篡改,由于客户会将接收的消息内容与Token重算一次签名,该值与参数的签名不一致,则会拒绝该请求。

最后,EncodingAESKey用于消息内容加密,由英文或数字组成且长度为43位的自定义字符串 。由于消息是在公开的因特网上传输,消息内容是可被截获的,如果内容未加密,则截获者可 以直接阅读消息内容。若消息内容包含一些敏感信息,就非常危险了。EncodingAESKey就是 在这个背景基础上提出,将发送的内容进行加密,并组装成一定格式后再发送。

请求参数位置¶
客户请使用application/json接收参数
请求参数说明¶
| 参数 | 类型 | 说明 |
|---|---|---|
| msg_signature | String | 关爱通加密签名,msg_signature结合了企业填写的token、请求中的timestamp、nonce参数、加密的消息体 |
| timestamp | Integer | 时间戳。与nonce结合使用,用于防止请求重放攻击。 |
| nonce | String | 随机数。与timestamp结合使用,用于防止请求重放攻击。 |
| msg_encrypt | String | 消息数据,加密后的数据,通过配置的EncodingAESKey解密可得明文 |
msg_signature签名规则¶
- timestamp,nonce,msg_encrypt,token四个字段参与签名,按照ASCII升序排序以键值对方式进行&连接得到加密字符串str
- 对字符串进行sha256转hex
- 比较传递参数msg_signature和自签名参数sign是否一致
encrypt解密规则¶
-
msg_encrypt加密字段采用AES加密算法,填充方式为“AES/ECB/PKCS5Padding”
-
密钥为关爱通提供的encodingAESKey(16位)
-
正确解密之后会得到下面报文字段
员工同步通知参数¶
| 参数名 | 类型 | 描述 |
|---|---|---|
| notify_id | string | 申请时返回的申请号 |
| notify_key | string | 固定类型:employee_sync_result |
| result | json | |
| result.userid | string | 用户标识 |
| result.enterprise_code | string | 企业编码,集团同步员工时使用 |
| result.sync_type | int | 1入职2变更3离职4复职 |
| result.sync_status | int | 同步状态1成功2失败 |
| result.error_msg | string | 同步失败时,显示具体失败原因 |
员工余额变更通知参数¶
| 参数名 | 类型 | 描述 |
|---|---|---|
| notify_id | string | 申请时返回的申请号 |
| notify_key | string | 固定类型:employee_balance_change |
| trade_no | string | 支付/退款单号 |
| outer_trade_no | string | 外部交易号 |
| account_openid | string | 员工账户的openid 同查询指定员工资产账户返回的account_openid,注意:每个员工的关爱积分(product_category=10)账户值都不同,每个企业下员工相同额度的openid值一样 |
| product_category | int | 产品线 |
| product_name | string | 产品线名称 |
| userid | string | 用户标识 |
| type | string | 变更类型 1.消费,2.退款,6.发放,7.回收 |
| enterprise_code | string | 企业编码,集团同步员工时使用 |
| date_time | string | 变更时间,格式:yyyy-MM-dd HH:mm:ss |
| fee_amount | BigDecimal | 服务费 |
| amount | BigDecimal | 消费金额 |
| balance | BigDecimal | 余额 |
| remark | String | 变动原因 |
企业充值申请通知参数¶
| 参数名 | 类型 | 描述 |
|---|---|---|
| notify_id | string | 申请时返回的申请号 |
| notify_key | string | enterprise_account_charge |
| account_openid | string | 充值账号openId |
| charge_amount | BigDecimal | 充值金额 |
| balance | BigDecimal | 余额 |
| charge_time | string | 充值时间,格式:yyyy-MM-dd HH:mm:ss |
企业账户余额变动通知参数¶
| 参数名 | 类型 | 描述 |
|---|---|---|
| notify_id | string | 关爱通内部变动交易号 |
| notify_key | string | 固定值‘enterprise_account_change’ |
| enterprise_code | string | 企业编码,集团同步员工时使用 |
| account_openid | string | 充值账号openId |
| product_category | int | 产品线 |
| product_name | string | 产品线名称 |
| balance | BigDecimal | 变动后余额 |
| change_amount | BigDecimal | 变动金额 |
| change_type | int | 变动类型 逆向(1.充值 6.退款 12.取消应收款 15.充值退款 16.服务费退款),正向(5.消费 10.服务费) |
| change_time | string | 变动时间,格式:yyyy-MM-dd HH:mm:ss |
| trade_no | String | 关爱通内部交易号 |
| out_trade_no | String | 外部交易号 |
| reason | String | 变动原因 |