顺丰快递下单接入

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  文档查看更多

 

注意,上线需要把这些所有的沙箱环境换为自己的线上参数 ,有什么需要或者错误指出一起学习,谢谢

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值