跳转至

回调配置说明

对接规则说明

  1. 关爱通提供TOKEN,EncodingAESKey给客户开发人员

  2. 客户提供对接的消息通知地址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签名规则

  1. timestamp,nonce,msg_encrypt,token四个字段参与签名,按照ASCII升序排序以键值对方式进行&连接得到加密字符串str
    String str = "msg_encrypt=xxx&nonce=xxx&timestamp=xxx&token=xxx";
    
  2. 对字符串进行sha256转hex
    String sign = Hex.encodeHexString(sha256(str));
    
  3. 比较传递参数msg_signature和自签名参数sign是否一致

encrypt解密规则

  1. msg_encrypt加密字段采用AES加密算法,填充方式为“AES/ECB/PKCS5Padding”

  2. 密钥为关爱通提供的encodingAESKey(16位)

  3. 正确解密之后会得到下面报文字段

员工同步通知参数

参数名 类型 描述
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 变动原因

解密代码参考

  1. Java代码示例
回到页面顶部