作者 竞泽

alter:补充注释

... ... @@ -16,17 +16,31 @@ use Lackoxygen\TopWarehouse\Utils\SignatureUtil;
class Client implements ClientInterface
{
/**
* @var RequestInterface
*/
protected $request;
/**
* @var guzzleClient
*/
protected $guzzleClient;
/**
* @var array|null
*/
protected $config;
/**
* Client constructor.
*
* @param RequestInterface $request
*/
protected function __construct(RequestInterface $request)
{
$this->request = $request();
$this->config = config(TopWarehouseServiceProvider::CONFIG_NAME);
$this->config = config('top-warehouse');
$clientOption = \Arr::get($this->config, 'options.client', []);
... ... @@ -34,9 +48,11 @@ class Client implements ClientInterface
}
/**
* @inheritDoc
* @param RequestInterface $request
*
* @return ClientInterface
*/
public static function make(RequestInterface $request): ClientInterface
protected static function make(RequestInterface $request): ClientInterface
{
return new static($request);
}
... ... @@ -44,10 +60,17 @@ class Client implements ClientInterface
/**
* @inheritDoc
*/
public static function request(RequestInterface $request): ResponseInterface
{
return self::make($request)->send();
}
/**
* @inheritDoc
*/
public function send(): ResponseInterface
{
$retry = Arr::get($this->config, 'options.retry', 1);
try {
return retry($retry, function ($attempt) {
return $this->execute($attempt);
... ... @@ -59,7 +82,6 @@ class Client implements ClientInterface
}
}
/**
* @param $attempt
*
... ...
... ... @@ -8,9 +8,9 @@ interface ClientInterface
/**
* @param RequestInterface $request
*
* @return ClientInterface
* @return ResponseInterface
*/
public static function make(RequestInterface $request): ClientInterface;
public static function request(RequestInterface $request): ResponseInterface;
/**
* @return ResponseInterface
... ...
... ... @@ -4,16 +4,39 @@
namespace Lackoxygen\TopWarehouse\Request\Inventory;
use Lackoxygen\TopWarehouse\Constants\WarehouseCode;
use Lackoxygen\TopWarehouse\Request\Request;
class GetStockInventoryRequest extends Request
{
/**
* @see WarehouseCode::TABLE_CODE
* 仓库编码
*
* @var string
*/
public $warehouse_id;
/**
*
* 商品编码,(多个以,号隔开)
*
* @var string
*/
public $goods_id;
/**
*通过发布单表体ID,去匹配商品有效期规则编码,该商品会按照此有效期规则出仓
*
* @var string|null
*/
public $deliveryItemId;
/**
* 代发:2
*
* @var string
*/
public $type;
protected function initialize(): void
... ...
... ... @@ -8,10 +8,25 @@ use Lackoxygen\TopWarehouse\Request\Request;
class OrderNotifyRequest extends Request
{
/**
* 订单号
*
* @var string
*/
public $order_id;
/**
* 1:成功;2:失败
*
* @var string
*/
public $status;
/**
* 如失败,则放错误信息
*
* @var string
*/
public $notes;
protected function initialize(): void
... ...
... ... @@ -4,50 +4,303 @@
namespace Lackoxygen\TopWarehouse\Request\Order;
use App\Constants\LogisticsCodeConstant;
use Lackoxygen\TopWarehouse\Constants\CountryCode;
use Lackoxygen\TopWarehouse\Constants\WarehouseCode;
use Lackoxygen\TopWarehouse\Request\Request;
class OrdersB2cAddRequest extends Request
{
/**
* 店铺编码
*
* @var string
*/
public $shop_id;
/**
* 单据类型,1:自营,2:代发
*
* @var string
*/
public $order_type;
/**
* 订单号,不可重复
*
* @var string
*/
public $order_id;
/**
* 订单时间,格式:yyyy-MM-dd HH:mm:ss
*
* @var string
*/
public $created;
/**
* 更新时间,格式:yyyy-MM-dd HH:mm:ss
*
* @var string
*/
public $modified;
/**
* @see LogisticsCode::TABLE
* 物流企业代码,具体参考码表3。如不填写,默认使用店铺设置的物流企业
*
* @var string|null
*/
public $logistics_code;
/**
* 支付流水号
*
* @var string
*/
public $pay_no;
/**
* 支付方式
*
* @var string
*/
public $pay_mode;
/**
* 支付时间,格式:yyyy-MM-dd HH:mm:ss
*
* @var string
*/
public $pay_time;
/**
* 运单号,
* BC业务:如不需要换单,即changeFlag字段值为0,则必须填写
*
* @var string|null
*/
public $way_bill_no;
/**
* 换单标识,1:是,0:否
* 如运单不需要换成国内落地配运单,则填写0;
* 如运单需要换成国内落地配运单,则填写1
*
* @var string|null
*/
public $change_flag;
/**
* 订单实付总额,浮点数,double,2位小数。
* 货款+运费+税款-优惠金额,与支付保持一致
*
* @var float
*/
public $payment;
/**
* 运杂费,浮点数,double,2位小数。
* 不包含在商品价格中的运杂费,如无填0
*
* @var float
*/
public $way_frt_fee;
/**
* 运杂费币制,参考码表5。
*
* @var string
*/
public $way_frt_fee_cy;
/**
* 保费,浮点数,double,2位小数
*
* @var float
*/
public $way_ind_fee;
/**
* 税费,浮点数,double,2位小数
*
* @var float
*/
public $way_tax_fee;
/**
* 优惠减免金额,使用积分、虚拟货币、代金券等非现金支付金额,无则填写"0"。浮点数,double,2位小数
*
* @var float
*/
public $discount;
/**
* @see WarehouseCode::TABLE_CODE
* 仓库编码
*
* @var string
*/
public $warehouse_id;
/**
* @see WarehouseCode::TABLE_DECLARE
* 具体参考码表5.1,
* 如不填,选用店铺设置方案
*
* @var string
*/
public $declare_plan;
/**
* 订购人注册号, 订购人在电商平台唯一注册号
*
* @var string
*/
public $buyer_reg_no;
/**
* 订购人证件类型,1:身份证,2:护照,3:军官证
*
* @var string
*/
public $buyer_indentity_type;
/**
* 订购人电话号码
*
* @var string
*/
public $buyer_telephone;
/**
* 订购人证件号(必须和支付实名认证一致)
*
* @var string
*/
public $buyer_identity_card;
/**
* 订购人姓名(必须和实际支付人一致)
*
* @var string
*/
public $buyer_name;
/**
* 收货人姓名
*
* @var string
*/
public $receiver_name;
/**
* 收货人证件类型,1:身份证,2:护照,3:军官证
*
* @var string
*/
public $receiver_identity_type;
/**
* 收货人证件号码
*
* @var string
*/
public $receiver_identity_card;
/**
* 收货人手机号码
*
* @var string
*/
public $receiver_mobile;
/**
* 收货人座机号码
*
* @var string|null
*/
public $receiver_phone;
/**
* 收货人身份证正面照(图片的下载路径)
*
* @var string|null
*/
public $identity_image_front;
/**
* 收货人身份证反面照(图片的下载路径)
*
* @var string|null
*/
public $identity_image_back;
/**
* 国家
*
* @var string
*/
public $receiver_country;
/**
* 省份
*
* @var string
*/
public $receiver_state;
/**
* 市
*
* @var string
*/
public $receiver_city;
/**
* 区/县
*
* @var string
*/
public $receiver_district;
/**
* 地址
*
* @var string
*/
public $receiver_address;
/**
* 邮编
*
* @var string|null
*/
public $receiver_zip;
/**
* @see CountryCode::TABLE
*启运国,国别代码见码表
* @var string|null
*/
public $country;
/**
*备注
*
* @var string|null
*/
public $notes;
/**
*商品信息标签,可循环
*
* @var string
*/
public $order_goods;
/**
* 商品序号,从1 开始递增
*
* @var string
*/
public $index = [];
... ...
... ... @@ -49,7 +49,8 @@ class TopWarehouse implements TopWarehouseInterface
if ($closure instanceof \Closure) {
call_user_func($closure, $request);
}
return Client::make($request)->send();
return Client::request($request);
}
}
... ...
... ... @@ -7,11 +7,6 @@ use Illuminate\Support\ServiceProvider;
class TopWarehouseServiceProvider extends ServiceProvider
{
/**
* @var string
*/
public const CONFIG_NAME = 'top-warehouse';
/**
* @var bool
*/
protected $defer = true;
... ...
... ... @@ -22,7 +22,7 @@ class SignatureUtil
case '':
break;
case 'array':
$value = Json::encode($item);
$value = JsonUtil::encode($item);
$string .= "{$key}$value}";
break;
default:
... ...