预下单接口说明(线下扫码)
后台结果通知说明 #01
收缴后会异步给商户后端返回通知,作为缴款的记账依据; 通过HttpClient发送POST请求。
接口 #02
1、解析request请求,将输入流转换成StringBuffer类型的字符串,然后用私钥进行解密, 调用SDK封装的统一解密方法,转成json对象,根据接口字段来获取商户对账需要的字段,如下表:
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_no | 商户号 | String | 是 | |
merchant_order_no | 商户订单号 | String | 是 | |
amount | 收缴金额 | Integer | 是 | 单位 分 |
confirm_time | 缴款时间 | String | 是 | yyyy-MM-dd hh:mm:ss |
result | 收缴结果 | String | 是 | 200 成功,500 失败 |
result_des | 收缴结果描述 | String | 是 | 失败时填写失败原因 |
extra | 扩展参数 | String | 是 |
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
channel | 缴款渠道 | String | 否 |
2.统一解密的方法
com.bosssoft.sdk.model.Message.decryptByPrivateKey(RsaStr, privateKey);
RsaStr为1中解析出加密后的字符串;
privateKey为数据传输时签名加密所需使用的商户私钥。
3、最后商户后端须给我方响应成功或失败,具体响应字段如下:
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
result | 收缴结果 | String | 是 | 200 成功,500 失败 |
result_des | 收缴结果描述 | String | 否 | 失败时填写失败原因 |
extra | 扩展参数 | String | 否 |
Demo #03
@RequestMapping(value = "/backnotice", method = RequestMethod.POST)
@ResponseBody
public String backNotice(HttpServletRequest request,HttpServletResponse response)
throws Exception {
logger.info("客户端开始接受后台回调通知...");
//从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);
}
} catch (IOException e) {
e.printStackTrace();
}
String str = stringBuffer.toString();
String privateKey="";//私钥赋值
String mes=Message.decryptByPrivateKey(str,privateKey);
logger.info(mes);
//给予服务端响应响应
JSONObject json=new JSONObject();
//成功
json.put("result", "200");
logger.info("客户端接受后台回调通知结束...");
return json.toString();
}
关于我们
北京博思致新互联网科技有限责任公司成立于2016年,是行业领先的收缴服务提供商。
政付通小程序