laraditz/courier-sfexpress
Composer 安装命令:
composer require laraditz/courier-sfexpress
包简介
SF Express driver for laraditz/courier.
README 文档
README
SF Express driver for laraditz/courier.
Requirements
- PHP 8.1+
- Laravel 10, 11, 12, or 13
laraditz/courier^1.0
Installation
composer require laraditz/courier-sfexpress
Both service providers are auto-discovered. Publish the config:
php artisan vendor:publish --tag=courier-config php artisan vendor:publish --tag=courier-sfexpress-config
Configuration
Add to your .env:
COURIER_DRIVER=sfexpress SFEXPRESS_ACCOUNT=your-account-number SFEXPRESS_KEY=your-client-id SFEXPRESS_SECRET=your-client-secret SFEXPRESS_SANDBOX=true
config/sfexpress.php (published separately):
return [ 'account' => env('SFEXPRESS_ACCOUNT'), 'key' => env('SFEXPRESS_KEY'), 'secret' => env('SFEXPRESS_SECRET'), 'sandbox' => env('SFEXPRESS_SANDBOX', false), 'base_url' => 'https://bsp-oisp.sf-express.com/bsp-oisp/sfexpressService', 'sandbox_url' => 'https://sfapi-sandbox.sf-express.com/std/service', 'token_url' => '/oauth2/accessToken', 'timeout' => 30, ];
Available Methods
All six CourierDriver operations are supported:
| Method | Parameters | Returns | SF Express Endpoint |
|---|---|---|---|
createShipment |
ShipmentPayload $payload |
ShipmentResult |
POST /shipment/create |
track |
string $trackingNumber |
TrackingResult |
POST /shipment/route |
getRates |
RatePayload $payload |
RateCollection |
POST /shipment/queryFreight |
cancelShipment |
string $waybillNumber |
CancelResult |
POST /shipment/cancel |
getLabel |
string $waybillNumber |
LabelResult |
POST /shipment/label |
getAvailability |
AvailabilityPayload $payload |
ServiceCollection |
POST /service/queryByAddress |
Refer to the laraditz/courier README for payload/result DTO definitions and full usage examples.
Usage
use Laraditz\Courier\Facades\Courier; Courier::createShipment($payload); // ShipmentResult Courier::track($waybillNumber); // TrackingResult Courier::getRates($payload); // RateCollection Courier::cancelShipment($waybill); // CancelResult Courier::getLabel($waybill); // LabelResult (PDF, base64) Courier::getAvailability($payload); // ServiceCollection
SF Express API Notes
- Authentication uses OAuth2
client_credentialsgrant. Tokens are fetched automatically before each request. - Success responses carry
apiResultCode: 'A2000'. Any other code is treated as an error and throws aCourierException. track()throwsShipmentNotFoundExceptionwhen the API returns error codeA2002(waybill not found).- Labels are returned as base64-encoded PDF content.
Status Mapping
SF Express opCode values are mapped to the normalized status vocabulary:
| opCode | Status |
|---|---|
50 |
picked_up |
30 |
in_transit |
70 |
out_for_delivery |
80 |
delivered |
90 |
failed_delivery |
35 |
returned |
| other | unknown |
License
MIT
统计信息
- 总下载量: 0
- 月度下载量: 0
- 日度下载量: 0
- 收藏数: 0
- 点击次数: 3
- 依赖项目数: 0
- 推荐数: 0
其他信息
- 授权协议: MIT
- 更新时间: 2026-06-18