订单取消发货接口
接口提供方
该接口由燃豆提供给开发者
接口说明
开发者自行上传的实物商品,需要由开发者自行给用户发货,该接口用于用户在积分商城创建兑换订单且订单被审核通过后,如果届时无法发货,可通过该接口取消发货,等同于取消订单
业务流程说明
- 当用户在燃豆积分商城中发起兑换操作时;
- 燃豆服务端会发起积分预扣请求到开发者服务端,该请求中包含了product_type、product_from分别用来表示商品类型和商品来源,如果商品需要快递发货,燃豆会回传用户的收货信息;
- 如果商品为开发者自行上传的商品,需要开发者自行发货,届时如果无法发货,可使用该接口取消订单。
参数说明
该接口除了公共必传参数外,还包括以下参数:
参数 | 是否必须 | 类型[长度限制] | 说明 |
---|---|---|---|
orderNo | 否 | string[18,20] | 由燃豆生成的兑换订单号,如T575276639039344640,在预扣积分请求中会一并传递,orderNo和bizNo两个参数必传至少一个,建议两个都传 |
bizNo | 否 | string[10,32] | 由开发者生成的订单号,orderNo和bizNo两个参数必传至少一个,建议两个都传 |
响应示例
正确返回值(http返回码为200)
{
orderNo: "T575276639039344640", // 由燃豆生成的兑换订单号
bizNo: "xxxxxxxxxxxxx" // 由开发者生成的订单号
}
错误返回值示例(http返回码为非200)
{
code: 100101,
error: "WRONG STAGE"
}
注意事项
- 该接口只能用于开发者自行上传且需要快递发货的商品订单;
- 该接口只能用于当前待发货的订单;
- 审核通过后再取消发货,对用户体验会有一定影响,请谨慎取消。
代码示例
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();
}