1,丰桥注册成为开发者https://qiao.sf-express.com/index.html网址进入注册
2,点击丰桥服务登录可看到API接入点击,登录后完成开发者信息注册
3,完成后您会看到,一个大大的账号,这个账号是测试卡号(就是用于测试的月结卡号注意重要,发送的XML文件需要),其他就是你填入的信息,个人学习的话也可以注册的
4,进入界面的我的Aip接口添加你需要的接口(这里介绍下单)
注意:你注册的邮箱中会收到一封邮件(打开如下)
这些都是在开发中不可缺少的信息(稍后介绍用途)
5 ,界面中还可以看到
里面可以设置请求方式默认的为HTTP和POST,可点击查看报文里面有一个Demo
6,有我的API测试点击直接测试
将邮箱的替换过来,在请求参数中找到custid(月结卡号)是否是自己的,然后提交可以测试,下面可以查看请求结果
7,调用成功可以在我的沙箱中查看
8,直接上代码吧。我用的文件读取替换的方式,将默认格式替换为自己请求的参数
<Request service='OrderService' lang='zh-CN'><Head>顾客编码</Head>
<Body>
<Order
orderid='mv0'
express_type='1'
j_province='mv1'
j_city='mv2'
j_county='mv3'
j_company='mv4'
j_contact='mv5'
j_tel='mv6'
j_address='mv7'
d_province='mv8'
d_city='mv9'
d_county='sv1'
d_company='sv2'
d_contact='sv3'
d_tel='sv4'
d_address='sv5'
parcel_quantity='1'
cargo_total_weight='sv6'
pay_method='sv7'
custid ='custid'
customs_batchs=''
url_flag='1'
routelabelService='1'
need_return_tracking_no='1'
declared_value_currency='CNY'
remark='Cg3' >
<AddedService name='INSURE' value='CNY' /> <Cargo
name='Cg1'
count='Cg2'/>
</Order>
</Body>
</Request>
将红色替换为你的参数
public List<String> sf(SFInfo ExportList) {
String reqXml="";
try{
//文件读取,注意放的位置
FileInputStream is=new FileInputStream(new File("D:\\JavaWebSites\\logisticsCms\\1.order.txt"));
byte[] bs = new byte[is.available()];
is.read(bs);
reqXml = new String(bs);
is.close();
}catch(Exception e){
}
reqXml=reqXml.replace("你需要替换的","替换的属性");//将上面XML内容进行匹配替换
reqXml=reqXml.replace("mv0","请求单号");
reqXml=reqXml.replace("mv1","寄件方省份");
reqXml=reqXml.replace("mv2","寄件方城市");
reqXml=reqXml.replace("mv3","寄件方区域);
reqXml=reqXml.replace("mv4","寄件方详细地址");
reqXml=reqXml.replace("mv5","寄件方姓名");
reqXml=reqXml.replace("mv7","寄件方公司");
reqXml=reqXml.replace("mv6","寄件方电话号码");
//到件人
reqXml=reqXml.replace("sv3",ExportList.getD_contact() );//这里的ExportList是我的实体类里面放的是到货方和参数
//省
reqXml=reqXml.replace("mv8", ExportList.getD_province());
//市
reqXml=reqXml.replace("mv9",ExportList.getD_city());
//区
reqXml=reqXml.replace("sv1", ExportList.getD_county());
reqXml=reqXml.replace("sv1",ExportList.getD_city());
//公司名
reqXml=reqXml.replace("sv2", ExportList.getD_company());
//收件人
reqXml=reqXml.replace("sv3",ExportList.getD_contact());
//电话
if(ExportList.getD_tel()!=null&&" ".equals(ExportList.getD_tel())){
reqXml=reqXml.replace("sv4",ExportList.getD_mobile());
}else{
reqXml=reqXml.replace("sv4",ExportList.getD_tel());
}
//adress
reqXml=reqXml.replace("sv5",ExportList.getD_address());
//付款方式
reqXml=reqXml.replace("sv7","付款方式");//1:寄方付2:收方付3:第三方付reqXml=reqXml.replace("sv6","箱数" );
reqXml=reqXml.replace("Cg2","数量");
String reqURL="http://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService";
String clientCode="";//此处替换为您在丰桥平台获取的顾客编码
String checkword="";//此处替换为您在丰桥平台获取的校验码
CallExpressServiceTools client=CallExpressServiceTools.getInstance();
List<String> list = new ArrayList<String>() ;
List<String> codelist = new ArrayList<String>() ;@SuppressWarnings("static-access")
String respXml= client.callSfExpressServiceByCSIM(reqURL, reqXml, clientCode, checkword);//respXml是返回参数//到这里就结束了下面是我没有把xml转为json的方法直接把他化为我要用的,ERR的直接输出中文错误对象,OK成功List处理(使用正则表达式)
if (respXml != null) {
String[] temp;
temp = respXml.split("\"");
for(int f = 0;f<temp.length;f++){
list.add(temp[f].replaceAll("[^\\u4e00-\\u9fa5\\w\\(\\)()]+",""));
}
if(respXml.indexOf("OK") != -1 ){
return list;
}else if(respXml.indexOf("ERR") != -1){
for (String err : list) {
if (err.replaceAll("^[a-z0-9A-Z]+$", "") != null && !err.replaceAll("^[a-z0-9A-Z]+$", "").equals("")) {
codelist.add(err.replaceAll("[a-zA-Z]+", ""));
}
}
return codelist;
}
}
return null;
}
https://qiao.sf-express.com/pages/developDoc/index.html?level2=763554 文档查看更多
注意,上线需要把这些所有的沙箱环境换为自己的线上参数 ,有什么需要或者错误指出一起学习,谢谢