订单取消发货接口

接口提供方

该接口由燃豆提供给开发者

接口说明

开发者自行上传的实物商品,需要由开发者自行给用户发货,该接口用于用户在积分商城创建兑换订单且订单被审核通过后,如果届时无法发货,可通过该接口取消发货,等同于取消订单

业务流程说明

  1. 当用户在燃豆积分商城中发起兑换操作时;
  2. 燃豆服务端会发起积分预扣请求到开发者服务端,该请求中包含了product_typeproduct_from分别用来表示商品类型和商品来源,如果商品需要快递发货,燃豆会回传用户的收货信息;
  3. 如果商品为开发者自行上传的商品,需要开发者自行发货,届时如果无法发货,可使用该接口取消订单。

参数说明

该接口除了公共必传参数外,还包括以下参数:

参数是否必须类型[长度限制]说明
orderNostring[18,20]由燃豆生成的兑换订单号,如T575276639039344640,在预扣积分请求中会一并传递,orderNo和bizNo两个参数必传至少一个,建议两个都传
bizNostring[10,32]由开发者生成的订单号,orderNo和bizNo两个参数必传至少一个,建议两个都传

响应示例

正确返回值(http返回码为200)


{
    orderNo: "T575276639039344640",   // 由燃豆生成的兑换订单号
    bizNo: "xxxxxxxxxxxxx"   // 由开发者生成的订单号
}

错误返回值示例(http返回码为非200)

{
    code: 100101,
    error: "WRONG STAGE"
}

注意事项

  1. 该接口只能用于开发者自行上传且需要快递发货的商品订单;
  2. 该接口只能用于当前待发货的订单;
  3. 审核通过后再取消发货,对用户体验会有一定影响,请谨慎取消。

代码示例


use Randou\Exception\RdException;
use Randou\RdClient;
use Randou\RdClientBuilder;


$appid = 'aaaaaaaaaaaaaaaaaaaaaaaa';
$appsecret = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';


// 订单取消发货参数示例
$params = [
    'orderNo'          => 'T575276639039344640',
    'bizNo'            => 'xxxxxxxxxxxxx',
];


try {
    $client = RdClientBuilder::getClient($appid, $appSecret);
    // 切换到沙箱环境
    // $client->setDebug(true);

    $result = $client->shippingCancel($params)->getDataSet();

    print_r($result);
} catch (RdException $e) {
    print_r($e);
}

JAVA


import com.randou_tech.ClientBuilder;
import com.randou_tech.RdClient;
import com.randou_tech.RdException;
import com.randou_tech.result.Result;
import com.randou_tech.request.order.OrderShippingCancelRequest;
import com.randou_tech.model.Order;


String appid = "aaaaaaaaaaaaaaaaaaaaaaaa";
String appsecret = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";

String orderNo = "T575276639039344640";
String bizNo = "xxxxxxxxxxxxx";

OrderShippingCancelRequest request = new OrderShippingCancelRequest();
request.setOrderNo(orderNo).setBizNo(bizNo);

RdClient rdClient =  ClientBuilder.build(appid, appsecret);
// 切换到沙箱环境
// rdClient.setDebug(true);

try {
    Result<Order> hr = rdClient.orderShippingCancel(request);
    
    if (hr.isSuc()) {
        System.out.println("发货成功");
        System.out.println(hr.getData().getDst());
    } else {
        System.out.println("发货失败");
        System.out.println(hr.getError());
    }
} catch (RdException e) {
    e.printStackTrace();
}