自有商品快递发货接口
接口提供方
该接口由燃豆提供给开发者
接口说明
开发者自行上传的实物商品,需要由开发者自行给用户发货,该接口用于用户在积分商城创建兑换订单且订单被审核通过后,给需要快递发货的商品进行发货操作
业务流程说明
- 当用户在燃豆积分商城中发起兑换操作时;
- 燃豆服务端会发起积分预扣请求到开发者服务端,该请求中包含了product_type、product_from分别用来表示商品类型和商品来源,如果商品需要快递发货,燃豆会回传用户的收货信息;
- 如果商品为开发者自行上传的商品,需要开发者自行发货,此时开发者可使用此接口来完成发货操作。
参数说明
该接口除了公共必传参数外,还包括以下参数:
参数 | 是否必须 | 类型[长度限制] | 说明 |
---|---|---|---|
orderNo | 否 | string[18,20] | 由燃豆生成的兑换订单号,如T575276639039344640,在预扣积分请求中会一并传递,orderNo和bizNo两个参数必传至少一个,建议两个都传 |
bizNo | 否 | string[10,32] | 由开发者生成的订单号,orderNo和bizNo两个参数必传至少一个,建议两个都传 |
shipping_company | 是 | string[10,32] | 快递公司编号,查看当前支持的快递公司 |
shipping_no | 是 | string[1,128] | 快递公司的物流单号 |
响应示例
正确返回值(http返回码为200)
{
orderNo: "T575276639039344640", // 由燃豆生成的兑换订单号
bizNo: "xxxxxxxxxxxxx" // 由开发者生成的订单号
}
错误返回值示例(http返回码为非200)
{
code: 100101,
error: "WRONG STAGE"
}
注意事项
- 该接口只能用于开发者自行上传且需要快递发货的商品订单;
- 该接口只能用于当前待发货的订单;
代码示例
PHP
use Randou\Exception\RdException;
use Randou\RdClient;
use Randou\RdClientBuilder;
$appid = 'aaaaaaaaaaaaaaaaaaaaaaaa';
$appsecret = 'bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb';
// 商品发货参数示例
$params = [
'orderNo' => 'T575276639039344640',
'bizNo' => 'xxxxxxxxxxxxx',
'shipping_company' => 'JT',
'shipping_no' => '9999999999999999999999',
];
try {
$client = RdClientBuilder::getClient($appid, $appSecret);
// 切换到沙箱环境
// $client->setDebug(true);
$result = $client->shipping($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.OrderShippingRequest;
import com.randou_tech.model.Order;
String appid = "aaaaaaaaaaaaaaaaaaaaaaaa";
String appsecret = "bbbbbbbbbbbbbbbbbbbbbbbbbbbbbb";
String orderNo = "T575276639039344640";
String bizNo = "xxxxxxxxxxxxx";
OrderShippingRequest request = new OrderShippingRequest();
request.setOrderNo(orderNo).setBizNo(bizNo).setShippingCompany("SF").setShippingNo("3333333333333333333");
RdClient rdClient = ClientBuilder.build(appid, appsecret);
// 切换到沙箱环境
// rdClient.setDebug(true);
try {
Result<Order> hr = rdClient.shipping(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();
}