作者 竞泽

alter:补充注释

@@ -16,17 +16,31 @@ use Lackoxygen\TopWarehouse\Utils\SignatureUtil; @@ -16,17 +16,31 @@ use Lackoxygen\TopWarehouse\Utils\SignatureUtil;
16 16
17 class Client implements ClientInterface 17 class Client implements ClientInterface
18 { 18 {
  19 + /**
  20 + * @var RequestInterface
  21 + */
19 protected $request; 22 protected $request;
20 23
  24 + /**
  25 + * @var guzzleClient
  26 + */
21 protected $guzzleClient; 27 protected $guzzleClient;
22 28
  29 + /**
  30 + * @var array|null
  31 + */
23 protected $config; 32 protected $config;
24 33
  34 + /**
  35 + * Client constructor.
  36 + *
  37 + * @param RequestInterface $request
  38 + */
25 protected function __construct(RequestInterface $request) 39 protected function __construct(RequestInterface $request)
26 { 40 {
27 $this->request = $request(); 41 $this->request = $request();
28 42
29 - $this->config = config(TopWarehouseServiceProvider::CONFIG_NAME); 43 + $this->config = config('top-warehouse');
30 44
31 $clientOption = \Arr::get($this->config, 'options.client', []); 45 $clientOption = \Arr::get($this->config, 'options.client', []);
32 46
@@ -34,9 +48,11 @@ class Client implements ClientInterface @@ -34,9 +48,11 @@ class Client implements ClientInterface
34 } 48 }
35 49
36 /** 50 /**
37 - * @inheritDoc 51 + * @param RequestInterface $request
  52 + *
  53 + * @return ClientInterface
38 */ 54 */
39 - public static function make(RequestInterface $request): ClientInterface 55 + protected static function make(RequestInterface $request): ClientInterface
40 { 56 {
41 return new static($request); 57 return new static($request);
42 } 58 }
@@ -44,10 +60,17 @@ class Client implements ClientInterface @@ -44,10 +60,17 @@ class Client implements ClientInterface
44 /** 60 /**
45 * @inheritDoc 61 * @inheritDoc
46 */ 62 */
  63 + public static function request(RequestInterface $request): ResponseInterface
  64 + {
  65 + return self::make($request)->send();
  66 + }
  67 +
  68 + /**
  69 + * @inheritDoc
  70 + */
47 public function send(): ResponseInterface 71 public function send(): ResponseInterface
48 { 72 {
49 $retry = Arr::get($this->config, 'options.retry', 1); 73 $retry = Arr::get($this->config, 'options.retry', 1);
50 -  
51 try { 74 try {
52 return retry($retry, function ($attempt) { 75 return retry($retry, function ($attempt) {
53 return $this->execute($attempt); 76 return $this->execute($attempt);
@@ -59,7 +82,6 @@ class Client implements ClientInterface @@ -59,7 +82,6 @@ class Client implements ClientInterface
59 } 82 }
60 } 83 }
61 84
62 -  
63 /** 85 /**
64 * @param $attempt 86 * @param $attempt
65 * 87 *
@@ -8,9 +8,9 @@ interface ClientInterface @@ -8,9 +8,9 @@ interface ClientInterface
8 /** 8 /**
9 * @param RequestInterface $request 9 * @param RequestInterface $request
10 * 10 *
11 - * @return ClientInterface 11 + * @return ResponseInterface
12 */ 12 */
13 - public static function make(RequestInterface $request): ClientInterface; 13 + public static function request(RequestInterface $request): ResponseInterface;
14 14
15 /** 15 /**
16 * @return ResponseInterface 16 * @return ResponseInterface
@@ -4,16 +4,39 @@ @@ -4,16 +4,39 @@
4 namespace Lackoxygen\TopWarehouse\Request\Inventory; 4 namespace Lackoxygen\TopWarehouse\Request\Inventory;
5 5
6 6
  7 +use Lackoxygen\TopWarehouse\Constants\WarehouseCode;
7 use Lackoxygen\TopWarehouse\Request\Request; 8 use Lackoxygen\TopWarehouse\Request\Request;
8 9
9 class GetStockInventoryRequest extends Request 10 class GetStockInventoryRequest extends Request
10 { 11 {
  12 + /**
  13 + * @see WarehouseCode::TABLE_CODE
  14 + * 仓库编码
  15 + *
  16 + * @var string
  17 + */
11 public $warehouse_id; 18 public $warehouse_id;
12 19
  20 + /**
  21 + *
  22 + * 商品编码,(多个以,号隔开)
  23 + *
  24 + * @var string
  25 + */
13 public $goods_id; 26 public $goods_id;
14 27
  28 + /**
  29 + *通过发布单表体ID,去匹配商品有效期规则编码,该商品会按照此有效期规则出仓
  30 + *
  31 + * @var string|null
  32 + */
15 public $deliveryItemId; 33 public $deliveryItemId;
16 34
  35 + /**
  36 + * 代发:2
  37 + *
  38 + * @var string
  39 + */
17 public $type; 40 public $type;
18 41
19 protected function initialize(): void 42 protected function initialize(): void
@@ -8,10 +8,25 @@ use Lackoxygen\TopWarehouse\Request\Request; @@ -8,10 +8,25 @@ use Lackoxygen\TopWarehouse\Request\Request;
8 8
9 class OrderNotifyRequest extends Request 9 class OrderNotifyRequest extends Request
10 { 10 {
  11 + /**
  12 + * 订单号
  13 + *
  14 + * @var string
  15 + */
11 public $order_id; 16 public $order_id;
12 17
  18 + /**
  19 + * 1:成功;2:失败
  20 + *
  21 + * @var string
  22 + */
13 public $status; 23 public $status;
14 24
  25 + /**
  26 + * 如失败,则放错误信息
  27 + *
  28 + * @var string
  29 + */
15 public $notes; 30 public $notes;
16 31
17 protected function initialize(): void 32 protected function initialize(): void
@@ -4,50 +4,303 @@ @@ -4,50 +4,303 @@
4 namespace Lackoxygen\TopWarehouse\Request\Order; 4 namespace Lackoxygen\TopWarehouse\Request\Order;
5 5
6 6
  7 +use App\Constants\LogisticsCodeConstant;
  8 +use Lackoxygen\TopWarehouse\Constants\CountryCode;
  9 +use Lackoxygen\TopWarehouse\Constants\WarehouseCode;
7 use Lackoxygen\TopWarehouse\Request\Request; 10 use Lackoxygen\TopWarehouse\Request\Request;
8 11
9 class OrdersB2cAddRequest extends Request 12 class OrdersB2cAddRequest extends Request
10 { 13 {
  14 + /**
  15 + * 店铺编码
  16 + *
  17 + * @var string
  18 + */
11 public $shop_id; 19 public $shop_id;
  20 +
  21 + /**
  22 + * 单据类型,1:自营,2:代发
  23 + *
  24 + * @var string
  25 + */
12 public $order_type; 26 public $order_type;
  27 +
  28 + /**
  29 + * 订单号,不可重复
  30 + *
  31 + * @var string
  32 + */
13 public $order_id; 33 public $order_id;
  34 +
  35 + /**
  36 + * 订单时间,格式:yyyy-MM-dd HH:mm:ss
  37 + *
  38 + * @var string
  39 + */
14 public $created; 40 public $created;
  41 +
  42 + /**
  43 + * 更新时间,格式:yyyy-MM-dd HH:mm:ss
  44 + *
  45 + * @var string
  46 + */
15 public $modified; 47 public $modified;
  48 +
  49 + /**
  50 + * @see LogisticsCode::TABLE
  51 + * 物流企业代码,具体参考码表3。如不填写,默认使用店铺设置的物流企业
  52 + *
  53 + * @var string|null
  54 + */
16 public $logistics_code; 55 public $logistics_code;
  56 +
  57 + /**
  58 + * 支付流水号
  59 + *
  60 + * @var string
  61 + */
17 public $pay_no; 62 public $pay_no;
  63 +
  64 + /**
  65 + * 支付方式
  66 + *
  67 + * @var string
  68 + */
18 public $pay_mode; 69 public $pay_mode;
  70 +
  71 + /**
  72 + * 支付时间,格式:yyyy-MM-dd HH:mm:ss
  73 + *
  74 + * @var string
  75 + */
19 public $pay_time; 76 public $pay_time;
  77 +
  78 + /**
  79 + * 运单号,
  80 + * BC业务:如不需要换单,即changeFlag字段值为0,则必须填写
  81 + *
  82 + * @var string|null
  83 + */
20 public $way_bill_no; 84 public $way_bill_no;
  85 +
  86 + /**
  87 + * 换单标识,1:是,0:否
  88 + * 如运单不需要换成国内落地配运单,则填写0;
  89 + * 如运单需要换成国内落地配运单,则填写1
  90 + *
  91 + * @var string|null
  92 + */
21 public $change_flag; 93 public $change_flag;
  94 +
  95 + /**
  96 + * 订单实付总额,浮点数,double,2位小数。
  97 + * 货款+运费+税款-优惠金额,与支付保持一致
  98 + *
  99 + * @var float
  100 + */
22 public $payment; 101 public $payment;
  102 +
  103 + /**
  104 + * 运杂费,浮点数,double,2位小数。
  105 + * 不包含在商品价格中的运杂费,如无填0
  106 + *
  107 + * @var float
  108 + */
23 public $way_frt_fee; 109 public $way_frt_fee;
  110 +
  111 + /**
  112 + * 运杂费币制,参考码表5。
  113 + *
  114 + * @var string
  115 + */
24 public $way_frt_fee_cy; 116 public $way_frt_fee_cy;
  117 +
  118 + /**
  119 + * 保费,浮点数,double,2位小数
  120 + *
  121 + * @var float
  122 + */
25 public $way_ind_fee; 123 public $way_ind_fee;
  124 +
  125 + /**
  126 + * 税费,浮点数,double,2位小数
  127 + *
  128 + * @var float
  129 + */
26 public $way_tax_fee; 130 public $way_tax_fee;
  131 +
  132 + /**
  133 + * 优惠减免金额,使用积分、虚拟货币、代金券等非现金支付金额,无则填写"0"。浮点数,double,2位小数
  134 + *
  135 + * @var float
  136 + */
27 public $discount; 137 public $discount;
  138 +
  139 + /**
  140 + * @see WarehouseCode::TABLE_CODE
  141 + * 仓库编码
  142 + *
  143 + * @var string
  144 + */
28 public $warehouse_id; 145 public $warehouse_id;
  146 +
  147 + /**
  148 + * @see WarehouseCode::TABLE_DECLARE
  149 + * 具体参考码表5.1,
  150 + * 如不填,选用店铺设置方案
  151 + *
  152 + * @var string
  153 + */
29 public $declare_plan; 154 public $declare_plan;
  155 +
  156 + /**
  157 + * 订购人注册号, 订购人在电商平台唯一注册号
  158 + *
  159 + * @var string
  160 + */
30 public $buyer_reg_no; 161 public $buyer_reg_no;
  162 +
  163 + /**
  164 + * 订购人证件类型,1:身份证,2:护照,3:军官证
  165 + *
  166 + * @var string
  167 + */
31 public $buyer_indentity_type; 168 public $buyer_indentity_type;
  169 +
  170 + /**
  171 + * 订购人电话号码
  172 + *
  173 + * @var string
  174 + */
32 public $buyer_telephone; 175 public $buyer_telephone;
  176 +
  177 + /**
  178 + * 订购人证件号(必须和支付实名认证一致)
  179 + *
  180 + * @var string
  181 + */
33 public $buyer_identity_card; 182 public $buyer_identity_card;
  183 +
  184 + /**
  185 + * 订购人姓名(必须和实际支付人一致)
  186 + *
  187 + * @var string
  188 + */
34 public $buyer_name; 189 public $buyer_name;
  190 +
  191 + /**
  192 + * 收货人姓名
  193 + *
  194 + * @var string
  195 + */
35 public $receiver_name; 196 public $receiver_name;
  197 +
  198 + /**
  199 + * 收货人证件类型,1:身份证,2:护照,3:军官证
  200 + *
  201 + * @var string
  202 + */
36 public $receiver_identity_type; 203 public $receiver_identity_type;
  204 +
  205 + /**
  206 + * 收货人证件号码
  207 + *
  208 + * @var string
  209 + */
37 public $receiver_identity_card; 210 public $receiver_identity_card;
  211 +
  212 + /**
  213 + * 收货人手机号码
  214 + *
  215 + * @var string
  216 + */
38 public $receiver_mobile; 217 public $receiver_mobile;
  218 +
  219 + /**
  220 + * 收货人座机号码
  221 + *
  222 + * @var string|null
  223 + */
39 public $receiver_phone; 224 public $receiver_phone;
  225 +
  226 + /**
  227 + * 收货人身份证正面照(图片的下载路径)
  228 + *
  229 + * @var string|null
  230 + */
40 public $identity_image_front; 231 public $identity_image_front;
  232 +
  233 + /**
  234 + * 收货人身份证反面照(图片的下载路径)
  235 + *
  236 + * @var string|null
  237 + */
41 public $identity_image_back; 238 public $identity_image_back;
  239 +
  240 + /**
  241 + * 国家
  242 + *
  243 + * @var string
  244 + */
42 public $receiver_country; 245 public $receiver_country;
  246 +
  247 + /**
  248 + * 省份
  249 + *
  250 + * @var string
  251 + */
43 public $receiver_state; 252 public $receiver_state;
  253 + /**
  254 + * 市
  255 + *
  256 + * @var string
  257 + */
44 public $receiver_city; 258 public $receiver_city;
  259 + /**
  260 + * 区/县
  261 + *
  262 + * @var string
  263 + */
45 public $receiver_district; 264 public $receiver_district;
  265 + /**
  266 + * 地址
  267 + *
  268 + * @var string
  269 + */
46 public $receiver_address; 270 public $receiver_address;
  271 + /**
  272 + * 邮编
  273 + *
  274 + * @var string|null
  275 + */
47 public $receiver_zip; 276 public $receiver_zip;
  277 +
  278 + /**
  279 + * @see CountryCode::TABLE
  280 + *启运国,国别代码见码表
  281 + * @var string|null
  282 + */
48 public $country; 283 public $country;
  284 +
  285 + /**
  286 + *备注
  287 + *
  288 + * @var string|null
  289 + */
49 public $notes; 290 public $notes;
  291 +
  292 + /**
  293 + *商品信息标签,可循环
  294 + *
  295 + * @var string
  296 + */
50 public $order_goods; 297 public $order_goods;
  298 +
  299 + /**
  300 + * 商品序号,从1 开始递增
  301 + *
  302 + * @var string
  303 + */
51 public $index = []; 304 public $index = [];
52 305
53 306
@@ -49,7 +49,8 @@ class TopWarehouse implements TopWarehouseInterface @@ -49,7 +49,8 @@ class TopWarehouse implements TopWarehouseInterface
49 if ($closure instanceof \Closure) { 49 if ($closure instanceof \Closure) {
50 call_user_func($closure, $request); 50 call_user_func($closure, $request);
51 } 51 }
52 - return Client::make($request)->send(); 52 +
  53 + return Client::request($request);
53 } 54 }
54 55
55 } 56 }
@@ -7,11 +7,6 @@ use Illuminate\Support\ServiceProvider; @@ -7,11 +7,6 @@ use Illuminate\Support\ServiceProvider;
7 class TopWarehouseServiceProvider extends ServiceProvider 7 class TopWarehouseServiceProvider extends ServiceProvider
8 { 8 {
9 /** 9 /**
10 - * @var string  
11 - */  
12 - public const CONFIG_NAME = 'top-warehouse';  
13 -  
14 - /**  
15 * @var bool 10 * @var bool
16 */ 11 */
17 protected $defer = true; 12 protected $defer = true;
@@ -22,7 +22,7 @@ class SignatureUtil @@ -22,7 +22,7 @@ class SignatureUtil
22 case '': 22 case '':
23 break; 23 break;
24 case 'array': 24 case 'array':
25 - $value = Json::encode($item); 25 + $value = JsonUtil::encode($item);
26 $string .= "{$key}$value}"; 26 $string .= "{$key}$value}";
27 break; 27 break;
28 default: 28 default: