单笔代付申请接口

代付流程描述

街口支付的代付转账到银行卡是一个辅助接口,帮助商家更方便的完成从商家系统直接接入到街口支付系统,完成转账,减少人工成本。


1、 构造XML请求数据

  商户根据提供的接口规则,通过程序生成得到签名结果及要传输给街口支付的数据集合。


2、 发送请求数据(XML格式的base64转码)

  把构造完成的数据集合,通过服务端利用Http或Https请求Post提交的方式传递给街口支付。


3、街口支付对请求数据进行处理

  街口支付得到这些集合后,会先进行安全校验等验证,一系列验证通过后便会处理这次发送过来的数据请求。


4、 返回处理的结果数据(Json)


5、 商户可选择根据街口支付商户中心代付记录 或者 调用-单笔代付查询接口-获取订单处理结果(注:代付申请不是实时代付)。

 

代付申请请求参数说明

1、商户在服务器内部使用Post方式提交主参数 transData信息到街口支付代付接口;

2、参数transData是一个转账明细的明文XML格式,然后经过Base64转码后得到的字符串。


代付主体上送参数
参数 格式 必填 说明
transData String 提交的主体内容参数,它是代付明细构造XML后的Base64明文转码字符串。
代付明细XML构造参数描述
参数 格式 必填 说明
merchant_code String(15) 商家号,商户签约时分配给商家的唯一身份标识。
interface_version String(5) 接口版本,固定值:V1.0(大写)。
sign_type String(3) 签名类型,固定值:MD5或RSA(大写)
order_no String(30) 商家网站生成的代付订单号,由商户保证其唯一性,由字母、数字、下划线组成。
bankCode String(10) 代付银行名称,参数为本平台规定银行编码。编码列表请参考 银行编码
provice String(10) 开户省份(例如:山东省)。请选择参考 省份
city String(10) 开户市(例如:济南市)。请选择参考 城市
district String(10) 开户区或县(例如:历城区或济阳县)。请选择参考 区或县
branchName String(50) 支行名称, 仅填写支行信息 ,如:太平路支行, 仅需填写支行名称不需要银行名称。
accountName String(50) 银行卡开户名称或收款人姓名(确保正确)
cardNo String(30) 转账银行卡号
amount Number 代付转账金额,以元为单位,精确到小数点后两位.例如:12.01
phone String(11) 代付银行卡绑定的手机号码
transferType String(7) 对公、对私转账类型,固定值: public (对公)、private (对私)
sign String 代付明细 MD5或RSA签名认证后的字符串,代付申请接口签名使用说明请参考下文介绍。
remark String(50) 代付转账备注

请求响应返回参数列表(Json格式)
参数 格式 必填 说明
msgcode String 状态码 : 00000000 (受理成功,等待系统财务处理)
其他: 请求有误,参考错误码对照;
msg String 请求描述 : success (受理成功)
其他错误描述

构造XML样例(检查最终XML格式是否正确,可保存为XML。再用浏览器打开XML即知。作为开发人员的您应该知道。查看样例XML

代付XML样例


将构造正确的代付明细XML字符串转码成Base64 得到主体参数“transData”

//JAVA转码代码片段 
String base64_transData = new sun.misc.BASE64Encoder().encode("xml".getBytes("utf-8"));
//PHP转码代码片段 
$base64_transData = base64_encode("xml");
//.NET转码代码片段
byte[] bytes = Encoding.Default.GetBytes("xml");
string base64_transData = Convert.ToBase64String(bytes);

单笔代付申请(sign)签名规则

商户在街口支付平台申请代付,签名原始串必须遵循以下规则:

1、所有指定签名参数值按照(parmValue1+~|~+parmValue2+~|~+parmValue3+…)拼接而成,每个参数值中间采用分隔符 ~|~ 拼接。

2、签名原始串中,字段名和字段值都采用原始值,不进行URL Encode。

3、参数值区分大小写。

4、签名排列顺序必须按照指定格式排列拼接。见下文。


代付申请请求签名原始串

post 请求代付原始签名串格式如下:

请求代付原始签名串街口支付

  1. merchant_code+"~|~"+interface_version+"~|~"+sign_type+"~|~"+order_no"~|~"+bankCode"~|~"+cardNo"~|~"+amount"~|~"+phone"~|~"+
    transferType

商户算法签名模型设置为MD5时,采用下面签名算法样例。

MD5代付请求签名街口支付

  1. sign = Md5(代付签名原始串+"~|~"key=商户MD5密钥)

商户算法签名模型设置为RSA时,采用下面签名算法样例。

请求代付RSA签名算法街口支付

  1. Java:
  2. sign = RSAWithSign.signByPrivateKey(请求代付签名原始串,商户生成的私钥)
  3.  
  4. PHP:
  5. $privatekey = openssl_get_privatekey('商户生成的私钥');
  6. openssl_sign(请求代付原始签名串,$sign_info,$privatekey,OPENSSL_ALGO_MD5);
  7. $sign = base64_encode($sign_info);