退付接口文档
方案目标 #01
用户在收缴完成后,因各种原因需要退款,本接口为商户端提供了退付接口。商户可通过调用接口完成退付。
运行流程 #02
接口调用退付接口说明 #03
商户后端通过调用我方接口,按照接口文档规定的参数进行组织报文,调用生成create的方法,通过商户后端对参数进行加密请求到我方后端。
统一接口为com.bosssoft.sdk.model.Charge.create(chargeMap,serviceUrl,privateKey);其中chargeMap为接口参数,见下方接口参数章节。
serviceUrl为我方提供的接口地址:
测试环境为:
http://debug.epayservice.cn/thirdpay/refund/accept.do
正式环境为:
http://api.epayservice.cn/thirdpay/refund/accept.do
privateKey为数据传输时签名加密所需使用的商户私钥。
接口参数 #04
chargeMap参数内容:
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_no | 商户号 | String | 是 | |
merchant_order_no | 商户订单号 | String | 是 | |
merchant_refund_order_no | 商户退付订单号 | String | 是 | |
amount | 退款金额 | Integer | 是 | 单位 分 |
refund_des | 退付原因 | String | 是 | |
refund_url | 通知地址 | String | 是 |
响应参数
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
resp_code | 响应吗(通讯结果) | String | 是 | 200 成功,500 失败 |
resp_msg | 响应信息 | String | 否 |
Demo #05
Map chargeMap = new HashMap();
chargeMap.put("merchant_no", "2102002017061622");//商户号
chargeMap.put("merchant_order_no","order1234567890");// 商户端订单号
chargeMap.put("merchant_refund_order_no ","refundorder1234567890");
chargeMap.put("amount","100");
chargeMap.put("refund_des","商品售罄");
String privateKey = "";//私钥赋值
try{
// 发起 create创建charge请求(参数为构造的的chargeMap,传入的controller的service_url)
chargeString = Charge.create(chargeMap, service_url ,privateKey);
logger.info(chargeString);
} catch (Exception e) {
e.printStackTrace();
}
return querySingle;
}
通知接口 #06
说明 退付后会异步给商户后端返回通知。
接口参数
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
merchant_order_no | 商户订单号 | String | 是 | |
merchant_refund_order_no | 退付订单号 | String | 是 | YYYYMMDD |
amount | 退付金额 | String | 是 | 单位 分 |
result | 退付结果 | String | 是 | 200 成功,500 失败 |
result_des | 退付结果描述 | String | 否 | 失败时填写失败原因 |
extra | 扩展参数 | String | 否 |
属性 | 描述 | 类型 | 是否必填 | 补充 |
---|---|---|---|---|
result | 接收结果 | String | 是 | 200 成功,500 失败 |
接口参数Demo #07
@RequestMapping(value = "/refundnotice", 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();
//对StringBuffer进行解密
RSAMethod rsaMethod = new RSAMethod();
Base64Utils base = new Base64Utils();
//获取私钥(本Demo通过类的静态方法获取)
ThirdPay.privateKey = ThirdpayDataDto.getPrivateKey();
byte[] returnMsg = rsaMethod.decryptByPrivateKey
(base.decode(str),ThirdPay.privateKey);
//解密后后的String字符串
String reqParamter= new String(returnMsg);
logger.info(reqParamter);
//给予服务端响应响应
JSONObject json=new JSONObject();
json.put("result", "200");
logger.info("客户端接受后台回调通知结束...");
return json.toString();
}
关于我们
北京博思致新互联网科技有限责任公司成立于2016年,是行业领先的收缴服务提供商。
政付通小程序
公司动态
其它信息
联系我们
联系电话:
13189095618
获取方案
留下您的联系方式,获取专业解决方案。