单位交易授权接口
方案目标 #01
商户平台在处理个人交易业务时,如发起方位渠道商户,需向单位请求获取交易授权,生成预下单信息。 渠道商户根据授权完成预下单交易。
运行流程 #02
接口调用说明 #03
我方后端通过调用单位端接口,按照接口文档规定的参数进行组织报文, 通后端对参数进行加密请求到单位后端,单位将预下单信息加密后,返回给我方。
接口参数 #04
1、解析request请求,将输入流转换成StringBuffer类型的字符串, 然后用私钥进行解密,调用SDK封装的统一解密方法,转成json对象,根据接口字段来获取商户需要的字段,如下表:
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_no | 商户号 | String | 是 | |
business_no | 业务单号 | String | 是 | |
extra | 扩展参数 | String | 否 |
2、统一解密的方法
com.bosssoft.sdk.model.Message.decryptByPrivateKey(RsaStr, privateKey);
RsaStr为1中解析出加密后的字符串;
privateKey为数据传输时签名加密所需使用的商户私钥。
接口返回 #05
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_no | 商户号 | String | 是 | |
widget_content | 订单内容 | String | 是 | 转出时需使用私钥签名 |
back_url | 后端通知地址 | String | 是 | |
extra | 扩展参数 | String | 否 |
widget_content参数内容(JSON):
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_no | 商户号 | String | 是 | |
merchant_order_no | 商户订单号 | String | 是 | |
amount | 订单金额 | Integer | 是 | 单位 分 |
widget_param | 控件参数 | String | 否 | |
subject | 商品标题 | String | 否 | |
device_type | 设备类型 | String | 是 | pc、phone |
effective_time | 有效时间 | String | 否 | 1m~15d,m-分钟,h-小时,d-天 默认当天1c,24点失效 |
version_no | 版本编码 | String | 是 | 1.0旧接口,1.1新接口 |
widget_content参数内容(JSON):
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
nontax_amt | 非税金额合计 | Integer | 否 | 单位 分 |
other_amt | 其他金额合计 | Integer | 否 | 单位 分 |
Demo #06
@RequestMapping(value = "/auth", method = RequestMethod.POST)
@ResponseBody
public String auth (HttpServletRequest request,
HttpServletResponse response) throws Exception {
//从request中获取到输入流,然后解析流到StringBuffer中获取到加密后的Stringbuffer字符串
StringBuffer stringBuffer = new StringBuffer();
try {
InputStream is = request.getInputStream();
InputStreamReader isr = new InputStreamReader(is);
BufferedReader br = new BufferedReader(isr);
String s = "";
while ((s = br.readLine()) != null) {
stringBuffer.append(s);
}
String privateKey="";//私钥赋值
String mes=Message.decryptByPrivateKey(str,privateKey);
logger.info(mes);
//组装查询返回值
String auth ="";
RSAMethod rsaMethod=new RSAMethod();
Base64Utils bs = new Base64Utils();
//私钥将对象加密
byte[] chargeOBJ=null;
String chargeSTR=null;
try {
chargeOBJ = rsaMethod.encryptByPrivateKey(auth.getBytes(), ThirdPay.privateKey);
chargeSTR= bs.encode(chargeOBJ);
} catch (Exception e1) {
e1.printStackTrace();
}
return chargeSTR;
}
关于我们
北京博思致新互联网科技有限责任公司成立于2016年,是行业领先的收缴服务提供商。
政付通小程序
公司动态
其它信息
联系我们
联系电话:
13189095618
获取方案
留下您的联系方式,获取专业解决方案。