调用工商二维码退款接口 这里使用main方法调用
特别说明 二维码支付成功 使用RSA 退款就用RSA
文档很坑直接写死RSA2
public class QrcodeRejectTest { public static void main(String[] args) throws Exception {
String appId = "你公司的appid";
String privateKey = "私钥";
String icbcPulicKey = "公钥"
//签名类型为RSA2时,需传入appid,私钥和网关公钥,签名类型使用定值IcbcConstants.SIGN_TYPE_RSA2,其他参数使用缺省值
DefaultIcbcClient client = new DefaultIcbcClient(appId, IcbcConstants.SIGN_TYPE_RSA, privateKey, icbcPulicKey); QrcodeRejectRequestV3 request = new QrcodeRejectRequestV3(); //4、根据测试环境和生产环境替换相应ip和端口 request.setServiceUrl("https://gw.open.icbc.com.cn/api/qrcode/reject/V3"); //5、请对照接口文档用bizContent.setxxx()方法对业务上送数据进行赋值 QrcodeRejectRequestV3.QrcodeRejectRequestV3Biz bizContent = new QrcodeRejectRequestV3.QrcodeRejectRequestV3Biz(); bizContent.setMerId("1**********9");// 商户线下档案编号(特约商户12位,特约部门15位)
//bizContent.setCustId("ow8NuxKTCgx9KxdR_8nrv1AlsZM");//该字段非必输项 //bizContent.setOutTradeNo("ZHL777O15002096");//该字段非必输项,out_trade_no和order_id选一项上送即可 bizContent.setOrderId("170504150439000042105170153341");//该字段非必输项,out_trade_no和order_id选一项上送即可 bizContent.setRejectNo("X000000003");//每次调用不能相同 如果相同会显示商户系统流水重复 bizContent.setRejectAmt("1"); //退款金额 单位分 //bizContent.setOperId("X000000001");//该字段非必输项 request.setBizContent(bizContent); QrcodeRejectResponseV3 response; try { response = client.execute(request, "msgId");//msgId消息通讯唯一编号,要求每次调用独立生成,APP级唯一 if (response.isSuccess()) { // 6、业务成功处理,请根据接口文档用response.getxxx()获取同步返回的业务数据 System.out.println("ReturnCode:"+response.getReturnCode()); System.out.println("response:" + response); } else { // 失败 System.out.println("ReturnCode:"+response.getReturnCode()); System.out.println("ReturnMsg:"+response.getReturnMsg()); } } catch (IcbcApiException e) { e.printStackTrace(); } } }
运行结果如下 return_code 交易成功返回0
微信已经退款