对接顺丰接口

依赖

<!--顺丰接口依赖-->
<dependency>
   <groupId>club.mrxiao</groupId>
   <artifactId>express-java-sf</artifactId>
   <version>1.0.2</version>
</dependency>

实现类

公司要求对接顺丰接口

现在开发之后感觉其实也没有那么难

具体源码我放上来了

另外用的某个大佬写好的 包

public class SfServiceImpl implements SfService {
   



    @Value("${sf.call.url}")
    //请求路径  目前先写死,未来放到nacos配置文件中
//    private String sfCallUrl = "https://sfapi-sbox.sf-express.com/std/service";
    private String sfCallUrl ;

    @Value("${sf.client.code}")
    //顾客编码
//    private String sfClientCode ="顾客编码、合作伙伴id";
    private String sfClientCode;

    @Value("${sf.check.word}")
    //沙箱校验码
//    private String sfCheckWord = "你在丰桥获取的校验码";
    private String sfCheckWord;
//todo
    /**
     * 下订单接口serviceCode
     */
    private final String EXP_RECE_CREATE_ORDER = "EXP_RECE_CREATE_ORDER";

    /**
     * 订单结果查询接口serviceCode
     */
    private final String EXP_RECE_SEARCH_ORDER_RESP = "EXP_RECE_SEARCH_ORDER_RESP";

    /*
    * 订单取消\确认接口 serviceCode
    * */
    private final String EXP_RECE_UPDATE_ORDER = "EXP_RECE_UPDATE_ORDER";

    private final String API_RESULT_CODE_A1000 = "A1000";

    private final String ERROR_CODE_S0000 = "S0000";

    // 重复下单
    private final String ERROR_CODE_8016 = "8016";

    private final String LANGUAGE_ZHCN = "zh-cn";

    private final String One = "1";

下单实现

@Override
    public R createOrder(SfOrderParam sfOrderParam) {
   
        try {
   

            if (null == sfOrderParam) {
   
                return R.error(1000, "顺丰丰桥下订单服务接口入参不能为空");
            }

            if (StringUtils.isBlank(sfOrderParam.getOrderId())) {
   
                return R.error(1000, "顺丰丰桥下订单服务接口orderId不能为空");
            }
            int hashCode = java.util.UUID.randomUUID().toString().hashCode();
            if (hashCode <0){
   
                hashCode=-hashCode;
            }
            // 0 代表前面补充0
            // 10 代表长度为10
            // d 代表参数为正数型
            String format = String.format("%010d", hashCode).substring(0,10);
            String orderId = "Plz" + format;
            sfOrderParam.setOrderId(orderId);
            //param.setOrderId(sfOrderParam.getOrderId());
            Map<String, String> params = new HashMap<String, String>();
            String timeStamp = String.valueOf(System.currentTimeMillis());
            String msgData = JSONObject.toJSONString(sfOrderParam);

            params.put("partnerID", sfClientCode);
            params.put("requestID", UUID.randomUUID().toString().replace("-", ""));
            params.put("serviceCode", EXP_RECE_CREATE_ORDER);
            params.put("timestamp", timeStamp);
            params.put("msgData", msgData);
            params.put("msgDigest", CallExpressServiceTools.getMsgDigest(msgData, timeStamp, sfCheckWord));

            long startTime = System.currentTimeMillis();

            log.info("调用丰桥下订单接口服务开始, 入参:{}, sfCallUrl:{}, sfClientCode:{}, sfCheckWord:{}" + (String) params.get("msgData"), sfCallUrl, sfClientCode, sfCheckWord);
            String result = HttpClientUtil.post(sfCallUrl, params);
            log.info("调用丰桥下订单接口服务结束, 返回结果:{}, 接口耗时:{}", result, String.valueOf(System.currentTimeMillis() - startTime));

//            if (StringUtils.isNotBlank(result)) {
   
//                JSONObject jsonObject = JSON.parseObject(result);
//                String apiResultCode = jsonObject.getString("apiResultCode");
//
//                if (StringUtils.isNotBlank(apiResultCode) && API_RESULT_CODE_A1000.equals(apiResultCode)) {
   
//                    JSONObject apiResultData = jsonObject.getJSONObject("apiResultData");
//
//                    if (apiResultData != null) {
   
//                        String errorCode = apiResultData.getString("errorCode");
//
//                        if (StringUtils.isNotBlank(errorCode) && ERROR_CODE_S0000.equals(errorCode)) {
   
//                            result = apiResultData.getString("msgData");
//                            log.info("调用丰桥下订单接口服务, msgData:{}", result);
//                        } else if (StringUtils.isNotBlank(errorCode) && ERROR_CODE_8016.equals(errorCode)) {
   
//           
  • 0
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 3
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值