一、文档说明

1.写在前面2.错误代码表

二、安全认证与签名

1.签名方法2.AES加密

三、结算公司和资金余额

1.资金池余额查询2.税源地公司信息查询

四、实时发放

1.接口使用流程2.实时发放数据上报(单笔)3.查询实时发放数据(单笔)4.回调通知5.申请实时发放业务账单6.查询实时发放业务账单申请状态

五、业务级错误代码

1.实时发放接口错误代码2.数据格式正则校验失败code

六、枚举类型

1.证件类型2.支付宝支付交易失败code3.交易状态4.导出状态
2.AES加密
使用场景
  • 使用接口时,业务参数需要通过本文指定的加密形式进行加密传输,接口回调结果亦按照相同的加密方式反馈。
  • 加密方法为Base64编码,使用CBC模式256位的AES加密
  • 需要使用平台分配给商户的秘钥AccessKeySecret,一个IV向量值ivStr,向量值可增加加密算法的强度
  • 参与加密的JSON字符串不能包含换行符(/n),空格(/t),涉及到url的参数请注意不要包含转义字符,否则解密可能发生异常
  • 加密生成的字符格式默认使用UTF-8,先做Base64.encode,然后再做URLEncoder.encode,最终得到加密字符串
  • 加密向量值 iv 默认为:0000000000000000(16个阿拉伯数字0)
示例
  • 加密代码示例
        try {
			//指定加密计算方式
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            String jsonParam = WorkerSassVerifyUtil.buildMapToSign(params);
            byte[] raw = secret.getBytes();
            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
            IvParameterSpec iv = new IvParameterSpec(ivStr.getBytes());
            cipher.init(Cipher.ENCRYPT_MODE, skeySpec, iv);
			//获取加密字符
            byte[] encrypted = cipher.doFinal(jsonParam.getBytes("UTF-8"));
			//先进行Base64Encode
            String enString = Base64.encode(encrypted);
			//最后URLEncode
            return URLEncoder.encode(enString);
        } catch (Exception e) {
            System.out.println("AES加密异常" + e);
        }
        return "";
  • 解密代码示例
        try {
            byte[] raw = secret.getBytes("ASCII");
            SecretKeySpec skeySpec = new SecretKeySpec(raw, "AES");
            Cipher cipher = Cipher.getInstance("AES/CBC/PKCS5Padding");
            IvParameterSpec iv = new IvParameterSpec(ivStr.getBytes());
            cipher.init(Cipher.DECRYPT_MODE, skeySpec, iv);
            String tempStr = URLDecoder.decode(aesData);
            byte[] encrypted1 = Base64.decode(tempStr);
            byte[] original = cipher.doFinal(encrypted1);
            String jsonParam = new String(original, "UTF-8");
            return jsonParam;
        } catch (Exception e) {
            System.out.println("AES解密异常" + e);
        }
        return "";
单笔提现上报接口bizAESContent加密示例
{"notifyUrl":"https://api.workersaas.com/api/pay/notifyTest","taxFundId":"0","month":"2020-07","outerTradeNo":"f2cb9c91f3c3637fb41ea5b647836dfe","empName":"aloqog7355","empPhone":"18801270000","licenseType":"ID_CARD","licenseId":"990809198508017900","settleType":"alipay","payAccount":"aloqog7355@sandbox.com","positionName":"音视频服务费","payAmount":10.01}
  • 加密秘钥appSecret : 18a9722d3bc84812830b2306b72e4605

  • IV向量值ivStr: 0000000000000000

  • 加密后的字符串

90BCnLDJ9czbEEusRowegeKj02I9RGGNOZnq7nmh3rXmD3EQVZm%2BIbC%2ByfY%2FQyuVoW4uLkwu%2FJssN0PVsk9goS1YjIhqdUsmbec6NDaB5mPwUbOQpEMpt1RFaDTvv0Nr9yfwRNmusn%2FveAhgq1MmFw%2BUQxOvK7FTaJV3OzR5UXZN4WRWfCGSfSDBQtZfAtlOd2WAy5TPCBsvXsTcs55XcuJ%2BmyI2Lf4QlrBG%2FvkyXIhhOebbiqsuapy7uV7gtBzN2%2BzARc2mseWc0mky9mJVNNe9BJcAdRaQC4NPPZVGkhMQOvqbqELUY0mX%2Fn%2FMOITc%2BT9wiux8ZPvM041JOmHKZmD2FQ6Q1AWF1NSTlPpJ08PmSyGh7Bk9fS3lWnnVcEBO0utGAqJHfb28nJJ%2Bit9ox8pelqGieS2vDA22kcfmdHAtZ%2FNakHbb1STU7pkTn5q3U2IPqVTJBp%2BAYwKrLpAbDvaMs7ZK71jWgtjUxnaNZDw%3D